next up previous
Next: The Static Task Graph: Up: Compiler Synthesis of Task Previous: Introduction


Background: The Task Graph Representation

The POEMS project [4] aims to create a performance modeling environment for the end-to-end modeling of large parallel applications on complex parallel and distributed systems. The wide range of modeling techniques supported by POEMS, and the goal of integrating multiple modeling paradigms make it challenging, if not impossible, for the end-user to generate the required workload information manually for a large-scale application. Thus, since the conception of the project, it has been deemed essential to use compiler support to simplify and partially automate the process of constructing the workload information. To achieve this, we have designed a common task graph based program representation that provides a uniform platform for capturing the parallel structure of a program as well as its associated workloads for different modeling techniques. This representation uses two flavors of a task graph, the static task graph and the dynamic task graph. Its design is described in detail in [2] and is briefly summarized here. The specific information we aim to collect for a given program includes: (1) The detailed computation partitioning and communication structure of the program, described in symbolic terms. (2) Source code for individual tasks to support source-code-driven uses such as detailed program-driven simulation of memory hierarchy performance. (3) Scaling functions that describe how computation and communication scale as a function of program inputs and processor configuration. (4) Optionally, the detailed dynamic behavior of the parallel program, for a specified program input and processor configuration.



Subsections
next up previous
Next: The Static Task Graph: Up: Compiler Synthesis of Task Previous: Introduction
Rizos Sakellariou 2000-10-16