HPX - High Performance ParalleX


HPX specific CMake Variables

Here are listed the most frequently used CMake variables specific to HPX, along with a brief explanation.

Frequently used HPX specific CMake Variables


Build the HPX documentation if the documentation toolchain is available (default: OFF). For more information about how to set up the documentation tool chain please refer to the section Setting up the HPX Documentation Tool Chain.


HPX examples will be built (default: ON). To actually build the examples execute make examples.


HPX tests will be built (default: ON). To actually build the tests execute make tests.


Sets the debugging level for the HPX build system generation. Possible values are Error, Warn, Debug, and Info. The default is Warn.


Sets whether HPX should not support generating detailed logging output (default: OFF). Even if this is set to OFF (i.e. logging is supported) you need to enable logging when running any HPX application. Logging support introducied a minimal runtime overhead which usually can be ignored. This option allows to remove this runtime overhead but by doing so disables the capability to extract detailed runtime information in case of errors.


Sets whether HPX should use C++11 support, if available (default: ON).


Sets whether HPX applications should support capturing stack back- traces (default: ON).


Sets whether HPX should use the native compiler support for thread local storage, if available (default: ON).


Sets whether HPX threads should maintain detailed debugging information like the parent thread id, the phase execution count, the thread description, and the LCO description (while the thread is suspended). The default value for this variable is OFF if CMAKE_BUILD_TYPE=Release and ON otherwise.

Here is a list of options controlling the scheduling policies available for all applications built with HPX. For more information about the avalable scheduling policies see the section HPX Thread Scheduling Policies.

Enable HPX Scheduling Policies


Enable local scheduling policy (default: OFF)


Enable global scheduling policy (default: OFF)


Enable ABP scheduling policy (default: OFF)


Enable APB priority scheduling policy (default: OFF)


Enable hierarchy scheduling policy (default: OFF)


Enable periodic priority scheduling policy (default: OFF)

Here is a more complete list of CMake variables specific to HPX. These variables are used more seldom and are mainly useful for debugging purposes.

Other HPX specific CMake Variables


Sets whether HPX threads should capture the stack back-trace whenever they are about to be suspended (default: OFF).


Sets the depth of the stack back-traces captured during thread suspension (default: 5).


Sets whether HPX supports integration with the diagnostic tools of the Intel Parallel Studio (Intel Amplifier and Intel Inspector). The default value for this variable is OFF. Even if the variable is set to ON you must separately enable integration with the Intel tools at runtime. This option is available only if the include files and libraries for one of the Intel tools canbe located (see CMake variable AMPLIFIER below).


Sets whether the generated makefiles should allow to regenerate the partially preprocessed files that are part of HPX. The default value for this option is OFF. This option can be enabled only if the Boost Wave tool is available (see CMake variable BOOSTWAVE below).

Here is a list of additional libraries and tools which are either optionally supported by the build system or are optionally required for certain examples or tests. These libraries and tools can be detected by the HPX build system.

Each of the tools or libraries listed here will be automatically detected if they are installed in some standard location. If a tool or library is installed in a different location you can specify its base directory by appending _ROOT to the variable name as listed below. For instance, to configure a custom directory for BOOST, specify BOOST_ROOT=/custom/boost/root.

Additional Tools and Libraries used by __hpx__


Specifies where to look for the Boost installation to be used for compiling HPX. Set this if CMake is not able to locate a suitable version of Boost. The directory specified here can be either the root of a installed Boost distribution or the directory where you unpacked and built Boost without installing it (with staged libraries).


Specifies where to look for the Portable Hardware Locality (HWLOC) library. While it is not necessary to compile HPX with HWLOC, we strongly suggest you do so. HWLOC provides platform independent support for extracting information about the used hardware architecture (number of cores, number of NUMA domains, hyperthreading, etc.). HPX utilizes this information if available.


Specifies where to look for the Performance Application Programming Interface (PAPI) library. The PAPI library is need to compile a special component exposing PAPI hardware events and counters as HPX performance counters. This is not available on the Windows platform.


Specifies where to look for a built Boost Wave binary. Set this if you want to recreate the preprocessed header files used by HPX. Normally this will not be necessary, unless you modified the sources those preprocessed headers depend on.


Specifies where to look for one of the tools of the Intel Parallel Studio(tm) product, either Intel Amplifier(tm) or Intel Inspector(tm). This should be set if the CMake variable HPX_USE_ITT_NOTIFY is set to ON. Enabling ITT support in HPX will integrate any application with the mentioned Intel tools, which customizes the generated information for your application and improves the generated diagnostics.

Additional Tools and Libraries Required by some of the Examples


Specifies where to look for the Hierarchical Data Format V5 (HDF5) include files and libraries.


Specifies where to look for the MPI include files and libraries.


Specifies where to look for the MPI tool mpiexec.