Locality-Optimized Mixed Static/Dynamic Scheduling for Improving Load Balancing on SMPs

Application performance can be degraded significantly due to node-local load imbalances during application execution. Prior work suggested using a mixed static/dynamic scheduling approach for handling this problem, specifically in the context of fine-grained, transient load imbalances. Here, we consider an alternate strategy for more general load imbalances where fine-grained, transient load imbalance may be coupled with coarse-grained load imbalance. Specifically, we implement a scheduling scheme in which we modify the data layout in mixed static/dynamic scheduling, and add an additional tuned constraint in the dequeue function of our scheduler. Through experimentation of an n-body particle simulation code on modern multi-core architectures, our technique gives a 19.4% performance gain over dynamic scheduling, and an overall 48.6% performance gain over standard static scheduling.

[1]  Torsten Hoefler,et al.  Characterizing the Influence of System Noise on Large-Scale Applications by Simulation , 2010, 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.

[2]  CONSTANTINE D. POLYCHRONOPOULOS,et al.  Guided Self-Scheduling: A Practical Scheduling Scheme for Parallel Supercomputers , 1987, IEEE Transactions on Computers.

[3]  William Gropp,et al.  Hybrid Static/dynamic Scheduling for Already Optimized Dense Matrix Factorization , 2011, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.