Compiler Support for Implicit Process Sets

Ernesto Gomez; L. Ridgway Scott. 25 October, 2005.
Communicated by L. Ridgway Scott.


Much of parallel computing in scientific computation has been limited to static parallelism. We introduce here support for a kind of dynamic, or adaptive, parallelism, arising from implicit process sets in SPMD execution. Implicit process sets are formed by program logic which selects a subset of processes to execute some section of code that is not executed by other processes. The actual set of processes selected is implicit (rather than spelled out) when it depends on factors not known ahead of time to the programmer, such as input data or computed results. Communication in such sections of code is generally either avoided or given only limited support by parallel programming languages and tools. This restricts the kinds of algorithms commonly implemented to those in which communications can be performed only in global sections of code. To support implicit process set, we introduce entities we call Merging Implicit Process Sets (MIPS), and a support framework for them. We test the practical possibilities of MIPS support by extending the PC (Parallel C) compiler from the University of Chicago to automatically insert MIPS code in IF and IF-ELSE statements. We display experimental results showing the efficiency of our approach.

Original Document

The original document is available in PDF (uploaded 25 October, 2005 by L. Ridgway Scott).