Tlib Multiprocessor Task Library
Project Participants
- Project Manager: Prof. Dr. Thomas Rauber
- Project Staff: Dr. Sascha Hunold
- External Partners: Prof. Dr. Gudula Rünger, TU Chemnitz
Project Description
The runtime library Tlib supports the programming with hierarchically structured multiprocessor tasks (M-tasks). The library's API provides separate functions for the hierarchical structuring of processor groups and for the coordination of concurrent and nested M-tasks. The task structure can be nested arbitrarily which means that a coordination function can assign other coordination functions to subgroups for execution, which can then again split the corresponding subgroup and assign other coordination functions. It is also possible to specify recursive splittings of groups into subgroups and to assign coordination functions to these subgroups, so recursive algorithms like divide-and-conquer algorithms or tree-based algorithms can be formulated quite naturally.
Tlib library functions are designed to be called in an SPMD manner which results in multi-level group SPMD programs. The entire management of groups and M-tasks at execution time is done by the library. This includes the creation and administration of a dynamic hierarchy of processor groups, the mapping of tasks to groups and their coordination, the handling and termination of recursive calls and group splittings, and the organization of communication between groups in the hierarchy. Internally, the library exploits distributed information stored in distributed descriptors, which are hidden to the user. The current version of the library is based on C and is built on top of MPI.