Exploring Performance Optimizations through a Comprehensive Search Space Navigation System

Researcher(s)

  • Thomas O'Flynn, Computer Science, University of Delaware

Faculty Mentor(s)

  • Rudolf Eigenmann, ECE, University of Delaware
  • Miguel Rosas, ECE, University of Delaware

Abstract

Achieving high performance on today’s processors relies on different compiler optimizations. Determining what optimizations to apply and where depends on the program and the target platform. Additionally, the different sets of optimizations will create a vast optimization space, where each of the optimizations can provide good performance individually, and when combined, they could increase or degrade performance. Moreover, choosing the best set of optimizations will maximize the performance of a target application.

 

Hence, it is essential to evaluate different combinations of optimizations and find the optimal combination to explore the computational power that modern multi-core systems can provide. Therefore, automatic parallelization combined with tuning techniques will help as an alternative to explore the search space navigation and obtain the optimal combinations of optimizations for a target application. Also, the Search space navigation System is an alternative to manual parallelization of computational applications. In this study, we focus on investigating the performance gap between automatic and manual parallelization and seek to determine if this gap can be closed through the application of compile-time techniques or if user intervention is

necessary to achieve performance maximization.

 

We developed a Search Space Navigation System that uses three different Search Space algorithms (1. Genetic Algorithm, 2. Exhaustive Search, 3. Combine Elimination Algorithm) to obtain a set of combinations that represents the optimal combination for the target application. Based on the results, the Combine Elimination algorithm was the best among the three, and also it shows that the Search Space Navigation System performs better than original serial programs in the worst scenario and, in some cases, outperforms hand-parallel applications.  Our work guarantees performance improvements in nearly all applications and serves as a valuable tool for users to achieve enhanced performance in their applications (Lowest Execution Time among all the possible combinations).