A new framework for analyzing, modeling and optimizing mpi and/or openmp applications
暂无分享,去创建一个
In recent years, clustered symmetric multiprocessors (SMP) and even multicore SMP have gained popularity and are now widely used for high performance computers. Of the top ten supercomputers listed in the Top500, most are clusters of SMPs. Consequently, the use of parallel programming is becoming more and more indispensable.
Message Passing Interface (MPI) is the de facto standard in cluster computing while OpenMP has gained popularity in shared memory machines. The hybrid MPI-OpenMP model is then considered as a natural parallel programming paradigm for emerging parallel architectures that are based on SMP clusters. However, combining two different programming models also introduces more complexity, and these are prone to semantic incorrectness, interoperability and poor performance.
We propose an infrastructure for analyzing, modeling and optimizing MPI and/or OpenMP applications. The framework consists of four main parts: a compiler, microbenchmarks, a user interface and a runtime library. The compiler generates the application signature containing a portable representation of the application structure that may influence program performance. Microbenchmarks are needed to capture the system profile, including MPI latency and OpenMP overhead. The user interface, based on Eclipse, is used to drive code transformation, such as OpenMP code generation. And lastly, our runtime library can be used to balance the MPI workload, thus reducing load imbalance.
In this dissertation we show that our framework can analyze and model MPI and/or OpenMP applications. We also demonstrate that it can be used for program understanding of large scale complex applications.