DASH Runtime Configuration

Also see build configuration options

Runtime Variables

The following configuration settings can be specified

  • globally as environment variables, or
  • at runtime using dash::util::Config::set(key, value) where changes only have local effect.


// Enable trace records at master only:
if (dash::myid() == 0) {
  dash::util::Config::set("DASH_ENABLE_TRACE", true);
} else {
  dash::util::Config::set("DASH_ENABLE_TRACE", false);

Logging and Trace Events

Name Values Synopsis
DASH_ENABLE_LOGGING on | off Enables or disables log output at the unit.
DASH_ENABLE_TRACE on | off Enables or disables recording of trace events.
DASH_TRACE_LOG_PATH <dir path> File system path to the output directory of trace data.

Unit-Level Multithreading

Name Values Synopsis
DASH_ENABLE_THREADS on | off Enables or disables multithreading at the active unit.
DASH_ENABLE_MAX_SMT on | off If set, virtual SMT CPUs (hyperthreads) instead of hardware threads
are used to determine the number of available threads.
DASH_MAX_UNIT_THREADS <number> Sets the maximum number of threads for the active unit.

Hardware Specifications

Name Values Synopsis
DASH_MAX_SHMEM_BANDW <number> The maximum local shared memory bandwidth in bytes/s, e.g. 52.6G or
5812K. May differ between locality domains.

Read-only Configuration

Build configuration flags are defined as macros as well as read-only configuration settings to simplify runtime checks.


// Compile-time check:
   // ...

// Runtime check:
if (dash::util::Config::get<bool>("DASH_ENABLE_OPENMP")) {
  // ...
Name Values Synopsis
DASH_ENABLE_MPI_SHWIN <bool> Whether MPI shared window features are supported.
DASH_ENABLE_OPENMP <bool> Whether OpenMP is supported.
DASH_ENABLE_PAPI <bool> Whether internal DASH functions use the PAPI library.
DASH_ENABLE_HWLOC <bool> Whether internal DASH functions use OpenMPI hwloc.
DASH_ENABLE_NUMA <bool> Whether internal DASH functions use libnuma proviced by numactl.
DASH_ENABLE_MKL <bool> Whether DASH has been build with Intel MKL support.