HPX - High Performance ParalleX

PrevUpHomeNext
CMake Variables used to configure HPX
Variables that influence how HPX is being built
Additional Tools and Libraries used by HPX

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:

Generic Options

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.

Build Targets Options

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)

Thread Manager Options

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)

AGAS Options

HPX_AGAS_DUMP_REFCNT_ENTRIES:BOOL

Enable dumps of the AGAS refcnt tables to logs (default: OFF)

Parcelport Options

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.

Profiling Options

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.

Debugging Options

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.


PrevUpHomeNext