To understand the behavior of OpenMP programs, special tools and adaptive techniques are needed for performance analysis. However, these tools provide low-level profile information at the assembly and functions boundaries via instrumentation at the binary or code level, which are very hard to interpret. Moreover, to compare different OpenMP-enabled compilers, there is no systematic methodology that provides an easy comparison. Hence, in this paper, we propose a new model for OpenMP-enabled compilers that assesses the performance differences in well-defined formulations by dividing OpenMP program conditions into four distinct states which account for all the possible cases that an OpenMP program can take. The model works as a first-level inspector to reason about the effect of compiler performance on every state in an unobtrusive and informative way. In addition, an improved version of the standard performance metrics is proposed: speedup, overhead and efficiency based on the model categorization that is state's aware. The evaluation shows that the improved version is more accurate and insightful in terms of OpenMP implementation. Moreover, an algorithmic approach to find patterns between OpenMP compilers is proposed, which is verified along with the model formulations experimentally. We also show the mathematical model behind the optimum performance for any OpenMP program.
- parallel programming
- performance analysis