HPX - High Performance ParalleX

PrevUpHomeNext

Build Prerequisites

Installing Boost Libraries
Supported Platforms

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


Software and Libraries

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

     

GNU Compiler Collection (g++)

4.6.3 or newer

4.4.5

 

Intel Composer XE Suites

2013

2013

 

__clang__

3.3 or newer

3.3

 

Build System

     

CMake

2.8.4

2.8.4

 

Required Libraries

     

Boost C++ Libraries

1.51.0 or newer

1.49.0

See below for an important limitation when using Boost V1.54.0.

Portable Hardware Locality (HWLOC)

1.8

1.2

Used for OS-thread pinning and NUMA awareness.


[Important] 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

     

CMake

2.8.4

2.8.4

 

Required Libraries

     

Boost

1.51.0 or newer

1.49.0

 

Portable Hardware Locality (HWLOC)

1.8

1.5

Used for OS-thread pinning and NUMA awareness.


[Note] 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] 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

google-perftools

1.7.1

1.7.1

Used as a replacement for the system allocator, and for allocation diagnostics.

libunwind

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

Networking and Cryptography library (NaCl)

Used for accessing hardware performance data.

jemalloc

2.1.2

2.1.0

Used as a replacement for the system allocator.

Hierarchical Data Format V5 (HDF5)

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

Hierarchical Data Format V5 (HDF5)

1.8.7

1.6.7

Used for data I/O in some example applications. See important note below.


[Important] 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=""'

PrevUpHomeNext