In order to allow the efficient implementation of parallel application programs, various design decisions have to be made and implemented. These include the task mapping and schedule, the task granularity as well as decisions concerning code optimizations. The paper describes a hierarchical concept for system design and implementation. The concept has been implemented in the DSPL programming environment, an integrated approach to generate efficient parallel programs from data-flow specifications. It supports the design itself as well as the implementation of the design decisions. In contrast to most programming environments for MIMD systems that simply use a runtime kernel or an operating system to implement the design decisions, the DSPL programming environment actually transforms the application program to implement the design decisions as the task schedule and granularity. In this paper we focus on the hierarchical strategy to compute and implement the design decisions concerning the task schedule. We show how most of the schedule can be decided statically even in the presence of input-dependent program behavior. This results in much lower runtime overhead than incurred with dynamic approaches based on operating systems.
展开▼