Partial screen snapshot of the D System prototype, a tool for machine-independent data-parallel programming.
If parallel programming is to become more accessible to scientists and engineers, compilers and programming tools must allow parallel programs to be expressed in an abstract, machine-independent form that shields programmers from the complex, low-level details of parallel programming. Although data-parallel languages like HPF and Fortran D provide such a notation, understanding the performance of a data-parallel program at the source code level is difficult, since compilers for data-parallel languages radically transform the original program to produce high-performance executable code. The ARPA-funded D System project at Rice University aims to develop techniques and prototype tools that enable programmers to develop high-performance, machine-independent data parallel programs while working at the source code level.
The screen snapshot above shows parts of two panes from the D editor, the main user interface to the D System prototype. The top pane shows an overview of the loops in one subroutine of a Fortran D program. The colored bars at the left edge of the pane provide dynamic performance information describing the relative computation time (blue) and communication overhead (red) due to this subroutine and loops within it. The bottom pane shows a fragment of the subroutine, annotated with information from compiler analysis. The yellow annotations indicate that the Fortran D compiler will realize partial parallelism (specifically, a wavefront), and depict the data movement responsible for the limited parallelism as well as the communication overhead. By carefully integrating compilation and performance analysis, the D System achieves true, source-level performance feedback even in the presence of sophisticated compiler transformations. While such integration is widely recognized as essential for supporting high-level parallel programming languages, the D System prototype is one of the first programming tools to implement and demonstrate such support in practice.
Next Page (Project Overview)