A Pattern Language for Topology Aware Mapping
Authors:
Abhinav Bhatele, Laxmikant V. Kale, Nicholas Chen and Ralph E. Johnson
Parallel Programming Laboratory, Department of Computer Science, University
of Illinois at Urbana-Champaign
Workshop on Parallel Programming Patterns (ParaPLOP 2009)
Obtaining the best performance from a parallel program involves four important steps: 1. Choice of the appropriate grainsize; 2. Balancing computational and communication load across processors; 3. Optimizing communication by minimizing inter-processor communication and overlap of communication with computation; and 4. Minimizing communication traffic on the network by topology aware mapping. In this paper, we will present a pattern language for the fourth step where we deploy topology aware mapping to minimize communication traffic on the network and optimize performance. Bandwidth occupancy of network links by different messages at the same time leads to contention which increases message latencies. Topology aware mapping of communicating tasks on the physical processors can avoid this and improve application performance significantly.