Computer programmers must create software that produces a correct answer while making effective use of the computer hardware. This challenge of combining correctness and efficient hardware use is particularly difficult in scientific research, which often requires novel computing hardware for complex calculations. Different software "tuning" techniques are needed for shared-memory multi-core computers, distributed systems such as clusters of workstations, and high-speed graphics processors. Thus, scientific research with a computational element often requires great programming effort, which must be done with care, as performance tuning can introduce errors into a working program. The traditional alternative to manual performance tuning is the use of an automatic optimizing compiler. Such systems have largely replaced human beings for many tuning steps for single-core microprocessors (such as instruction selection and register allocation). More recently, research compilers such as Pluto have shown significant success in organizing the sharing of work within multi-core processors. Programmers using these systems are spared the work of tuning, but lose the ability to explore approaches that were not foreseen or chosen by the designer of the compiler. The AlphaZ system puts the mathematical foundation of the Pluto compiler (the "polyhedral framework") under control of the programmer, allowing manual tuning without needless effort or error. Like Pluto, AlphaZ can tune software for single- or multi-core systems. Pluto and AlphaZ are each the subject of ongoing research to support distributed computing by automatically transforming programs to distribute work across a cluster of computers with the MPI library. However, neither research project allows the programmer to explore novel ways to organize the motion of data among the constituent computers of a cluster. This RUI project is exploring extensions to the AlphaZ system to allow programmer-directed data transfer with MPI focusing both on the high-level design of these extensions and on anticipating implementation challenges. The envisioned extensions to AlphaZ will facilitate exploration, by both compiler writers and programmers, of strategies for moving data in a distributed computing environment. Furthermore, these extensions will validate a program tuning strategy that could be applied to other new architectures such as graphics processors.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1218827
Program Officer
Almadena Chtchelkanova
Project Start
Project End
Budget Start
2012-06-01
Budget End
2016-05-31
Support Year
Fiscal Year
2012
Total Cost
$133,583
Indirect Cost
Name
Haverford College
Department
Type
DUNS #
City
Haverford
State
PA
Country
United States
Zip Code
19041