Metropolitan State University

ICS 440 : Parallel and Distributed Algorithms

A. Course Description
Credits: 4
Prerequisites: ICS 340 Algorithms and Data Structures AND
MATH 215 Discrete Mathematics  
Lab Hours/ Weeks: Corequisites: None
Lecture Hours/ Week :  
MnTC Goals: None
Covers design and development of parallel and distributed algorithms and their implementation. Topics include multiprocessor and multicore architectures, parallel algorithm design patterns and performance issues, threads, shared objects and shared memory, forms of synchronization, concurrency on data structures, parallel sorting, distributed system models, fundamental distributed problems and algorithms such as mutual exclusion, consensus, and elections, and distributed programming paradigms. Programming intensive.
B. Course Effective Dates: 08/17/2014 - Present
C. Outline of Major Content Areas:
See Course Description for major content areas.
D. Learning Outcomes (General)
  1. Employ parallel algorithm design principles and programming paradigms
  2. Write correct and scalable parallel algorithms for multiprocessor and multicore architectures
  3. Develop algorithms at fine- and coarse-grained granularities
  4. Use synchronization appropriately in parallel algorithms
  5. Factor in performance issues in the implementation of parallel algorithms
  6. Characterize the kinds of tasks that are a natural match for SIMD machines
  7. Explain the different distributed system models
  8. Explain important distributed problems and algorithms
  9. Select appropriate distributed programming paradigms for implementing distributed algorithms
E. Learning Outcomes (MN Transfer Curriculum)
This contains no goal areas.
G. Special Information
Note: Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.