Communication Cost-Aware Load Balancing for Architectures with Asymetric Performance Behavior
Abstract
Current HPC platforms are highly hierarchical and present asymmetric performance behaviors. These asymmetries can be seen on the latencies of memory and network hierarchies, and processing units. In this context, an optimal task distribution for an irregular application would not only require to deal with load imbalance, but also to take into account the costs of moving data around, as the memory access and network communication costs play a major role in obtaining high efficiency. Taking both of these criteria into account is a key step to achieve performance portability on current HPC platforms. In this poster, we introduce our portable approach to improve thread/data affinity while reducing core idleness on both shared memory and distributed parallel platforms. Our approach relies on a generic view of the machine topology, with benchmarked communication costs, and information about the behavior of the parallel application. We combine this information to dynamically balance the load of the application. A load balancing algorithm named NucoLB (non-uniform communication costs load balancer) was implemented for multicore machines with non-uniform memory access design using the Charm++ Parallel System. Experimental results show that our approach leads to performance improvements of up to 20% when compared to state of the art load balancers on different parallel machines. Our future work includes extending our algorithms to different kinds of processing units, such as GPUs.