CENG 441
Introduction to Parallel Programming
Introduction to the programming techniques to effectively utilize modern multicore computers. Identifying the parallelism, naming shared data, synchronizing threads, the latency and bandwidth associated with communication, analyzing & improving parallel performance, parallel programming tools, miscallenous lab works & exercises.
Course Objectives
To teach the parallel programming models.
To teach and analyzing the different parallel programming tools.
Teaching the parallelization methodologies by experimentally. To teach the analyzing methodology of a parallelized algorithm.
Recommended or Required Reading
Grama, A. Gupta, G. Karypis, V. Kumar, ‘Introduction to Parallel Computing’, Addison-Wesley, 2nd Ed., 2003 , Behrooz Parhami, ‘Introduction to Parallel Processing Algorithms and Architectures’, Plenum Series in Computer Science, 1999
Learning Outcomes
1. Analyze the requirements for the usage of parallel programming models and efficiently implement them.
2. Comparing different parallel programming methodologies and tools, then effectively take a decision which one will be used.
3. Efficiently analyzing and conversion of sequential algorithm to parallel algorithm.
4. Analyze the efficiency of a parallelized algorithm.
| Topics |
| Inroduction to Parallel Computing |
| Paralle Programming Platforms |
| Princibles of Algorithm Design I |
| Princibles of Algorithm Design II |
| Shared Memory and Threads |
| Implementing Domain Decompositions OpenMP |
| Confronting Race Conditions OpenMP |
| Implementing Task Decompositions OpenMP |
|
Programming Shared Address Space Platforms – Thread Based Programming
|
| Analyzing Parallel Performance |
| Improving Parallel Performance |
|
Programming Using MPI Paradigm Part 1 ms-MPI Install Setup
|
| MPI Exercise ms-MPI |
|
Programming Using MPI Paradigm Part 2 MPI Lab. Experiments
|
Grading
Midterm: 25%
Homework: 30%
Research Presentation: 20%
Final: 25%
- CENG 400
- CENG 411
- CENG 415
- CENG 416
- CENG 418
- CENG 421
- CENG 422
- CENG 424
- CENG 431
- CENG 432
- CENG 433
- CENG 434
- CENG 435
- CENG 436
- CENG 437
- CENG 442
- CENG 443
- CENG 444
- CENG 451
- CENG 452
- CENG 461
- CENG 462
- CENG 463
- CENG 464
- CENG 465
- CENG 467
- CENG 471
- CENG 472
- CENG 473
- CENG 481
- CENG 482
- CENG 483
- CENG 484
- CENG 485
- CENG 486
- CENG 487
- CENG 488
- CENG 491
- CENG 499
