https://arxiv.org/abs/2105.00613 close this message arXiv smileybones icon Giving Week! Show your support for Open Science by donating to arXiv during Giving Week, April 25th-29th. DONATE Skip to main content Cornell University We gratefully acknowledge support from the Simons Foundation and member institutions. arxiv logo > cs > arXiv:2105.00613 [ ] Help | Advanced Search [All fields ] Search arXiv logo Cornell University Logo [ ] GO quick links * Login * Help Pages * About Computer Science > Distributed, Parallel, and Cluster Computing arXiv:2105.00613 (cs) [Submitted on 3 May 2021 (v1), last revised 12 Jun 2022 (this version, v3)] Title:A C++17 Thread Pool for High-Performance Scientific Computing Authors:Barak Shoshany Download PDF Abstract: We present a modern C++17-compatible thread pool implementation, built from scratch with high-performance scientific computing in mind. The thread pool is implemented as a single lightweight and self-contained class, and does not have any dependencies other than the C++17 standard library, thus allowing a great degree of portability. In particular, our implementation does not utilize OpenMP or any other high-level multithreading APIs, and thus gives the programmer precise low-level control over the details of the parallelization, which permits more robust optimizations. The thread pool was extensively tested on both AMD and Intel CPUs with up to 40 cores and 80 threads. This paper provides motivation, detailed usage instructions, and performance tests. Comments: 23 pages, source code available at this https URL Subjects: Distributed, Parallel, and Cluster Computing (cs.DC) ACM classes: D.1.3; D.1.5 Cite as: arXiv:2105.00613 [cs.DC] (or arXiv:2105.00613v3 [cs.DC] for this version) https://doi.org/10.48550/arXiv.2105.00613 Focus to learn more arXiv-issued DOI via DataCite https://doi.org/10.5281/zenodo.4742687 Related DOI: Focus to learn more DOI(s) linking to related resources Submission history From: Barak Shoshany [view email] [v1] Mon, 3 May 2021 03:04:49 UTC (16 KB) [v2] Sat, 8 May 2021 16:12:52 UTC (15 KB) [v3] Sun, 12 Jun 2022 05:37:43 UTC (19 KB) Full-text links: Download: * PDF * PostScript * Other formats [by-4] Current browse context: cs.DC < prev | next > new | recent | 2105 Change to browse by: cs References & Citations * NASA ADS * Google Scholar * Semantic Scholar DBLP - CS Bibliography listing | bibtex a export bibtex citation Loading... Bibtex formatted citation x [loading... ] Data provided by: Bookmark BibSonomy logo Mendeley logo Reddit logo ScienceWISE logo (*) Bibliographic Tools Bibliographic and Citation Tools [ ] Bibliographic Explorer Toggle Bibliographic Explorer (What is the Explorer?) [ ] Litmaps Toggle Litmaps (What is Litmaps?) [ ] scite.ai Toggle scite Smart Citations (What are Smart Citations?) ( ) Code & Data Code and Data Associated with this Article [ ] arXiv Links to Code Toggle arXiv Links to Code & Data (What is Links to Code & Data?) ( ) Demos Demos [ ] Replicate Toggle Replicate (What is Replicate?) ( ) Related Papers Recommenders and Search Tools [ ] Connected Papers Toggle Connected Papers (What is Connected Papers?) [ ] Core recommender toggle CORE Recommender (What is CORE?) ( ) About arXivLabs arXivLabs: experimental projects with community collaborators arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website. Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them. Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs and how to get involved. Which authors of this paper are endorsers? | Disable MathJax (What is MathJax?) * About * Help * Click here to contact arXiv Contact * Click here to subscribe Subscribe * Copyright * Privacy Policy * Web Accessibility Assistance * arXiv Operational Status Get status notifications via email or slack