Skip to content
The C++ Standard Library for Parallelism and Concurrency
Branch: master
Clone or download
Latest commit 1ba6747 Jun 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add module cache May 24, 2019
.github Fix url to docs Feb 2, 2019
.gitlab-ci Adding missing header Feb 12, 2019
cmake Merge pull request #3905 from STEllAR-GROUP/fix_doc_is Jun 14, 2019
docs Merge pull request #3905 from STEllAR-GROUP/fix_doc_is Jun 14, 2019
examples Fix some more typos May 28, 2019
external Remove boostbook documentation Sep 20, 2018
hpx Merge pull request #3904 from STEllAR-GROUP/fix_asan Jun 14, 2019
libs Making sure all tests are disabled if HPX_WITH_TESTS=OFF Jun 8, 2019
plugins Adding new performance counters Jun 12, 2019
python Remove parenthesis from if conditions Apr 4, 2019
src Merge pull request #3903 from STEllAR-GROUP/adding_send_receive_counters Jun 13, 2019
tests Adding new performance counters Jun 12, 2019
tools Merge pull request #3870 from aurianer/module_cache May 27, 2019
.clang-format This updates the .clang-format configuration file to utilize newer fe… May 3, 2018
.clang-tidy Enabling more clang-tidy checks Feb 5, 2019
.editorconfig Revert .editorconfig change Jun 8, 2016
.gitattributes Boost policy dictates that all files must have the license header. Jul 10, 2012
.gitignore adds missing EOF newline May 17, 2019
.gitlab-ci.yml Adding support for gitlab runners Jan 17, 2019
CMakeLists.txt Making sure all tests are disabled if HPX_WITH_TESTS=OFF Jun 8, 2019
CTestConfig.cmake Adding missing license Sep 14, 2014
LICENSE_1_0.txt Undo the rename of LICENSE_1_0.txt - every header file points to LICE… Jul 16, 2013
README.rst Adding Codacy code quality assessment to README May 5, 2019
appveyor.yml Rename hello world examples Apr 10, 2019

README.rst

HPX master branch build status zenodo_doi HPX Code Quality Assessment

Documentation: latest, development (master)

HPX

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.

What's so special about HPX?

  • HPX exposes a uniform, standards-oriented API for ease of programming parallel and distributed applications.
  • It enables programmers to write fully asynchronous code using hundreds of millions of threads.
  • HPX provides unified syntax and semantics for local and remote operations.
  • HPX makes concurrency manageable with dataflow and future based synchronization.
  • It implements a rich set of runtime services supporting a broad range of use cases.
  • HPX exposes a uniform, flexible, and extendable performance counter framework which can enable runtime adaptivity
  • It is designed to solve problems conventionally considered to be scaling-impaired.
  • HPX has been designed and developed for systems of any scale, from hand-held devices to very large scale systems.
  • It is the first fully functional implementation of the ParalleX execution model.
  • HPX is published under a liberal open-source license and has an open, active, and thriving developer community.

Documentation

If you plan to use HPX we suggest to start with the latest released version which can be downloaded here.

To quickly get started with HPX on most Linux distributions you can read the quick start guide here. Detailed instructions on building and installing HPX on various platforms can be found here. The full documentation for the latest release of HPX can always be found here.

If you would like to work with the cutting edge version of this repository (master branch) the documentation can be found here. We strongly recommend that you follow the current health status of the master branch by looking at our continuous integration results website. While we try to keep the master branch stable and usable, sometimes new bugs trick their way into the code base. The CircleCI continuous integration service additionally tracks the current build status for the master branch: HPX master branch build status.

We use Codacy to assess the code quality of this project: HPX Code Quality Assessment.

If you can't find what you are looking for in the documentation or you suspect you've found a bug in HPX we very much encourage and appreciate any issue reports through the issue tracker for this Github project.

If you have any questions feel free to ask it over at StackOverflow and tag the question with hpx.

For a full list of support options please see our Support page.

Code of conduct

We have adopted a code of conduct for this project. Please refer to this document if you would like to know more about the expectations for members of our community, with regard to how they will behave toward each other.

Please find the project's gpg key, which is used to sign HPX releases here.

Citing

In publications the latest release of HPX can be cited as: zenodo_doi .

Acknowledgements

We would like to acknowledge the NSF, DoE, DTIC, DARPA, the Center for Computation and Technology (CCT) at Louisiana State University, and the Department of Computer Science 3 - Computer Architecture at the University of Erlangen Nuremberg who fund and support our work.

We would also like to thank the following organizations for granting us allocations of their compute resources: LSU HPC, LONI, XSEDE, NERSC, CSCS/ETHZ, and the Gauss Center for Supercomputing.

HPX is currently funded by

  • The National Science Foundation through awards 1240655 (STAR), 1339782 (STORM), and 1737785 (Phylanx).

    Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

  • The Department of Energy (DoE) through the awards DE-AC52-06NA25396 (FLeCSI) and DE-NA0003525 (Resilience).

    Neither the United States Government nor any agency thereof, nor any of their employees makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

  • The Defense Technical Information Center (DTIC) under contract FA8075-14-D-0002/0007

    Neither the United States Government nor any agency thereof, nor any of their employees makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights.

  • The Bavarian Research Foundation (Bayerische Forschungsstiftung) through the grant AZ-987-11.

  • The European Commission's Horizon 2020 programme through the grant H2020-EU.1.2.2. 671603 (AllScale).

You can’t perform that action at this time.