AESOP home


Optimising shared reduction variables in MPI programs

A. J. Field, Paul Kelly, Thomas Hansen

Conference or Workshop Paper
8th International Euro-Par Conference on Parallel Processing, Paderborn, Germany, 2002
July, 2002
Lecture Notes in Computer Science
Volume 2400
ISBN 3-5404-4049-6

CFL (Communication Fusion Library) is an experimental C++ library which supports shared reduction variables in MPI programs. It uses overloading to distinguish private variables from replicated, shared variables, and automatically introduces MPI communication to keep replicated data consistent. This paper concerns a simple but surprisingly effective technique which improves performance substantially: CFL operators are executed lazily in order to expose opportunities for run-time, context-dependent, optimisation such as message aggregation and operator fusion. We evaluate the idea using both toy benchmarks and a `production' code for simulating plankton population dynamics in the upper ocean. The results demonstrate the library's software engineering benefits, and show that performance close to that of manually optimised code can be achieved automatically in many cases.

Information from