The paradigm compiler implements a new technology for compiling programs for scientific computation in large-scale, multiprocessor computers. The technology is based on analysis of the source program into code blocks, each of which defines a data structure. Each such data structure is mapped into the collection of processing elements of the target computer so that the collection of mappings yields the best possible performance. This project will provide a user-friendly interface through which users may advise the compiler regarding mapping choices for each code block and implement means for estimating performance of the compiled code as a function of target machine parameters and mapping decisions. It will evaluate various mapping strategies for several significant application codes and demonstrate the compiling technology at Connection Machine user sites. The benefits will be easier development of efficient codes for multiprocessor computers and clearer expression for scientific computation through use of a functional programming language. Another benefit is that the user of paradigm can experiment with several mapping choices without having to make any changes to the high-level source language program.
Potential Commercial Applications: The results of this project can simplify the construction of efficient programs for large-scale multiprocessor computers.STATUS: Phase I Only