ITR - Compiler analysis for portability across memory and consistency models
Purdue University, West Lafayette IN
Investigators
Abstract
The Java programming language made writing multi-threaded programs a mainstream activity. Subtle issues arise in how to compile these multi-threaded programs so that common compiler optimizations are allowed while simultaneously ensuring that actions in one thread are viewed by other threads as occurring in a legal order, i.e. one that follows the programming language consistency model. Because previous languages either did not define a memory model or were not widely used, and because multi-threaded programming was done by a small number of experts, the trade-offs between memory model ease-of-use and the ease of compilation were not extensively investigated. In this project, we are building a compiler that will accept as input a programming language memory model definition, a hardware consistency model definition, and an application program. The compiler will then optimize the application program while abiding by the constraints of both the memory and consistency model, allowing the trade-offs between ease of use and compilation to be studied. It will also allow new memory models to be investigated, which will lead to the design of easier to use languages that can be effectively compiled, and used to produce more robust, safer software.
View original record on NSF Award Search →