Iterative applications are known to run as slow as their slowest computational component. This paper introduces
malleability, a new dynamic reconfiguration strategy to overcome this limitation. Malleability is the ability to dynamically change the
data size and number of computational entities in an application. Malleability can be used by middleware to autonomously reconfigure
an application in response to dynamic changes in resource availability in an architecture-aware manner, allowing applications
to optimize the use of multiple processors and diverse memory hierarchies in heterogeneous environments.
The modular Internet Operating System (IOS) was extended to reconfigure applications autonomously using malleability. Two
different iterative applications were made malleable. The first is used in astronomical modeling, and representative of maximum-likelihood
applications was made malleable in the SALSA programming language. The second models the diffusion of heat over a two dimensional
object, and is representative of applications such as partial differential equations and some types of distributed simulations.
Versions of the heat application were made malleable both in SALSA and MPI. Algorithms for concurrent data redistribution
are given for each type of application. Results show that using malleability for reconfiguration is 10 to 100 times faster
on the tested environments. The algorithms are also shown to be highly scalable with respect to the quantity of data involved.
While previous work has shown the utility of dynamically reconfigurable applications using only computational component migration,
malleability is shown to provide up to a 15% speedup over component migration alone on a dynamic cluster environment.
This work is part of an ongoing research effort to enable applications to be highly reconfigurable and autonomously modifiable
by middleware in order to efficiently utilize distributed environments. Grid computing environments are becoming increasingly
heterogeneous and dynamic, placing new demands on applications’ adaptive behavior. This work shows that malleability is a
key aspect in enabling effective dynamic reconfiguration of iterative applications in these environments.
Keywords High performance computing - Malleability - Dynamic reconfiguration - MPI - SALSA - Actors