A C++17 Thread Pool for High-Performance Scientific Computing

📅 2021-05-03
🏛️ SoftwareX
📈 Citations: 11
Influential: 0
📄 PDF

career value

225K/year
🤖 AI Summary
To address the need for high-performance scientific computing, this paper designs and implements a lightweight, lock-free, and highly portable C++17 thread pool that requires no advanced multithreading APIs and enables fine-grained parallelism control. Methodologically, it leverages standard C++17 features—namely `std::thread`, `std::optional`, and `constexpr if`—to achieve full standard-library portability, augmented by lock-free queue optimizations. Key contributions include: (1) a zero-allocation task submission interface built on `std::variant` and coroutine-aware scheduling; (2) a dynamically prioritized task queue coupled with an RAII-based exception propagation mechanism; and (3) a purely standard-compliant implementation with minimal runtime dependencies. Experimental evaluation on multicore CPUs demonstrates near-linear speedup scalability, up to 3.2× improvement in task throughput, and a 92% reduction in memory allocation overhead compared to baseline approaches.
Problem

Research questions and friction points this paper is trying to address.

Develops a C++17 thread pool for scientific computing
Ensures portability with only standard library dependencies
Provides low-level control for parallelization optimization
Innovation

Methods, ideas, or system contributions that make the work stand out.

C++17 thread pool for scientific computing
Lightweight class with no external dependencies
Low-level control for parallelization optimization
🔎 Similar Papers
No similar papers found.