CENG 444
Parallel Programming Patterns
The course presents basic parallel algorithm design skills and parallel programming patterns. It covers the basic concepts of parallel architectures and parallel programming, OpenMP programming model topics, and control and data patterns by presenting the fundamentals of parallel software development.
Course Objectives
1. Understand shared-memory parallel architectures.
2. Design and implement parallel programs for multicore systems.
3. Understand parallel program execution and performance optimization techniques.
4. Understand parallel software development techniques and programming patterns.
Recommended or Required Reading
– Arch Robison, James Reinders, and Michael David McCool, Structured Parallel Programming: Patterns for Efficient Computation.
– Online OpenMP resources and tutorials
Learning Outcomes:
1. To be able to understand the parallel programming problems and related patterns
2. To demonstrate the experience to apply the parallel programming patterns on various programming problems
3. To be able to make a qualitative evaluation of different programming patterns and models
| Topics |
| Introduction |
| Parallel Hardware Environments |
| Parallel Software Development |
| Parallel Program Performance Analysis |
| OpenMP |
| OpenMP |
| Midterm |
| Patterns |
| Map Pattern |
| Reduce/Scan Pattern |
| Data Reorganization |
| Stencil/Recurrence |
| Fork/Join |
| Project Presentations |
Grading
20% Midterm Exam
40% Assignments/Final Project
40% Final Exam
Instructor(s)
- 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 441
- CENG 442
- CENG 443
- 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

