A Flexible Thread Scheduler for Hierarchical Multiprocessor Machines
Samuel Thibault
Abstract
With the current trend of multiprocessor machines towards more and more hierarchical architectures, exploiting the full computational power requires careful distribution of execution threads and data so as to limit expensive remote memory accesses. Existing multi-threaded libraries provide only limited facilities to let applications express distribution indications, so that programmers end up with explicitly distributing tasks according to the underlying architecture, which is difficult and not portable. In this article, we present: (1) a model for dynamically expressing the structure of the computation; (2) a scheduler interpreting this model so as to make judicious hierarchical distribution decisions; (3) an implementation within the Marcel user-level thread library. We experimented our proposal on a scientific application running on a ccNUMA Bull NovaScale with 16 Intel Itanium II processors; results show a 30% gain compared to a classical scheduler, and are similar to what a handmade scheduler achieves in a non-portable way.
Create a lesson
Related papers
Prorsa: Unleashing the Potential of Prefill-Decode Disaggregation in Agentic Reinforcement Learning
Chiheng Lou, Xiangwei Deng, Bangjun Xiao et al.
Revisiting Fast Tendermint: An Agreement Violation and Two Repairs
Alejandro Ranchal-Pedrosa
Federated Coreset Subsampling for Distributed Memory Banks
Jason Witzemann, Daniel Pröll, Sebastian Hegenbart
Space AI Infrastructure: Where the Edge Meets the Orbital Cloud
Zhanwei Wang, Jianhao Huang, Min Sheng et al.
SP-Allreduce: Symmetric Tree Schedules for Tori and Beyond
Mikhail Cherniavskii, Andrey Kupavskii, Georgy Mironov et al.
From Nominal Capacity to Deliverable Compute: Design, Calibration and Validation of the D-PIN SCU Dynamic Metering System
Cheng Li, Jiexiong Liu, Shikun Wang et al.