Abstract
Malleable jobs are parallel programs that can change the number of
processors on which they are executing at run time in response to
an external command. One of the advantages of such jobs is that a
job scheduler for malleable jobs can provide improved system
utilization and average response time over a scheduler for
traditional jobs. In this paper, we present a programming system
for creating malleable jobs that is more general than other current
malleable systems. In particular, it is not limited to the
master-worker paradigm or the Fortran SPMD programming model, but
can also support general purpose parallel programs including those
written in MPI and Charm++, and has built-in migration and
load-balancing, among other features.