HPX - High Performance ParalleX

PrevUpHomeNext

Prerequisites

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

Windows

7, Server 2008 R2

Any NT system

x86-64

Linux

3.2

2.6

x86-32, 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.

Currently, HPX only supports two compilers: GCC and MSVC. HPX uses CMake as a build system.

Table 4. Software Prerequisites for HPX on Linux systems

Name

Recommended Version

Minimum Version

Compilers

   

GNU Compiler Collection (g++)

4.6.3

4.4.5

Build System

   

CMake

2.8.4

2.8.4

GNU Make (gmake)

3.81

3.80

Required Libraries

   

Boost C++ Libraries

1.48.0

1.47.0

Embedded GLIBC (EGLIBC) (Debian, Ubuntu)

2.11

2.7

GNU C Library (GLIBC) (Redhat)

2.11

2.7

GNU Standard C++ Library

4.6.3

4.4.5


Table 5. Software Prerequisites for HPX on Windows systems

Name

Recommended Version

Minimum Version

Compilers

   

Visual C++ (x64)

2010

2010

Build System

   

CMake

2.8.4

2.8.4

Required Libraries

   

Boost

1.48.0

1.43.0


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.

Table 6. Highly Recommended Optional Software Prerequisites for HPX on Linux systems

Name

Recommended Version

Minimum Version

Notes

Portable Hardware Locality (HWLOC)

1.4

1.2

Used for OS-thread pinning and NUMA awareness.

Hierarchical Data Format V5 (HDF5) Libraries

1.8.7

1.6.7

Used for data I/O in the gravity, sheneos, neutron_star, interpolate1d and interpolate3d applications. See important note below.

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

Performance Application Programming Interface

Used for accessing hardware performance data.

Linear Algebra PACKage (LAPACK)

Used in the neutron_star application.

Basic Linear Algebra Subroutines 3 (BLAS)

Used in the neutron_star application.

GNU Scientific Library (GSL)

Used in the neutron_star application.

LORENE

Used in the neutron_star application.

RNPL

1.11

1.11

Used for data I/O in the adaptive1d and neutron_star applications.

jemalloc

2.1.2

2.1.0

Used as a replacement for the system allocator.


Table 8. Highly Recommended Optional Software Prerequisites for HPX on Windows systems

Name

Recommended Version

Minimum Version

Notes

Portable Hardware Locality (HWLOC)

1.4.2

1.4.2

Used for OS-thread pinning and NUMA awareness.

Hierarchical Data Format V5 (HDF5) Libraries

1.8.7

1.6.7

Used for data I/O in the gravity, sheneos, neutron_star, interpolate1d and interpolate3d 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