At the end of this course, the students; 1) Learn fundamental concepts of parallel programming. 2) Learn parallelism, their principles and structures. 3) Understand the basics of parallel machine structure. 4) Learn parallel algorithm design, analyze and implementation. 5) Understand the possible limitations of parallel processing.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
No
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
Parallel programming techniques. Classification of parallel processing systems. Parallel computer architectures. A comprehensive study of basic techniques: Parallel Computer Models; Message-Passing Computing; Pipelined Computations; Programming with Shared Memory; Algorithms and Applications connected with Parallel Processing.
COURSE CONTENTS
WEEK
TOPICS
1st Week
Parallel programming techniques.
2nd Week
Classification of parallel processing systems.
3rd Week
Parallel computer architectures.
4th Week
A comprehensive study of basic techniques:
5th Week
Parallel Computer Models;
6th Week
Message-Passing Computing;
7th Week
Pipelined Computations;
8th Week
Mid-term
9th Week
Programming with Shared Memory;
10th Week
Algorithms and Applications connected with Parallel Processing.
11th Week
Algorithms and Applications connected with Parallel Processing.
12th Week
Algorithms and Applications connected with Parallel Processing.
13th Week
Algorithms and Applications connected with Parallel Processing.
14th Week
Algorithms and Applications connected with Parallel Processing.
RECOMENDED OR REQUIRED READING
1. Introduction to Parallel Computing, V. Kumar, A. Grama, A. Gupta and G. Karypis, V. Kumar (second edition), 2003 2. Addison Wesley Parallel Programming with MPI, P. Pacheco, Morgan Kaufmann Publishers, Inc., 1997. 3. MPI Related Materials Scalable Parallel Computing, Kai Hwang and Zhiwei Xu, 2000