The difficulty of developing high-performance software using the available languages and tools is being recognized as one of the most significant challenges today in the effective use of high-performance computers. As computers have increased in achievable performance, making it feasible to accurately model more complex phenomena, the time and effort required to develop the software has become the bottleneck in many areas of science and engineering. This proposal seeks to develop a performance-model driven a compiler optimization framework that integrates the algebraic model for loop representation/transformation with a search-based approach for loop fusion, loop tiling and data/work partitioning. The result of the project will make scientific applications, such as quantum chemistry calculations, and other parallel modeling and simulations, easier programmable, and will cut project implementation and development time.
Intellectual Merit
The goal of this proposal is to develop a framework for compiler optimization that performs loop transformations using performance models such as cache miss cost, disk I/O cost, and inter-processor communication cost, that can be expected to correlate directly with measured performance. Since it will generally be infeasible to analytically determine optimal parameters, or even create cost models that are expressible as algebraic functions of pertinent parameters, our approach is to use search strategies in a potentially large parameter space. This novel optimization framework has potential for high payoffs in generating high-performance code.
Broader Impact
Compiler technology can be very effective in reducing the time for developing applications in several areas of science and engineering without sacrificing performance. There is an increasing need for automated support that can relieve the burden from users, of low-level details needed to optimize performance. The framework we propose to build will be applicable to a number of high-level language models such as Matlab, Global Arrays, UPC, Co-Array Fortran, ZPL etc. The development will be done in the Open64 framework and the resulting software will be made available to others. It is anticipated that the developed framework will be valuable to researchers in academia and research laboratories. Finally, this proposal includes the development of new courses and the training of two graduate students.