For better utilization of computing resources, it is important to
consider parallel programming environments in which the number of
available processors varies at runtime. In this paper, we discuss
runtime support for data parallel programming in such an adaptive
environment. Executing data parallel programs in an adaptive environment
requires redistributing data when the number of processors changes, and
also requires determining new loop bounds and communication patterns
for the new set of processors. We have developed a runtime library to
provide this support. We discuss how the runtime library can be used by
compilers to generate code for an adaptive environment.
We also present performance results for a multiblock Navier-Stokes
solver run on a network of workstations using PVM for message passing.
Our experiments show that if the number of processors
is not varied frequently, the cost of data redistribution is not
significant compared to the time required for the actual computations.
(Also cross-referenced as UMIACS-TR-94-109