This project is developing new techniques for programming "irregular" parallel applications on high-performance highly parallel platforms, in collaboration with the Chapel programming language team at Cray, Inc. The project addresses several core issues for such applications. First, the work is extending Chapel's existing support for user-defined irregular data distributions by adding general language features for specifying optimized handling of special cases, which are usually essential for adequate performance. Second, the project is designing and evaluating software transactional memory (STM) algorithms that scale to very large scale systems (e.g., distributed-memory clusters), in contrast to previous STM work that has focused on smaller-scale (cache coherent) systems. Third, a (separately funded) component of the overall research project is developing deterministic language mechanisms for parallel computations on pointer-based data using a type and effect system for expressing parallelism and proving noninterference.
If successful, this research will improve ease of programming and deliver high performance for a wide range of applications that are especially challenging for programmers today, namely, "irregular" applications. Further, the work aims to achieve two kinds of direct technology transfer to industry: contributions to the Chapel language and compiler effort at Cray, and contributions to the joint language design effort in the DARPA HPCS program. The major research artifacts, including the language specification and compiler prototype, will be made available as free, open source software for the research community to use. The dynamic compiler infrastructure for high-performance parallel programs should be a particularly valuable tool for further research in this area.