Researchers at Argonne National Laboratory and the University of Tokyo have won a Best Paper Award at the 28th international conference on Parallel Architectures and Compilation Techniques (PACT19), held in Seattle, Washington, in September 2019.
In the award-winning paper, titled “BOLT: Optimizing OpenMP Parallel Regions with User-Level Threads,” the researchers describe BOLT as a high-performance implementation of OpenMP especially targeting fine-grained parallelism.
“OpenMP is the most popular multithreading model in high-performance computing,” said Shintaro Iwasaki, a predoctoral appointee in Argonne’s Mathematics and Computer Science division and lead author of the award-winning paper. “But OpenMP parallelizes multiple software stacks, which can lead to an exponential number of threads. And while one can disable nested parallelism, doing so can decrease desired parallelism.”
One solution is to replace OpenMP’s operating-system-level threads with user-level threads, or ULTs. The use of ULTs is not new, and several ULT-based OpenMP systems have been proposed. But a simple replacement with such threads performs poorly.
The solution developed for BOLT is a combination of a lightweight ULT library, Argobots, and a novel thread coordination algorithm that transparently supports both flat parallelism and nested parallel regions. Benchmark tests indicate that the new hybrid policy achieves unprecedented performance for nested parallel regions without hurting the performance of flat parallelism.
Argobots is a lightweight runtime system that supports integrated computation and data movement with massive concurrency.
For information about BOLT, see the website.
Slides of the paper presentation are here.
The full citation for the paper is as follows:
Shintaro Iwasaki, Abdelhalim Amer, Kenjiro Taura, Sangmin Seo, and Pavan Balaji, “BOLT: Optimizing OpenMP Parallel Regions with User-Level Threads,” in Proceedings of the 28th International Conference on Parallel Architectures and Compilation Techniques (PACT ’19), Sept. 2019