![]()
In Partial Fulfillment of the Requirements for the Degree of
Doctor of Philosophy
Will defend his dissertation
OpenMP is the de facto API for parallel programming in C/C++ and Fortran on shared memory and distributed shared memory platforms. An OpenMP cost model is an analytical model that reflects the characteristics of OpenMP applications on given platforms and estimates the cost, mostly in cycles, of their execution. Such a model could be widely used to evaluate designs of computer architectures, guide compiler transformation, enhance adaptive runtime support, and assist advanced performance analysis. However, existing cost models for OpenMP make over-simplifying assumptions and ignore many software and hardware details. They are too simplistic to support significant optimizations, or meet the demands that are likely to be placed on them in the near future.
In this dissertation, we propose a novel OpenMP cost model to consider OpenMP language details along with application features and platform profiles. A prototype has been implemented in an optimizing and portable OpenMP compiler. The experimental results show that our model can provide relatively accurate estimations. Moreover, we evaluated the performance characteristics of OpenMP on emerging multicore architectures and explored possible extensions to our OpenMP cost model for them. We believe our model can meet the demands of different application scenarios and can serve as a basis for a wide range of model-based compilation and runtime systems.