Exploring Tradeoffs in Parallel Implementations of C++ using Futures
Master of Science
As the degree of hardware concurrency continues to rise, multi-core programming becomes increasingly important for the development of high-performance code. Parallel futures are a safe, maintainable, and portable mechanism for expressing parallelism in modern C++, but the efficiency of the futures library implementation is critical for its usefulness in high-performance computing. In this work we introduce the Fibertures library and accompanying compiler support, as an alternate implementation for parallel futures in C++. We measure the performance of Fibertures against standard C++ and other runtime libraries. We find that a combination of compiler transformations and a runtime library, as exemplified by Fibertures, promises to be an effective means of implementing C++ futures.
C++; parallelism; HPC; futures; Fibertures