High Performance ParalleX (HPX-5)
HPX-5 (High Performance ParalleX) is an open source, portable, performance-oriented runtime developed at CREST (Indiana University). HPX-5 provides a distributed programming model allowing programs to run unmodified on systems from a single SMP to large clusters and supercomputers with thousands of nodes.
HPX-5 supports a wide variety of Intel and ARM platforms. It is being used by a broad range of scientific applications enabling scientists to write code that performs and scales better than contemporary runtimes.
- Fine grained execution through blockable lightweight threads and unified access to a global address space.
- High-performance PGAS implementation which supports low-level one-sided operations and two-sided active messages with continuations, and an experimental AGAS option with active load balancing that allows the binding of global to physical addresses to vary dynamically.
- Makes concurrency manageable with globally allocated lightweight control objects (LCOs) based synchronization (futures, gates, reductions, dataflow) allowing thread execution or parcel instantiation to wait for events without execution resource consumption.
- Higher level abstractions including asynchronous remote-procedure-call options, data parallel loop constructs, and system abstractions like timers.
- Implementation of ParalleX processes providing programmers with termination detection and per-process collectives.
- Photon networking library synthesizing RDMA-with-remote-completion directly on top of
libfabric. For portability and legacy support, HPX-5 emulates RDMA-with-remote-completion using MPI point-to-point messaging.
- Programmer services including C++ bindings and collectives (prototype non-blocking network collectives for hierarchical process collective operation).
- Leverages distributed GPU and co-processors (Intel Xeon Phi) through experimental OpenCL support.
- PAPI support for profiling.
- Integration with APEX policy engine (Autonomic Performance Environment for eXascale) support for runtime adaption, RCR and LXK OS.
- Migration of legacy applications through easy interoperability and co-existence with traditional runtimes like MPI. HPX-5 3.0 is also released along with several applications: LULESH, Wavelet AMR, HPCG, CoMD and the ParalleX Graph Library.