HPX - The C++ Standard Library for Parallelism and Concurrency
HPX is a C++ Standard Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case.
The goal of HPX is to create a high quality, freely available, open source implementation of a new programming model for conventional systems, such as classic Linux based Beowulf clusters or multi-socket highly parallel SMP nodes. At the same time, we want to have a very modular and well designed runtime system architecture which would allow us to port our implementation onto new computer system architectures. We want to use real-world applications to drive the development of the runtime system, coining out required functionalities and converging onto a stable API which will provide a smooth migration path for developers.
The API exposed by HPX is not only modeled after the interfaces defined by the C++11/14/17/20 ISO standard, it also adheres to the programming guidelines used by the Boost collection of C++ libraries. We aim to improve the scalability of today's applications and to expose new levels of parallelism which are necessary to take advantage of the exascale systems of the future.
Funding
CSR: Small: Accelerated ParalleX (APX) for Enhanced Scaling AMR based Science
Directorate for Computer & Information Science & Engineering
Find out more...SHF: Large: Collaborative Research: PXGL: Cyberinfrastructure for Scalable Graph Execution
Directorate for Computer & Information Science & Engineering
Find out more...INSPIRE: STAR: Scalable toolkit for Transformative Astrophysics Research
Directorate for Mathematical & Physical Sciences
Find out more...BIGDATA: F: DKM: Collaborative Research: PXFS: ParalleX Based Transformative I/O System for Big Data
Directorate for Computer & Information Science & Engineering
Find out more...SI2-SSI: Collaborative Research: STORM: A Scalable Toolkit for an Open Community Supporting Near Realtime High Resolution Coastal Modeling
Directorate for Computer & Information Science & Engineering
Find out more...Collaborative Research: Phylanx: Python based Array Processing in HPX
Directorate for Computer & Information Science & Engineering
Find out more...eXascale Programming Environment and System Software (XPRESS)
Office of Advanced Scientific Computing Research
Find out more...