TR-2005-14
Compiler Support for Implicit Process Sets
Ernesto Gomez; L. Ridgway Scott. 25 October, 2005.
Communicated by L. Ridgway Scott.
Abstract
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).