The PARAMAT system is able to automatically parallelize a wide class of sequential numeric codes operating on dense vectors, matrices etc. without any user interaction, for execution on distributed memory message-passing multiprocessors. A powerful pattern recognition tool locally identifies program semantics and concepts in scientific codes. It also works for dusty deck codes that have been 'encrypted' by former machine-specific code transformations. Successful pattern recognition guides sophisticated code transformations including local algorithm replacement. We propose a unified framework for parallel code generation where the user can allow or prevent the system to choose a suitable new parallel algorithm that does not emerge from the sequential program structure by just parallelizing some loops. The partially restored program semantics also supports local array alignment distribution and redistribution, and allows for faster and more exact prediction of the performance of the parallelized target code than usually possible.
Index Terms:
parallel programming; pattern recognition; distributed memory systems; automatic programming; software tools; PARAMAT system; automatic program transformation; parallelization; sequential numeric codes; dense vectors; distributed memory message-passing multiprocessors; pattern recognition tool; program semantics; parallel algorithm
Citation:
C.W. Kessler, "Pattern-driven automatic program transformation and parallelization," pdp, pp.76, 3rd Euromicro Workshop on Parallel and Distributed Processing, 1995