![]() |
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:BOOLNo help, variable specified on the command line.
HPX_AUTOMATIC_SERIALIZATION_REGISTRATION:BOOLUse automatic serialization registration for actions and functions. This affects compatibility between HPX applications compiled with different compilers (default ON)
HPX_COMPILER_WARNINGS:BOOLEnable compiler warnings (default: ON)
HPX_FULL_RPATH:BOOLBuild and link HPX libraries and executables with full RPATHs (default: ON)
HPX_GCC_VERSION_CHECK:BOOLIgnore version reported by gcc (default: ON)
HPX_HIDDEN_VISIBILITY:BOOLUse -fvisibility=hidden for builds on platforms which support it (default ON)
HPX_MALLOC:STRINGDefine which allocator should be linked in. Options are: system, tcmalloc, jemalloc and tbbmalloc (default is: tcmalloc)
HPX_NATIVE_TLS:BOOLUse native TLS support if available (default: ON)
HPX_PREPROCESSOR_LIMIT_EXPANSION:BOOLDo not use preprocessed headers (default: OFF)
HPX_STATIC_LINKING:BOOLCompile HPX staticly linked libraries (Default: OFF)
HPX_UNIQUE_FUTURE_ALIAS:BOOLHPX will defined unique_future<R> as a template alias to future<R>. (default OFF).
HPX_UTIL_FUNCTION:BOOLUse hpx::util::function instead of boost::function or std::function (default: ON)
HPX_UTIL_TUPLE:BOOLUse hpx::util::tuple instead of boost::tuple or std::tuple (default: ON)
HPX_WAVE_ADDITIONAL_INCLUDE_DIRS:STRINGAdditional (compiler specific) include directories for the wave preprocessing tool.
HPX_WITH_COMPRESSION_BZIP2:BOOLEnable bzip2 compression for parcel data (default: OFF).
HPX_WITH_COMPRESSION_SNAPPY:BOOLEnable snappy compression for parcel data (default: OFF).
HPX_WITH_COMPRESSION_ZLIB:BOOLEnable zlib compression for parcel data (default: OFF).
HPX_WITH_HWLOC:BOOLUse Hwloc for hardware topolgy information and thread pinning. If disabled, performance might be reduced.
HPX_WITH_LOGGING:BOOLBuild HPX with logging enabled (default: ON).
HPX_WITH_SECURITY:BOOLEnable security support via libsodium.
HPX_BUILD_DEFAULT_TARGETS:BOOLAssociate the core HPX library with the default build target (default: ON).
HPX_BUILD_DOCUMENTATION:BOOLNo help, variable specified on the command line.
HPX_BUILD_DOCUMENTATION_SINGLEPAGE:BOOLNo help, variable specified on the command line.
HPX_BUILD_EXAMPLES:BOOLBuild the HPX examples (default OFF)
HPX_BUILD_RUNTIME:BOOLBuild HPX runtime (default: ON)
HPX_BUILD_TESTS:BOOLBuild the HPX tests (default ON)
HPX_BUILD_TESTS_BENCHMARKS:BOOLBuild HPX benchmark tests (default: ON)
HPX_BUILD_TESTS_REGRESSIONS:BOOLBuild HPX regression tests (default: ON)
HPX_BUILD_TESTS_UNIT:BOOLBuild HPX unit tests (default: ON)
HPX_BUILD_TOOLS:BOOLBuild HPX tools (default: OFF)
HPX_MAX_CPU_COUNT:STRINGHPX applications will not use more that this number of OS-Threads (default: 64)
HPX_SWAP_CONTEXT_EMULATION:BOOLEmulate SwapContext API for coroutines (default: OFF)
HPX_THREAD_BACKTRACE_ON_SUSPENSION_DEPTH:STRINGThread stack back trace depth being captured on suspension (default: 5)
HPX_THREAD_MAINTAIN_BACKTRACE_ON_SUSPENSION:BOOLEnable thread stack back trace being captured on suspension (default: OFF)
HPX_THREAD_MAINTAIN_CREATION_AND_CLEANUP_RATES:BOOLEnable measuring thread creation and cleanup times (default: OFF)
HPX_THREAD_MAINTAIN_CUMULATIVE_COUNTS:BOOLEnable keeping track of cumulative thread counts in the schedulers (default: ON)
HPX_THREAD_MAINTAIN_FULLBACKTRACE_ON_SUSPENSION:BOOLEnable thread stack back trace being captured on suspension (default: OFF)
HPX_THREAD_MAINTAIN_IDLE_RATES:BOOLEnable measuring the percentage of overhead times spent in the scheduler (default: OFF)
HPX_THREAD_MAINTAIN_LOCAL_STORAGE:BOOLEnable thread local storage for all HPX threads (default: ON)
HPX_THREAD_MAINTAIN_QUEUE_WAITTIME:BOOLEnable collecting queue wait times for threads (default: OFF)
HPX_THREAD_MAINTAIN_STEALING_COUNTS:BOOLEnable keeping track of counts of thread stealing incidents in the schedulers (default: ON)
HPX_THREAD_MAINTAIN_TARGET_ADDRESS:BOOLEnable storing target address in thread for NUMA awareness (default: OFF)
HPX_THREAD_MANAGER_IDLE_BACKOFF:BOOLUse mmap for stack allocation on appropriate platforms (default: OFF)
HPX_THREAD_SCHEDULERS:STRINGWhich 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:BOOLUse mmap for stack allocation on appropriate platforms
HPX_WITH_STACKTRACES:BOOLAttach backtraces to HPX exceptions (default: ON)
HPX_PARCELPORT_IBVERBS:BOOLEnable the ibverbs based parcelport. This is currently an experimental feature
HPX_PARCELPORT_IBVERBS_IFNAME:STRINGThe interface name of the ibverbs capable network adapter (default: ib0)
HPX_PARCELPORT_IBVERBS_MAX_MEMORY_CHUNKS:STRINGMaximum number of chunks that can be allocated (default: 100)
HPX_PARCELPORT_IBVERBS_MEMORY_CHUNK_SIZE:STRINGNumber of bytes a chunk in the memory pool can hold (default: 64MB)
HPX_PARCELPORT_IBVERBS_MESSAGE_PAYLOAD:STRINGSize of the message payload not sent with RDMA (default: 512 byte)
HPX_PARCELPORT_IPC:BOOLEnable the IPC (inter process communication) based parcelport. This is currently an experimental feature
HPX_PARCELPORT_MPI:BOOLNo help, variable specified on the command line.
HPX_PARCELPORT_MPI_ENV:STRINGList of environment variables checked to detect MPI (default: PMI_RANK;OMPI_COMM_WORLD_SIZE).
HPX_PARCELPORT_TCP:BOOLEnable the TCP based parcelport.
HPX_WITH_APEX:BOOLEnable APEX instrumentation support.
HPX_WITH_GOOGLE_PERFTOOLS:BOOLEnable Google Perftools instrumentation support.
HPX_WITH_ITTNOTIFY:BOOLEnable Amplifier (ITT) instrumentation support.
HPX_WITH_PAPI:BOOLNo help, variable specified on the command line.
HPX_WITH_TAU:BOOLEnable TAU profiling support.
HPX_THREAD_DEBUG_INFO:BOOLEnable thread debugging information (default: OFF, implicitly enabled in debug builds)
HPX_THREAD_GUARD_PAGE:BOOLEnable thread guard page (default: ON)
HPX_VERIFY_LOCKS:BOOLEnable lock verification code (default: OFF, implicitly enabled in debug builds)
HPX_VERIFY_LOCKS_BACKTRACE:BOOLEnable 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:BOOLEnable global lock verification code (default: OFF, implicitly enabled in debug builds)
HPX_WITH_VALGRIND:BOOLEnable 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:PATHSpecifies 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:PATHSpecifies 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:PATHSpecifies 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:PATHSpecifies 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:PATHSpecifies where to look for the Hierarchical Data Format V5 (HDF5) include files and libraries.