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.

Features

  • 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 uGNI, IB verbs, or 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 4.0 is also released along with several applications: LULESH, Wavelet AMR, HPCG, CoMD and the ParalleX Graph Library.