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:
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
HPX tests will be built (default:
ON). To actually build the tests
Sets the debugging level for the HPX build system
generation. Possible values are
The default is
Sets whether HPX should not support generating
detailed logging output (default:
Even if this is set to
(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
Sets whether HPX applications should support
capturing stack back- traces (default:
Sets whether HPX should use the native compiler
support for thread local storage, if available (default:
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
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:
Enable global scheduling policy (default:
Enable ABP scheduling policy (default:
Enable APB priority scheduling policy (default:
Enable hierarchy scheduling policy (default:
Enable periodic priority scheduling policy (default:
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:
Sets the depth of the stack back-traces captured during thread suspension
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
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
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
This option can be enabled only if the Boost
Wave tool is available (see CMake variable
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
_ROOT to the
variable name as listed below. For instance, to configure a custom directory
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
is set to
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