- Notifications
You must be signed in to change notification settings - Fork459
The C++ Standard Library for Parallelism and Concurrency
License
STEllAR-GROUP/hpx
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Documentation:latest,development (master)
HPX is a C++ Standard Library for Concurrency and Parallelism. It implements allof the corresponding facilities as defined by the C++ Standard. Additionally, inHPX we implement functionalities proposed as part of the ongoing C++standardization process. We also extend the C++ Standard APIs to the distributedcase.
The goal of HPX is to create a high quality, freely available, open sourceimplementation of a new programming model for conventional systems, such asclassic 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 runtimesystem architecture which would allow us to port our implementation onto newcomputer system architectures. We want to use real-world applications to drivethe development of the runtime system, coining out required functionalities andconverging onto a stable API which will provide a smooth migration path fordevelopers.
The API exposed by HPX is not only modeled after the interfaces defined by theC++11/14/17/20 ISO standard, it also adheres to the programming guidelines usedby the Boost collection of C++ libraries. We aim to improve the scalability oftoday's applications and to expose new levels of parallelism which are necessaryto take advantage of the exascale systems of the future.
- HPX exposes a uniform, standards-oriented API for ease of programming paralleland distributed applications.
- It enables programmers to write fully asynchronous code using hundreds ofmillions of threads.
- HPX provides unified syntax and semantics for local and remote operations.
- HPX makes concurrency manageable with dataflow and future basedsynchronization.
- It implements a rich set of runtime services supporting a broad range of usecases.
- HPX exposes a uniform, flexible, and extendable performance counter frameworkwhich can enable runtime adaptivity
- It is designed to solve problems conventionally considered to bescaling-impaired.
- HPX has been designed and developed for systems of any scale, from hand-helddevices to very large scale systems.
- It is the first fully functional implementation of the ParalleX executionmodel.
- HPX is published under a liberal open-source license and has an open, active,and thriving developer community.
The HPX project is a meritocratic, consensus-based community project. Anyonewith an interest in the project can join the community, contribute to theproject design and participate in the decision making process.This document describeshow that participation takes place and how to set about earning merit withinthe project community.
If you plan to use HPX we suggest to start with the latest released versionwhich can be downloadedhere.
To quickly get started with HPX on most Linux distributions you can read thequick start guidehere.Detailed instructions on building and installing HPX on various platforms can befoundhere.The full documentation for the latest release of HPX can always be foundhere.
If you would like to work with the cutting edge version of this repository(master
branch) the documentation can be foundhere.We strongly recommend that you follow the current health status of the masterbranch by looking at ourcontinuous integration results website. While we try to keep themaster branch stable and usable, sometimes new bugs trick their way into thecode base. TheCircleCIcontinuous integration service additionally tracks the current build status forthe master branch:.
We useCodacy to assess the code quality of thisproject:. For our coverage analysis, we also rely onCodacy to present the results:
.
If you can't find what you are looking for in the documentation or you suspectyou've found a bug in HPX we very much encourage and appreciate any issuereports through theissue tracker for this Github project.
If you have any questions feel free to ask it over atStackOverflow and tag the question withhpx.
For a full list of support options please see ourSupport page.
We have adopted acode of conductfor this project. Please refer to this document if you would like to know moreabout the expectations for members of our community, with regard to how theywill behave toward each other.
Please find the project's gpg key, which is used to sign HPX releaseshere.
In publications, please use our paper in The Journal of Open SourceSoftware as the main citation for HPX:. For referringto the latest release of HPX please use:
.
We have used a free open-source license ofPVS-Studio, a static analyzer for C++ codeto check our code base.
Past and current funding and support for HPX is listedhere
About
The C++ Standard Library for Parallelism and Concurrency