HPX - High Performance ParalleX




The development of High Performance ParalleX (HPX) started back in 2007. At that point, Hartmut Kaiser became interested in the work done by the ParalleX group at the Center for Computation and Technology (CCT), a multi-disciplinary research institute at Louisiana State University (LSU). The ParalleX group was developing a new and experimental execution model for future high performance computing architectures called ParalleX. The first implementations were crude at best, and we had to dismiss those designs entirely. However, over time we learned quite a bit about how to design a parallel distributed runtime system which implements the ideas of ParalleX.

Our goal is to create a high quality, freely available, open source implementation of the ParalleX model for conventional systems, such as classic 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 runtime system architecture which would allow us to port our implementation onto new computer system architectures. We want to use real world applications to drive the development of the runtime system, coining out required functionalities and converging onto an stable API which will provide a smooth migration path for developers. The API exposed by HPX is modelled after the interfaces defined by the C++11 ISO standard and adheres to the programming guidelines used by the Boost collection of C++ libraries.

From the very beginning, this endeavour has been a group effort. In addition to a handful of interested researchers, there have always been graduate and undergraduate students participating in the discussions, design, and implementation of HPX. In 2011 we decided to formalize our collective research efforts by creating the STE||AR group. STE||AR stands for Systems Technology, Emergent Parallelism, and Algorithm Research, which describes the three main focal points we center our work around.

To learn more about STE||AR and ParalleX, see People and Introduction.

How to use this manual

Some icons are used to mark certain topics indicative of their relevance. These icons precede some text to indicate:

Table 1. Icons





Generally useful information (an aside that doesn't fit in the flow of the text)


Suggestion on how to do something (especially something that is not obvious)


Important note on something to take particular notice of


Take special care with this - it may not be what you expect and may cause bad results

The following table describes the syntax that will be used to refer to functions and classes throughout the manual:

Table 2. Syntax for Code References




The function foo


The template function foo (used only for template functions that require explicit parameters)


The class foo


The class template foo


Please feel free to direct questions to HPX's mailing list: hpx-users@stellar.cct.lsu.edu or log onto our IRC channel which can be found at #ste||ar at Freenode.