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.