CP400N Parallel Programming, WINTER 2012, WLU

Course Description

Parallel computers, or supercomputers or high-performance clusters are ubiquitous today in Science and Engineering. Parallel programming requires inventing new algorithms and programming techniques. This course will cover the fundamental paradigms of parallel programming, with an emphasis on problem solving and actual applications. The parallel programming concepts and algorithms will be illustrated via implementations in OpenMP and MPI (Message Passing Interface), as well as serial farming.

Important Course Information

Prerequisites

CP217 (proficiency in C)

Instructor

Dr. Ilias S. Kotsireas,  Office 2076A, Office Hours 24/7 and by appointment, Phone 884-0710 ext. 2218# E-Mail: ikotsireATwlu.ca

Course Textbook    

Principles of Parallel Programming
Calvin Lin; Lawrence Snyder
Addison-Wesley 2009 
ISBN-10 0-321-48790-7
ISBN-13 978-0-321-48790-2

Textbook Support Web Site


Course Topics

  1. Historical overview and evolution of parallel computing
  2. Fundamental concepts of parallelism
  3. Parallel computer memory architectures: shared memory, distributed memory, hybrid distributed-shared memory
  4. Parallel computer system architectures: Multi-Core, SMP, Clusters, Supercomputers, Flynn's Taxonomy
  5. Performance, Speedup, Scalability, Amdahl's law, Gustafson-Barsis's law, Karp-Flatt metric, Isoefficiency relation
  6. Load balancing: static, dynamic, termination detection
  7. Abstractions for parallel programming: Data Parallelism, Task Parallelism, Reduce and Scan, work assignment, Pipelining
  8. Programming paradigms for parallel computing: OpenMP, MPI, MapReduce/Google, Cilk, Cilk++, CUDA/GPU, Implicit Parallelism (Serial Farming)
  9. Applications: parallel sorting, parallel matrix-vector multiplication, parallel matrix multiplication, parallel searching, Floyd's algorithm, Sieve of Eratosthenes, Circuit Satisfiability

Class Schedule, Winter Semester Timetable

              |     Mon     |     Wed     |    
              |  2:30-3:50  |  2:30-3:50  |  
              |    BA112    |    BA112    |   
______________|_____________|_____________|__
              |             |             |             
Week 1:       |             |    Jan 04   |  
Week 2:       |  Jan 09     |    Jan 11   |  
Week 3:       |  Jan 16     |    Jan 18   |  
Week 4:       |  Jan 23     |    Jan 25   |  
Week 5:       |  Jan 30     |    Feb 01   |  
Week 6:       |  Feb 06     |    Feb 08   |  
Week 7:       |  Feb 13     |    Feb 15   |  
______________|_____________|_____________|__
              |
Reading Week  | Feb 20-24  N o  C o u r s e s
______________|______________________________
              |             |             |             
Week 8:       |  Feb 27     |   Feb 29    |  
Week 9:       |  Mar 05     |   Mar 07    |  
Week 10:      |  Mar 12     |   Mar 14    |  
Week 11:      |  Mar 19     |   Mar 21    |  
Week 12:      |  Mar 26     |   Mar 28    |  
              |  Apr 02     |             |             
______________|_____________|_____________|___
              |             |             |             

Course Requirements/Student Evaluation