next up previous
Next: The Application Representation in Up: Application Representations for Multi-Paradigm Previous: Introduction


Goals of the Application Representation

We can identify four key goals that must be met by the design of the application representation for a comprehensive performance modeling environment for large-scale parallel systems. These goals are as follows.

First, and most important, the application representation must be able to support a wide range of modeling techniques from abstract analytical models to detailed simulation. In particular, it should be possible to compute the workload for each of these modeling techniques from the application representation, as noted in the Introduction. The workload information required for different modeling techniques varies widely [1]. Execution-driven simulation tools for modeling communication performance and memory hierarchy performance require access to the actual source code, both for individual sequential tasks and for communication operations. Deterministic task graph analysis requires a dynamic task graph representation consisting of sequential task nodes, task precedence edges, and communication events, together with numerical parameters describing task computation times and communication demands. Finally, simpler analytical modeling approaches (e.g., LogP and LogGP) have built-in information about the synchronization structure of the code and mainly require numerical parameters describing task computation times and communication demands.

Second, it must be possible to use parallelizing compiler technology to automate (partially or completely) the process of computing the application representation. This will be essential for large-scale real-world applications, where the size and complexity of the representation would make it impractical to compute it manually. It will also be essential if such a complex modeling environment is to be accessible to end-users. It is not reasonable to expect end-users to have a detailed understanding of the application representation, or to have any significant expertise in any of the modeling techniques being applied.

Third, the representation must be efficient and scalable enough to support modeling teraflop-scale applications on very large parallel systems. This means that the representation must be able to capture program behavior for large problem sizes and system configurations, and for programs with high degrees of parallelism. Furthermore, the representation must be able to capture program behavior for adaptive algorithms, which are expected to be the algorithms of choice for large scale computations. The major challenge for such algorithms is that the parallelism, communication and synchronization in these algorithms may not be predictable statically, but may depend on intermediate results during the evolution of the computation. This could mean, for example, that predicting the precise runtime behavior of the program might require actual execution of significant portions of the computation.

Finally, the representation should be flexible enough to support performance prediction studies that can predict the impact of changes to the application, particularly changes to the parallelization strategy, communication and scheduling. (Note that changes to system features will be captured by other components of POEMS from the operating system and hardware domains.)


next up previous
Next: The Application Representation in Up: Application Representations for Multi-Paradigm Previous: Introduction
Rizos Sakellariou 2000-09-15