Learning Outcomes:
Objectives
• Describe different parallel architectures, inter-connect networks, programming models, and algorithms for common operations such as matrix-vector multiplication..
• Given a problem, develop an efficient parallel algorithm to solve it..
• Given a parallel algorithm, analyze its time complexity as a function of the problem size and number of processors.
• Given a parallel algorithm, implement it using MPI, OpenMP, pthreads, or a combination of MPI and OpenMP.
• Given a parallel code, analyze its performance, determine computational bottlenecks, and optimize the performance of the code.
• Given a parallel code, debug it and fix the errors.
• Given a problem, implement an efficient and correct code to solve it, analyze its performance, and give convincing written and oral presentations explaining your achievements.
Indicative Module Content:
Week Topic
1 Introduction -- Chapter 1
2 Programming Technology Based on Message Transfer and Cluster System -- Chapter 2
3 Parallel Architecture and Processing Technology -- Chapter 3
4 Parallel algorithm design -- Chapter 3 (to be continued)
5 Parallel algorithm design -- Chapter 3 (completed)
6 Performance analysis – Chapter 4 (to be continued)
7 Performance analysis – Chapter 4 (completed)
8 Combining MPI and OpenMP – Chapter 5 (to be continued)
9 Combining MPI and OpenMP – Chapter 5 (to be continued)
10 Combining MPI and OpenMP – Chapter 5 (completed)
11 Revision
12 Examination