Traditional parallel schedulers running on cluster supercomputers support only static scheduling, where the number of processors
allocated to an application remains fixed throughout the execution of the job. This results in under-utilization of idle system
resources thereby decreasing overall system throughput. In our research, we have developed a prototype framework called ReSHAPE,
which supports dynamic resizing of parallel MPI applications executing on distributed memory platforms. The resizing library
in ReSHAPE includes support for releasing and acquiring processors and efficiently redistributing application state to a new
set of processors. In this paper, we derive an algorithm for redistributing two-dimensional block-cyclic arrays from P to Q processors, organized as 2-D processor grids. The algorithm ensures a contention-free communication schedule for data redistribution
if P
r
≤ Q
r
and P
c
≤ Q
c
. In other cases, the algorithm implements circular row and column shifts on the communication schedule to minimize node contention.
Keywords Dynamic scheduling - Dynamic resizing - Data redistribution - Dynamic resource management - process remapping - resizable applications