-
-
Notifications
You must be signed in to change notification settings - Fork 434
HPX Messaging Document
HPX is a parallel runtime system which builds upon the C++11/14 standard to facilitate distributed operations, enable fine-grained constraint based parallelism, and support runtime adaptive resource management. This library enables application developers to write massively parallel, highly scalable codes using a modern multi-paradigm API. HPX portably supports heterogeneous runs on conventional and future architectures such as x86, Blue Gene, Xeon Phi, ARM, and Epiphany.
HPX is fully compliant with the C++11/14 Standards and therefore inherits an API which is widely accepted and enables programmability, composability, and performance portability of user applications. The language extensions which are introduced aim to seamlessly augment the standard to apply to a distributed case. In this way, programmers who are familiar with the C++ standard can easily read and write HPX code.
HPX is based on the theoretical foundation laid by the ParalleX execution model. This model addresses the four factors that limit application scalability: Starvation, not having enough work to keep the entire machine busy; Latencies, the time it takes to send messages from one compute region to another; Overheads, the cost of creating the environment for an application; and Waiting for contention resolution, time spent waiting for access to an oversubscribed resource. In order to overcome these obstacles, this execution model outlines six design principles: latency hiding instead of latency avoidance, fine-grained parallelism instead of heavyweight threads, constraint based synchronization instead of global barriers, adaptive locality control instead of static data distribution, work-follows-data instead of data-follows-work, and message driven computation instead of message passing. With this combination, HPX code is able to mitigate the obstacles posed to more conventional paradigms which prevent modern day applications from scaling.
- HPX Resource Guide
- HPX Source Code Structure and Coding Standards
- Improvement of the HPX core runtime
- How to Get Involved in Developing HPX
- How to Report Bugs in HPX
- Known issues in HPX V1.0.0
- HPX continuous integration build configurations
- How to run HPX on various Cluster environments
- Google Summer of Code
- Google Season of Documentation
- Documentation Projects
- Planning and coordination