![]() |
At this time, HPX supports only the following platforms. Other platforms may work, but we do not test HPX with other platforms, so please be warned.
Table 3. Supported Platforms for HPX
Name |
Recommended Version |
Minimum Version |
Architectures |
---|---|---|---|
Linux |
3.2 |
2.6 |
x86-32, x86-64, k1om |
BlueGeneQ |
V1R2M0 |
V1R2M0 |
PowerPC A2 |
Windows |
7, Server 2008 R2 |
Any NT system |
x86-64 |
In the simplest case, HPX depends on one set of libraries: Boost. So, before you read further, please make sure you have a recent version of Boost installed on your target machine. HPX currently requires at least Boost V1.47.0 to work properly. It may build and run with older versions, but we do not test HPX with those versions, so please be warned.
Installing the Boost libraries is described in detail in Boost's own Getting Started document. It is often possible to download the Boost libraries using the package manager of your distribution. Please refer to the corresponding documentation for your system for more information.
The installation of Boost is described in detail in Boost's own Getting Started document. However, if you've never used the Boost libraries (or even if you have), here's a quick primer: Installing Boost Libraries.
In addition, we urge every user to have a recent version of hwloc installed on the target system in order to have proper support for thread pinning and NUMA awareness.
HPX is written in 99.99% Standard C++ (the remaining 0.01% is platform specific assembly code). As such HPX is compilable with almost any standards compliant C++ compiler. A compiler supporting the C++11 Standard is highly recommended. The code base takes advantage of C++11 language features when available (move semantics, rvalue references, magic statics, etc.). This may speed up the execution of your code significantly. We currently support GCC, MSVC, ICPC and clang. For the status of your favorite compiler with HPX visit HPX Buildbot Website.
Table 4. Software Prerequisites for HPX on Linux systems
Name |
Recommended Version |
Minimum Version |
|
---|---|---|---|
Compilers |
|||
4.6.3 or newer |
4.4.5 |
||
2013 |
2013 |
||
__clang__ |
3.3 or newer |
3.3 |
|
Build System |
|||
2.8.4 |
2.8.4 |
||
Required Libraries |
|||
1.51.0 or newer |
1.49.0 |
See below for an important limitation when using Boost V1.54.0. |
|
1.8 |
1.2 |
Used for OS-thread pinning and NUMA awareness. |
![]() |
Important |
---|---|
Because of a problem in Boost V1.54.0 this version can't be used for compiling HPX if you use gcc V4.6.x. Please use either an earlier or a later version of Boost with this compiler. |
Table 5. Software Prerequisites for HPX on Windows systems
Name |
Recommended Version |
Minimum Version |
|
---|---|---|---|
Compilers |
|||
Visual C++ (x64) |
2013 |
2012 |
|
Build System |
|||
2.8.4 |
2.8.4 |
||
Required Libraries |
|||
1.51.0 or newer |
1.49.0 |
||
1.8 |
1.5 |
Used for OS-thread pinning and NUMA awareness. |
![]() |
Note |
---|---|
You need to build the following Boost libraries for HPX: Boost.DateTime, Boost.Filesystem, Boost.ProgramOptions, Boost.Regex, Boost.Serialization, Boost.System, Boost.Thread, Boost.Chrono (starting Boost 1.49.0), and Boost.Atomic (starting Boost 1.53.0). It is important to note that MSVC2013 is unable to build Boost 1.55.0, a different boost version or compiler will be required. |
Depending on the options you chose while building and installing HPX, you will find that HPX may depend on several other libraries such as those listed below.
![]() |
Note |
---|---|
In order to use a high speed parcelport, we currently recommend to configure HPX to use MPI so that MPI can be used for communication between different localities. Please set the CMake Variable MPI_CXX_COMPILER to your MPI C++ Compiler wrapper if not detected automatically. |
Table 6. Highly Recommended Optional Software Prerequisites for HPX on Linux systems
Name |
Recommended Version |
Minimum Version |
Notes |
---|---|---|---|
1.7.1 |
1.7.1 |
Used as a replacement for the system allocator, and for allocation diagnostics. |
|
0.99 |
0.97 |
Dependency of google-perftools on x86-64, used for stack unwinding. |
Table 7. Optional Software Prerequisites for HPX on Linux systems
Name |
Recommended Version |
Minimum Version |
Notes |
---|---|---|---|
Used for accessing hardware performance data. |
|||
2.1.2 |
2.1.0 |
Used as a replacement for the system allocator. |
|
1.8.7 |
1.6.7 |
Used for data I/O in some example applications. See important note below. |
Table 8. Optional Software Prerequisites for HPX on Windows systems
Name |
Recommended Version |
Minimum Version |
Notes |
---|---|---|---|
1.8.7 |
1.6.7 |
Used for data I/O in some example applications. See important note below. |
![]() |
Important |
---|---|
The C++ HDF5 libraries must be compiled with enabled threadsafety support. This has to be explicitly specified while configuring the HDF5 libraries as it is not the default. Additionally, you must set the following environment variables before configuring the HDF5 libraries (this part only needs to be done on Linux): export CFLAGS='-DHDatexit=""' export CPPFLAGS='-DHDatexit=""' |