ECE 492 - Introduction to Parallel Programming

Semesters Offered

Official Description

Course Information: Same as CS 420 and CSE 402. See CS 420.

Prerequisites

Credit in CS 225

Subject Area

Computer Engineering

Course Directors

Department of Computer Science

Description

Introduction to fundamental issues in design and development of parallel programs for various types of parallel computers. Various programming models according to both machine type and application area. Cost models, debugging, and performance evaluation of parallel programs with actual application examples.

Notes

Same as CS 420 and CSE 402

Topics

  • Ideal and real machine models: vector (pipelined) processors, array machines, shared-memory multiprocessors, message-passing multiprocessors, others; programming constructs native to each class of machines
  • Programming models and their languages: data-parallel models (array parallelism, parallel loops), process-based models; illustrative examples, such as matrix multiplication, sorting, and the n-body problem
  • Cast models and efficiency analysis of parallel programs
  • Parallel programming issues: locality, grain size, scheduling, load balancing, data distribution and alignment, communication analysis, synchronous programming, determinacy and nondeterminacy
  • Debugging parallel programs
  • Performance measurement, evaluation and tuning
  • Application case studies, e.g., from computational fluid dynamics, computational biology, and operations research
  • Optional topic selected, e.g., from discrete event simulation, grid-structured computations, tree-structured computations, sparse and dense linear systems, parallelizing compilers

Detailed Description and Outline

Topics:

  • Ideal and real machine models: vector (pipelined) processors, array machines, shared-memory multiprocessors, message-passing multiprocessors, others; programming constructs native to each class of machines
  • Programming models and their languages: data-parallel models (array parallelism, parallel loops), process-based models; illustrative examples, such as matrix multiplication, sorting, and the n-body problem
  • Cast models and efficiency analysis of parallel programs
  • Parallel programming issues: locality, grain size, scheduling, load balancing, data distribution and alignment, communication analysis, synchronous programming, determinacy and nondeterminacy
  • Debugging parallel programs
  • Performance measurement, evaluation and tuning
  • Application case studies, e.g., from computational fluid dynamics, computational biology, and operations research
  • Optional topic selected, e.g., from discrete event simulation, grid-structured computations, tree-structured computations, sparse and dense linear systems, parallelizing compilers

Same as CS 420 and CSE 402

Texts

No text.

Last updated

9/22/2014