Writing portable parallel programs in high-level languages on modern computing engines is heavily constrained by locality of reference; they can only run fast if they reuse data already close to the processor, and if they can compute much more than they must communicate.
Intellectual Merit
The proposed research addresses this problem with a new style of programming that organizes computation so that it is addressed implicitly. "Divide-and-conquer" applies at once to recursive control, to data sharing, to broad communication, and to machine organization. Programmers will again be able to solve important problems without much knowledge about the memory hierarchy or network communication. It will deliver high-performance computing to ordinary scientists, and allow generations of students to learn it as part of their first programming language. Success will advance computing, and all sciences and engineering that depend upon it.
Broader Impacts
Products include a new programming style, new efficiencies for parallel and Grid computing, tools to carry old codes into this environment, tools to support the new generation of programs, support for teaching a new generation of programmers, and new algorithms that can only be inspired by this high-level perspective on programming.
The project offers huge payoffs, both in the future growth of useful applications of parallel computing and in delivering access to this technology to many more students and future scientists and engineers. The results of this research can simplify the teaching and learning of large-scale computing. Results will be disseminated via the usual channels of conference and journal papers, and programming tools will be delivered over the net.