CP431,CP631 Parallel Programming, FALL 2017, 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 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, Fall Semester Timetable

            |     Mon     |     Wed     |     Fri     
            | 13:30-14:20 | 13:30-14:20 | 13:30-14:20  
            |    N1044    |    N1044    |    N1044    
____________|_____________|_____________|_____________
            |             |             |             
Week 0:     |   ------    |   ------    |   Sep 08
Week 1:     |   Sep 11    |   Sep 13    |   Sep 15   
Week 2:     |   Sep 18    |   Sep 20    |   Sep 22
Week 3:     |   Sep 25    |   Sep 27    |   Sep 29
Week 4:     |   Oct 02    |   Oct 04    |   Oct 06
____________|_____________|_____________|______________
            |
Study Break |  October 9-13  N o  C o u r s e s
____________|__________________________________________
            |             |            |
Week 5:     |   Oct 16    |   Oct 18   |    Oct 20
Week 6:     |   Oct 23    |   Oct 25   |    Oct 27 (M)
Week 7:     |   Oct 30    |   Nov 01   |    Nov 03
Week 8:     |   Nov 06    |   Nov 08   |    Nov 10
Week 9:     |   Nov 13    |   Nov 15   |    Nov 17
Week 10:    |   Nov 20    |   Nov 22   |    Nov 24
Week 11:    |   Nov 27    |   Nov 29   |    Dec 01
Week 12:    |   Dec 04    |   Dec 06   |    ------
____________|_____________|____________|______________
            |             |            |             

Course Requirements/Student Evaluation

Term Project Demonstrations Schedule

(You are strongly advised to upload your presentation materials on the classroom computer beforehand, and/or test your laptop with the classroom console beforehand, to avoid unexpected delays, arising due to technical difficulties, during your presentations)



Monday, December 4, 2017:

Group 1: AC-AS-CW-VC     1:30 -- 1:45	Julia Sets

Group 2: OT-EG-TW        1:45 -- 2:00	Parallel Data Mining (Apriori algorithm)

Group 3: JN-MM-JR        2:00 -- 2:15   Multiplication Tables 

Wednesday, December 6, 2017:

Group 4: YL-BS-LZ-ML    1:30 -- 1:45	Julia Sets

Group 5: SJ-FK-BK-GS    1:45 -- 2:00    Multiplication Tables

Group 6: SL-GM-MM-EH    2:00 -- 2:15	Multiplication Tables 


Research resources

  1. International Journal of Parallel Programming (Springer)
  2. Parallel Computing Systems & Applications (Elsevier)
  3. Journal of Parallel and Distributed Computing (Elsevier)
  4. Encyclopedia of Parallel Computing

University and Course Policies (senate approved)

  1. Special Needs: Students with disabilities or special needs are advised to contact Laurier’s Accessible Learning Centre for information regarding its services and resources. Students are encouraged to review the Academic Calendar for information regarding all services available on campus.
  2. Plagiarism: Wilfrid Laurier University uses software that can check for plagiarism. If requested to do so by the instructor, students are required to submit their written work in electronic form and have it checked for plagiarism.
  3. Academic Integrity: Laurier is committed to a culture of integrity within and beyond the classroom. This culture values trustworthiness (i.e., honesty, integrity, reliability), fairness, caring, respect, responsibility and citizenship. Together, we have a shared responsibility to uphold this culture in our academic and nonacademic behaviour. The University has a defined policy with respect to academic misconduct. As a Laurier student you are responsible for familiarizing yourself with this policy and the accompanying penalty guidelines, some of which may appear on your transcript if there is a finding of misconduct. The relevant policy can be found at Laurier's academic integrity website along with resources to educate and support you in upholding a culture of integrity. Ignorance is not a defense.
  4. Classroom Use of Electronic Devices: Read WLU policy 9.3 Classroom Use of Electronic Devices.
  5. Late Assignment Policy: late assignments will be marked with 0.
  6. Final Examinations: Students are strongly urged not to make any commitments (i.e., vacation) during the examination period. Students are required to be available for examinations during the examination periods of all terms in which they register. Refer to the Handbook on Undergraduate Course Management for more information.
  7. Foot Patrol, the Wellness Centre, Student Food Bank.