Effective performance prediction for large parallel applications on very large-scale systems requires a comprehensive modeling approach that combines analytical models, simulation models, and measurement for different application and system components. This paper presents a common parallel program representation, designed to support such a comprehensive approach, with four design goals: (1) the representation must support a wide range of modeling techniques; (2) it must be automatically computable using parallelizing compiler technology, in order to minimize the need for user intervention; (3) it must be efficient and scalable enough to model teraflop-scale applications; and (4) it should be flexible enough to capture the performance impact of changes to the application, including changes to the parallelization strategy, communication, and scheduling. The representation we present is based on a combination of static and dynamic task graphs. It exploits recent compiler advances that make it possible to use concise, symbolic static graphs and to instantiate dynamic graphs. This representation has led to the development of a compiler-supported simulation approach that can simulate regular, message-passing programs on systems or problems 10 to 100 times larger than was possible with previous state-of-the-art simulation techniques.
|Original language||English (US)|
|Number of pages||13|
|Journal||International Journal of High Performance Computing Applications|
|State||Published - Jan 1 2000|
ASJC Scopus subject areas
- Theoretical Computer Science
- Hardware and Architecture