Darwin

Darwin

The Next Step in Program Language Implementation Technology

Dynamic Adaptive Runtime Infrastructure

A large body of existing, sequential applications must be migrated to multicore platforms with maximum transparency. To achieve this, techniques for automatic parallelization must be pushed to their limits, and high-level shared memory programming paradigms must be enhanced to support a wide range of programming needs. The implementation must be able to automatically improve aspects of the program, without incurring substantial overheads.

In this project, we exploit existing compiler technology for automatic parallelization and OpenMP translation in order to facilitate application development for multicore systems. To do so, we are extending our robust, open source OpenUH compiler for Fortran 95/C/C++ and OpenMP to enable it to combine automatic parallelization and conventional OpenMP translation strategies. We are implementing the new tasking features of OpenMP to increase the usefulness of this programming model and are considering new static optimization strategies.

One of the novel aspects of this work is its extensive use of modeling to drive the work of the OpenUH compiler and the DARWIN infrastructure. We are building a detailed cost model that is able to represent OpenMP as well as characteristics of selected multicore architectures. The cost model will be used to create an explicitly multithreaded program. It will also be invoked at run time. The DARWIN runtime environment will monitor program behavior and will be capable of evaluating it to identify performance problems. It will also invoke the cost model dynamically in order to adjust certain aspects of the code, based upon the observed behavior and a selective use of components of the cost model. Strategies will be developed to gather and analyze both coarse-grain and fine-grain performance information for selected program regions with low overheads. The project will also create techniques to exploit this information dynamically, and to adapt and optimize based on different levels of program representation. DARWIN will attempt to reduce synchronization, improve the load balance and otherwise adapt the program to the target system.

DARWIN will combine a state-of-the art compiler, OpenUH, with a sophisticated run-time environment that implements recent standards for OpenMP performance data collection with low overheads. The result will be a cohesive environment the enables productive parallel programming on multicore platforms with high levels of application performance.

Where does the "W" DARWIN come from? We don't know: maybe that is the next evolutionary step.

This effort is supported by the National Science Foundation under contract CCF-0702775 (.Scalable Performance and Power-Aware Hybrid Compilation System for Multicore Computing.).