Loading [MathJax]/extensions/MathMenu.js
Analyzing the Performance Trade-Off in Implementing User-Level Threads | IEEE Journals & Magazine | IEEE Xplore

Analyzing the Performance Trade-Off in Implementing User-Level Threads


Abstract:

User-level threads have been widely adopted as a means of achieving lightweight concurrent execution without the costs of OS-level threads. Nevertheless, the costs of man...Show More

Abstract:

User-level threads have been widely adopted as a means of achieving lightweight concurrent execution without the costs of OS-level threads. Nevertheless, the costs of managing user-level threads represent a performance barrier that dictates how fine grained the concurrency exposed by an application can be without incurring significant overheads; this in turn may translate into insufficient parallelism to exploit highly parallel systems. This article is a deep dive into the fundamental costs in implementing user-level threads. We first identify that one of the highest sources of fork-join overheads stems from deviations, events that incur context switching during the execution of a thread and disrupt a run-to-completion execution. We then conduct an in-depth investigation of a wide spectrum of methods with respect to how they handle deviations while covering both parent- and child-first scheduling policies. Our methodology involves a comprehensive instruction- and cache-level analysis of all methods on several modern CPU architectures. The primary finding of our evaluation is that dynamic promotion methods that assume the absence of deviation and dynamically provide context-switching support offer the best trade-off between performance and capability when the likelihood of deviation is low.
Published in: IEEE Transactions on Parallel and Distributed Systems ( Volume: 31, Issue: 8, 01 August 2020)
Page(s): 1859 - 1877
Date of Publication: 28 February 2020

ISSN Information:

Funding Agency:


References

References is not available for this document.