An Adaptive Self-Scheduling Loop Scheduler
Joshua Dennis Booth, Phillip Lane

TL;DR
This paper introduces extit{ichunk}, a self-adaptive loop scheduler that dynamically adjusts chunk sizes based on workload variance, achieving near-optimal performance without expert tuning in shared-memory parallel irregular applications.
Contribution
The paper presents extit{ichunk}, a novel self-scheduling method that automatically manages chunk sizes using workload variance heuristics and work-stealing, eliminating the need for expert parameter tuning.
Findings
extit{ichunk} consistently ranks among the top three LS methods.
It achieves within 5.4% of the best method on average across applications.
It outperforms traditional methods in BFS and K-Means applications.
Abstract
Many shared-memory parallel irregular applications, such as sparse linear algebra and graph algorithms, depend on efficient loop scheduling (LS) in a fork-join manner despite that the work per loop iteration can greatly vary depending on the application and the input. Because of its importance, many different methods, e.g., workload-aware self-scheduling, and parameters, e.g., chunk size, have been explored to achieve reasonable performance that requires expert prior knowledge about the application and input. This work proposes a new LS method that requires little to no expert knowledge to achieve speedups close to those of tuned LS methods by self-managing chunk size based on a heuristic of workload variance and using work-stealing. This method, named \ichunk, is implemented into libgomp for testing. It is evaluated against OpenMP's guided, dynamic, and taskloop methods and is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
