In recent times, the importance of efficiently mapping software threads to hardware threads has been steadily increasing to maximize the performance of multi-threaded applications. Systematically combining computational resources, flexible runtime thread redistribution, and selective processor dedication improves the performance of multi-threaded applications. This paper introduces a novel pinning strategy: OCC pinning (Optimizing Concurrent Computations through Thread Pinning). It leverages the operating system's integration and granular affinity binding to distribute threads across cores. Furthermore, it introduces a reusable pattern to bridge the gap between language-level concurrency and hardware. To study the performance of OCC pinning, we consider three concurrent data structures (Contention Adapting Binary Search Tree, Striped Hash Set, and Lazy List) and three pinning strategies (NUMA pinning, No pinning, and OCC pinning). We observe that OCC pinning across different workloads exhibits an average speedup of 1.16X and 1.26X compared to NUMA pinning and No pinning, respectively. Our technique also optimizes cache locality, helping achieve significant performance gains compared to traditional methods. This, in turn, helps unlock the full potential of concurrent platforms by effectively utilizing the entire spectrum of computing resources.
No takes yet. Share an insight, caveat, or question.
Gandham et al. (2024) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: