You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HPX is an open-source, modern asynchronous many-task (AMT) runtime system designed to tackle the scalability and resource utilization challenges of large-scale distributed computing. Built to extend the C++ Standard Library, HPX unifies the syntax and semantics of local and remote operations, enabling developers to write portable, scalable applications with familiar C++ syntax.
HPX leverages C++ futures and coroutines to enable seamless overlap of computation and communication, optimizing system utilization with minimal overhead. Its threading subsystem implements lightweight user-level threads that support rapid context switching, minimizing synchronization delays and enhancing parallel efficiency. With its Active Global Address Space (AGAS), HPX facilitates flexible object migration and load balancing across distributed environments. Its parcel transport layer supports asynchronous communication and integrates with multiple communication interfaces, such as MPI and LCI. Furthermore, HPX offers interoperability with a wide range of accelerators and performance portability libraries, making it versatile for diverse high-performance computing needs. Finally, HPX resiliency APIs provide fault tolerance and error recovery, enhancing the reliability of distributed applications. Together, these features make HPX a powerful, portable tool for developing high-performance, scalable applications.
3. Statement on Alignment with High Performance Software Foundation's Mission
HPX is an open-source, meritocratic, and consensus-driven community project, and part of the Extreme-scale Scientific Software Stack (E4S). HPX is designed to address exascale computing challenges and provides comprehensive APIs for various programming models, making it suitable for a wide range of HPC applications, including AI/ML and scientific computing.
HPX integrates with widely used HPC tools and libraries, acting as a backend or interoperability layer. Its threading system supports performance portability frameworks like Kokkos and FleCSI, along with language and compiler solutions such as OpenMP, Chapel, and Halide. Additionally, HPX includes essential performance measurement, profiling, and analysis tools like APEX and Traveler, supporting the building, maintenance, and optimization of HPC software.
With backend support for libraries such as Blaze (math), BLIS (linear algebra), NWGraph (graph computing), Phylanx (distributed arrays), and DataFrame (statistical analysis), HPX is positioned to serve as the runtime system for the high-performance software ecosystem.
HPX is distributed via E4S and Spack package managers.
12. Please describe your release methodology and mechanics
the aim is to produce two releases per year: one in March-April and another in September-October. Details of the release process are documented in the link below:
All development happens on feature branches and are presented to the development team as GitHub pull requests. Every pull request must pass the extensive set of contiguous integration steps that (on each commit) compile and run more than 1500 unit and regression tests that verify HPX’s functionalities. Pull requests that add new features are required to also add tests that verify the new functionalities. Pull requests that fix a particular problem are required to include a regression test that verifies the fix.
Every pull request must be reviewed and approved by at least one developer before being merged.
Contiguous integration pipelines are run on several platforms: GitHub actions, CircleCI, and on our own computing resources (using a Jenkins setup). Additionally, each commit triggers static analysis builders like address sanitizer builds, code coverage, Github CodeQL, Github PREfast, Codacy checks, spell checkers, our own inspect tool, clang-format verification, etc.
The CI builders run on a wide array of environments (Windows, Linux, MaxOS), utilizing different compilers and their versions (Clang, gcc, MSVC, nvcc, CUDA-clang, HIP-clang), and on different architectures (x86, ARM, RISC-V).
HPX follows OpenSSF best practices, and our security policy is available at Security Policy.
1. Name of Project
HPX
2. Project Description
HPX is an open-source, modern asynchronous many-task (AMT) runtime system designed to tackle the scalability and resource utilization challenges of large-scale distributed computing. Built to extend the C++ Standard Library, HPX unifies the syntax and semantics of local and remote operations, enabling developers to write portable, scalable applications with familiar C++ syntax.
HPX leverages C++ futures and coroutines to enable seamless overlap of computation and communication, optimizing system utilization with minimal overhead. Its threading subsystem implements lightweight user-level threads that support rapid context switching, minimizing synchronization delays and enhancing parallel efficiency. With its Active Global Address Space (AGAS), HPX facilitates flexible object migration and load balancing across distributed environments. Its parcel transport layer supports asynchronous communication and integrates with multiple communication interfaces, such as MPI and LCI. Furthermore, HPX offers interoperability with a wide range of accelerators and performance portability libraries, making it versatile for diverse high-performance computing needs. Finally, HPX resiliency APIs provide fault tolerance and error recovery, enhancing the reliability of distributed applications. Together, these features make HPX a powerful, portable tool for developing high-performance, scalable applications.
3. Statement on Alignment with High Performance Software Foundation's Mission
HPX is an open-source, meritocratic, and consensus-driven community project, and part of the Extreme-scale Scientific Software Stack (E4S). HPX is designed to address exascale computing challenges and provides comprehensive APIs for various programming models, making it suitable for a wide range of HPC applications, including AI/ML and scientific computing.
HPX integrates with widely used HPC tools and libraries, acting as a backend or interoperability layer. Its threading system supports performance portability frameworks like Kokkos and FleCSI, along with language and compiler solutions such as OpenMP, Chapel, and Halide. Additionally, HPX includes essential performance measurement, profiling, and analysis tools like APEX and Traveler, supporting the building, maintenance, and optimization of HPC software.
With backend support for libraries such as Blaze (math), BLIS (linear algebra), NWGraph (graph computing), Phylanx (distributed arrays), and DataFrame (statistical analysis), HPX is positioned to serve as the runtime system for the high-performance software ecosystem.
HPX is distributed via E4S and Spack package managers.
4. Project Website (please provide a link)
5. Open Source License (please provide a link)
SPDX Identifier:
BSL-1.0
LICENSE.txt
If the project also ships data artifacts, what Open Access licenses are used?
6. Code of Conduct (please provide a link)
Code of Conduct
7. Governance Practices (please provide a link)
Project Governance
8. Two Sponsors from the High Performance Software Foundation's Technical Advisory Committee
Damien Lebrun-Grandie and Sameer Shende
9. What is the project's solution for source control?
GitHub: https://github.com/stellar-group/hpx
10. What is the project's solution for issue tracking?
GitHub Issues: https://github.com/stellar-group/hpx/issues
11. Please list all external dependencies and their license
12. Please describe your release methodology and mechanics
the aim is to produce two releases per year: one in March-April and another in September-October. Details of the release process are documented in the link below:
https://hpx-docs.stellar-group.org/latest/html/contributing/release_procedure.html
13. Please describe Software Quality efforts (CI, security, auditing)
All development happens on feature branches and are presented to the development team as GitHub pull requests. Every pull request must pass the extensive set of contiguous integration steps that (on each commit) compile and run more than 1500 unit and regression tests that verify HPX’s functionalities. Pull requests that add new features are required to also add tests that verify the new functionalities. Pull requests that fix a particular problem are required to include a regression test that verifies the fix.
Every pull request must be reviewed and approved by at least one developer before being merged.
Contiguous integration pipelines are run on several platforms: GitHub actions, CircleCI, and on our own computing resources (using a Jenkins setup). Additionally, each commit triggers static analysis builders like address sanitizer builds, code coverage, Github CodeQL, Github PREfast, Codacy checks, spell checkers, our own inspect tool, clang-format verification, etc.
The CI builders run on a wide array of environments (Windows, Linux, MaxOS), utilizing different compilers and their versions (Clang, gcc, MSVC, nvcc, CUDA-clang, HIP-clang), and on different architectures (x86, ARM, RISC-V).
HPX follows OpenSSF best practices, and our security policy is available at Security Policy.
14. Please list the project's leadership team
15. Please list the project members with access to commit to the mainline of the project
16. Please describe the project's decision-making process
This is described in the Decision Making Process section of the governance model
17. What is the maturity level of your project?
We aim to join at the “Established” level.
18. Please list the project's official communication channels
https://hpx.stellar-group.org/contact/
19. Please list the project's social media accounts
N/A
20. Please describe any existing financial sponsorships
21. Please describe the project's infrastructure needs or requests
The text was updated successfully, but these errors were encountered: