Project start: 2011
Project ManagerProf. Dr. Thomas Rauber
The scalability of parallel applications on large distributed memory platforms is often impacted by expensive global communication and synchronization operations. The communication overhead of many applications can be reduced by exploiting coarse grained parallelism. Many approaches based on parallel tasks have been proposed to tackle this problem, but usually the interaction between parallel tasks is restricted to input-output relations. The programming model of Communicationg Multiprocessor-Tasks (CM-tasks) extends previous models based on parallel tasks by additionally supporting an interaction between parallel tasks during their execution. This allows a more flexible structuring of parallel applications and enables the use of optimized communication patterns for data exchanges. In particular, the CM-task programming model * supports the exploitation of task parallelism (between CM-tasks) and data parallelism (within CM-tasks) at the same time; * provides two possibilities for the interaction of the CM-tasks of program: input-output relations (P-relations) and communication relations (C-relations); * allows a flexible mapping of the CM-tasks onto the execution resources of a parallel platform by leaving the flexibility to execute independent CM-tasks concurrently or one after another; * includes software support in form of the CM-task compiler framework to generate efficient implementations starting with a user-provided specification programen.