Adaptive MPI
Chao Huang, Orion Lawlor, L. V. Kale
To appear at
16th Workshop on Languages and Compilers for Parallel Computing (LCPC03), College Station, TX, 2-4 October 2003
Full Text, Printable Abstract.
Abstract
Processor virtualization is a powerful technique that enables the
runtime system to carry out intelligent adaptive optimizations like
dynamic resource management. Charm++ is an early language/system that
supports processor virtualization. This paper describes Adaptive MPI
or AMPI, an MPI implementation and extension, that supports processor
virtualization. AMPI implements virtual MPI processes (VPs), several
of which may be mapped to a single physical processor. AMPI includes
a powerful runtime support system that takes advantage of the degree
of freedom afforded by allowing it to assign VPs onto processors.
With this runtime system, AMPI supports such features as automatic
adaptive overlap of communication and computation and automatic load balancing.
It can also support other features such as checkpointing without
additional user code, and the ability to shrink and expand the set
of processors used by a job at runtime. This paper describes AMPI,
its features, benchmarks that illustrate performance advantages and
tradeoffs offered by AMPI, and application experiences.