![]() |
In order to configure HPX, you can set a variety of options to allow cmake to generate your specific makefiles/project files.
The options are split into these categories:
HPX_AUTOMATIC_PREPROCESSING:BOOL
No help, variable specified on the command line.
HPX_AUTOMATIC_SERIALIZATION_REGISTRATION:BOOL
Use automatic serialization registration for actions and functions. This affects compatibility between HPX applications compiled with different compilers (default ON)
HPX_COMPILER_WARNINGS:BOOL
Enable compiler warnings (default: ON)
HPX_FULL_RPATH:BOOL
Build and link HPX libraries and executables with full RPATHs (default: ON)
HPX_GCC_VERSION_CHECK:BOOL
Ignore version reported by gcc (default: ON)
HPX_HIDDEN_VISIBILITY:BOOL
Use -fvisibility=hidden for builds on platforms which support it (default ON)
HPX_MALLOC:STRING
Define which allocator should be linked in. Options are: system, tcmalloc, jemalloc and tbbmalloc (default is: tcmalloc)
HPX_NATIVE_TLS:BOOL
Use native TLS support if available (default: ON)
HPX_PREPROCESSOR_LIMIT_EXPANSION:BOOL
Do not use preprocessed headers (default: OFF)
HPX_STATIC_LINKING:BOOL
Compile HPX staticly linked libraries (Default: OFF)
HPX_UNIQUE_FUTURE_ALIAS:BOOL
HPX will defined unique_future<R> as a template alias to future<R>. (default OFF).
HPX_UTIL_FUNCTION:BOOL
Use hpx::util::function instead of boost::function or std::function (default: ON)
HPX_UTIL_TUPLE:BOOL
Use hpx::util::tuple instead of boost::tuple or std::tuple (default: ON)
HPX_WAVE_ADDITIONAL_INCLUDE_DIRS:STRING
Additional (compiler specific) include directories for the wave preprocessing tool.
HPX_WITH_COMPRESSION_BZIP2:BOOL
Enable bzip2 compression for parcel data (default: OFF).
HPX_WITH_COMPRESSION_SNAPPY:BOOL
Enable snappy compression for parcel data (default: OFF).
HPX_WITH_COMPRESSION_ZLIB:BOOL
Enable zlib compression for parcel data (default: OFF).
HPX_WITH_HWLOC:BOOL
Use Hwloc for hardware topolgy information and thread pinning. If disabled, performance might be reduced.
HPX_WITH_LOGGING:BOOL
Build HPX with logging enabled (default: ON).
HPX_WITH_SECURITY:BOOL
Enable security support via libsodium.
HPX_BUILD_DEFAULT_TARGETS:BOOL
Associate the core HPX library with the default build target (default: ON).
HPX_BUILD_DOCUMENTATION:BOOL
No help, variable specified on the command line.
HPX_BUILD_DOCUMENTATION_SINGLEPAGE:BOOL
No help, variable specified on the command line.
HPX_BUILD_EXAMPLES:BOOL
Build the HPX examples (default OFF)
HPX_BUILD_RUNTIME:BOOL
Build HPX runtime (default: ON)
HPX_BUILD_TESTS:BOOL
Build the HPX tests (default ON)
HPX_BUILD_TESTS_BENCHMARKS:BOOL
Build HPX benchmark tests (default: ON)
HPX_BUILD_TESTS_REGRESSIONS:BOOL
Build HPX regression tests (default: ON)
HPX_BUILD_TESTS_UNIT:BOOL
Build HPX unit tests (default: ON)
HPX_BUILD_TOOLS:BOOL
Build HPX tools (default: OFF)
HPX_MAX_CPU_COUNT:STRING
HPX applications will not use more that this number of OS-Threads (default: 64)
HPX_SWAP_CONTEXT_EMULATION:BOOL
Emulate SwapContext API for coroutines (default: OFF)
HPX_THREAD_BACKTRACE_ON_SUSPENSION_DEPTH:STRING
Thread stack back trace depth being captured on suspension (default: 5)
HPX_THREAD_MAINTAIN_BACKTRACE_ON_SUSPENSION:BOOL
Enable thread stack back trace being captured on suspension (default: OFF)
HPX_THREAD_MAINTAIN_CREATION_AND_CLEANUP_RATES:BOOL
Enable measuring thread creation and cleanup times (default: OFF)
HPX_THREAD_MAINTAIN_CUMULATIVE_COUNTS:BOOL
Enable keeping track of cumulative thread counts in the schedulers (default: ON)
HPX_THREAD_MAINTAIN_FULLBACKTRACE_ON_SUSPENSION:BOOL
Enable thread stack back trace being captured on suspension (default: OFF)
HPX_THREAD_MAINTAIN_IDLE_RATES:BOOL
Enable measuring the percentage of overhead times spent in the scheduler (default: OFF)
HPX_THREAD_MAINTAIN_LOCAL_STORAGE:BOOL
Enable thread local storage for all HPX threads (default: ON)
HPX_THREAD_MAINTAIN_QUEUE_WAITTIME:BOOL
Enable collecting queue wait times for threads (default: OFF)
HPX_THREAD_MAINTAIN_STEALING_COUNTS:BOOL
Enable keeping track of counts of thread stealing incidents in the schedulers (default: ON)
HPX_THREAD_MAINTAIN_TARGET_ADDRESS:BOOL
Enable storing target address in thread for NUMA awareness (default: OFF)
HPX_THREAD_MANAGER_IDLE_BACKOFF:BOOL
Use mmap for stack allocation on appropriate platforms (default: OFF)
HPX_THREAD_SCHEDULERS:STRING
Which thread schedulers are build. Options are: all, local, static-priority, hierarchy, and periodic-priority. For multiple enabled schedulers, separate with a semicolon (default: all)
HPX_THREAD_STACK_MMAP:BOOL
Use mmap for stack allocation on appropriate platforms
HPX_WITH_STACKTRACES:BOOL
Attach backtraces to HPX exceptions (default: ON)
HPX_PARCELPORT_IBVERBS:BOOL
Enable the ibverbs based parcelport. This is currently an experimental feature
HPX_PARCELPORT_IBVERBS_IFNAME:STRING
The interface name of the ibverbs capable network adapter (default: ib0)
HPX_PARCELPORT_IBVERBS_MAX_MEMORY_CHUNKS:STRING
Maximum number of chunks that can be allocated (default: 100)
HPX_PARCELPORT_IBVERBS_MEMORY_CHUNK_SIZE:STRING
Number of bytes a chunk in the memory pool can hold (default: 64MB)
HPX_PARCELPORT_IBVERBS_MESSAGE_PAYLOAD:STRING
Size of the message payload not sent with RDMA (default: 512 byte)
HPX_PARCELPORT_IPC:BOOL
Enable the IPC (inter process communication) based parcelport. This is currently an experimental feature
HPX_PARCELPORT_MPI:BOOL
No help, variable specified on the command line.
HPX_PARCELPORT_MPI_ENV:STRING
List of environment variables checked to detect MPI (default: PMI_RANK;OMPI_COMM_WORLD_SIZE).
HPX_PARCELPORT_TCP:BOOL
Enable the TCP based parcelport.
HPX_WITH_APEX:BOOL
Enable APEX instrumentation support.
HPX_WITH_GOOGLE_PERFTOOLS:BOOL
Enable Google Perftools instrumentation support.
HPX_WITH_ITTNOTIFY:BOOL
Enable Amplifier (ITT) instrumentation support.
HPX_WITH_PAPI:BOOL
No help, variable specified on the command line.
HPX_WITH_TAU:BOOL
Enable TAU profiling support.
HPX_THREAD_DEBUG_INFO:BOOL
Enable thread debugging information (default: OFF, implicitly enabled in debug builds)
HPX_THREAD_GUARD_PAGE:BOOL
Enable thread guard page (default: ON)
HPX_VERIFY_LOCKS:BOOL
Enable lock verification code (default: OFF, implicitly enabled in debug builds)
HPX_VERIFY_LOCKS_BACKTRACE:BOOL
Enable thred stack back trace being captured on lock registration (to be used in combination with HPX_VERIFY_LOCKS=ON, default: OFF)
HPX_VERIFY_LOCKS_GLOBALLY:BOOL
Enable global lock verification code (default: OFF, implicitly enabled in debug builds)
HPX_WITH_VALGRIND:BOOL
Enable Valgrind instrumentation support.
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
BOOST_ROOT:PATH
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).
HWLOC_ROOT:PATH
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.
PAPI_ROOT:PATH
Specifies where to look for the Networking and Cryptography library (NaCl) library. The PAPI library is necessary to compile a special component exposing PAPI hardware events and counters as HPX performance counters. This is not available on the Windows platform.
BOOSTWAVE_ROOT:PATH
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.
AMPLIFIER_ROOT:PATH
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.
SODIUM_ROOT:PATH
Specifies where to look for the Performance
Application Programming Interface (PAPI) library. The
Sodium library is necessary to enable the security related functionality
(see HPX_HAVE_SECURITY
).
Additional Tools and Libraries Required by some of the Examples
HDF5_ROOT:PATH
Specifies where to look for the Hierarchical Data Format V5 (HDF5) include files and libraries.