This collaborative project, laying the groundwork for building, deploying, and demonstrating the usage of a robust and extensible parallelizing/optimizing compiler and runtime software infrastructure (mainly for high-end computing), facilitates the preparation of a future community resource for a variety of computer science research. Present work often relies on source-to-source transformation that ignores the effect of code generation, or addresses only one language. However, since new architectures imply challenges for languages, compilers, and tools as impending architectures incorporate an unprecedented amount of parallelism in the form of chip multithreading, shared memory parallelism, and clusters, the community can benefit from higher levels of integration between compilers and a variety of tools and other utilities in a programming environment. The project extends work based on the Open64 compiler suite, a robust, industry quality, state-of-the-art optimizing and parallelizing compiler that permits end-to-end experimentation and compiler research at all levels, including advanced computer architectures, parallel programming languages, compiler/runtime software, system software, application development, performance modeling/tuning, as well as grid computing. The work involves assessing the needs of other groups to address the challenges posed by increasingly complex programming paradigms and architectures. This planning project will develop a strategy for creating an open source, robust compiler framework that enables research on existing and future technologies, supports real-world experimentation with existing and novel language features, and provides the means for interaction with programming tools and environments.
Broader Impacts: Reducing the effort in performing realistic compiler related experiments, the planned infrastructure should make compiler technologies broadly available. Moreover, it will be used as a teaching platform for courses and outreach education programs.