Task Orchestration : Communication and Synchronization (D1)
Description: This module focuses on communication and synchronization techniques for parallel applications. Basic concepts of task orchestration in parallel applications are introduced. Point-to-point vs. collective as well as synchronous vs. asynchronous communication methods are introduced and compared. Barrier, lock, and semaphore synchronization methods are introduced and compared. Classic synchronization problems and solutions are discussed. Issues related to shared memory vs. message passing implementations are also discussed.
Recommended Length: One lecture (~1:15 min)
Recommended Course: Operating Systems
Topics and Learning outcomes (per NSF/IEEE-TCPP PDC Curriculum):
- [Programming] Tasks and threads: understand what it means to create and assign work to threads in a parallel program and how this assignment affects performance; know how to assign work using OpenMP
- Programming] Asynchrony: understand synchronous and asynchronous events; understand point-to-point and collective communication methods; understand the cost of each type of communication.
- [Programming] Synchronization: understand the need for inter-thread synchronization; be able to write shared memory programs with critical regions, producer-consumer communication, and get speedup; know the notions of mechanisms for concurrency (monitors, semaphores, etc.); understand safety considerations of parallel execution, including thread-safe functions.
Lecture Material: [ PDF ] [ PPT ]
Pedagogical Notes: available for instructors only
Sample Exam Question: available for instructors only