BGSU Logo
BGSU Home BGSU Academics BGSU Admissions The Arts BGSU Athletics Libraries Offices
Department of Computer Science
Computer Science Home Undergraduate Program Graduate Program Computer Science Faculty Academic Advising Mission and Vision
Small font Medium font Larger font Largest font
Left Bracket CS 5170: Introduction to Parallel Computing Right Bracket

Course Description

Principles and practice of parallel computing. Parallel algorithm development and analysis. Design, implementation, and evaluation of parallel programs for shared memory, local memory, and vector architectures. Prerequisites: Admission to MS in CS program, or consent of department, plus CS 3270 or equivalent.

Course Syllabus

  1. Overview of parallel computing
  2. Performance measures
  3. Parallel architectures
  4. Problems amenable to parallel programming solution
  5. Programming languages for parallel programming
  6. Program portability issues
  7. Operating system issues
  8. Tools for parallel programming
  9. Parallel Algorithms
  10. Parallelizing serial programs

Knowledge Acquisition Goals

After successfully completing CS 5170 a student should have a conceptual understanding of:
  1. Flynn's Taxonomy
  2. Languages for parallel computing, including: MPI and OpenMP
  3. The Message passing paradigm
  4. Parallel Processing speedup issues, including Amdahl's and Gustafason's Laws
  5. Decomposition methodologies for parallel program development
  6. Load balancing issues for parallel programs
  7. Parallel Architectures and effect of architecture on design/implementation of a parallel algorithm
  8. Quantifying Speedup; empirical tools and theoretical models
  9. PRAM computational model
  10. Current issues in parallel processing

Skill Goals

After successfully completing this course a student should be able to
  1. Design, implement, test and debug a parallel application program using MPI
  2. Design, implement, test and debug a parallel application program using OpenMP
  3. Parallelize an existing application using an appropriate parallel programming paradigm
  4. Explain, in writing, the tradeoffs that result from using a specific programming paradigm for a given problem class
  5. Develop and analyze a parallel algorithm using the PRAM model.

Course Requirements

Examinations, homework assignments, programming assignments.

webmaster@cs.bgsu.edu