# config¶

## #include <hpx/config.hpp>¶

Defines

HPX_INITIAL_IP_PORT

This is the default ip/port number used by the parcel subsystem.

HPX_CONNECTING_IP_PORT
HPX_INITIAL_IP_ADDRESS
HPX_RUNTIME_INSTANCE_LIMIT

This defines the maximum number of possible runtime instances in one executable

HPX_PARCEL_BOOTSTRAP

This defines the type of the parcelport to be used during application bootstrap. This value can be changed at runtime by the configuration parameter:

hpx.parcel.bootstrap = …

(or by setting the corresponding environment variable HPX_PARCEL_BOOTSTRAP).

HPX_PARCEL_MAX_CONNECTIONS

This defines the number of outgoing (parcel-) connections kept alive (to all other localities). This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.max_connections = …

(or by setting the corresponding environment variable HPX_PARCEL_MAX_CONNECTIONS).

HPX_PARCEL_IPC_DATA_BUFFER_CACHE_SIZE

This defines the number of outgoing ipc (parcel-) connections kept alive (to each of the other localities on the same node). This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.ipc.data_buffer_cache_size = …

(or by setting the corresponding environment variable HPX_PARCEL_IPC_DATA_BUFFER_CACHE_SIZE).

HPX_PARCEL_MPI_MAX_REQUESTS

This defines the number of MPI requests in flight This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.mpi.max_requests = …

(or by setting the corresponding environment variable HPX_PARCEL_MPI_MAX_REQUESTS).

HPX_PARCEL_MAX_CONNECTIONS_PER_LOCALITY

This defines the number of outgoing (parcel-) connections kept alive (to each of the other localities). This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.max_connections_per_locality = …

(or by setting the corresponding environment variable HPX_PARCEL_MAX_CONNECTIONS_PER_LOCALITY).

HPX_PARCEL_MAX_MESSAGE_SIZE

This defines the maximally allowed message size for messages transferred between localities. This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.max_message_size = …

(or by setting the corresponding environment variable HPX_PARCEL_MAX_MESSAGE_SIZE).

HPX_PARCEL_MAX_OUTBOUND_MESSAGE_SIZE

This defines the maximally allowed outbound message size for coalescing messages transferred between localities. This value can be changed at runtime by setting the configuration parameter:

hpx.parcel.max_outbound_message_size = …

(or by setting the corresponding environment variable HPX_PARCEL_MAX_OUTBOUND_MESSAGE_SIZE).

HPX_PARCEL_SERIALIZATION_OVERHEAD
HPX_AGAS_LOCAL_CACHE_SIZE

This defines the number of AGAS address translations kept in the local cache. This is just the initial size which may be adjusted depending on the load of the system (not implemented yet), etc. It must be a minimum of 3 for AGAS v3 bootstrapping.

This value can be changes at runtime by setting the configuration parameter:

hpx.agas.local_cache_size = …

(or by setting the corresponding environment variable HPX_AGAS_LOCAL_CACHE_SIZE)

HPX_INITIAL_AGAS_MAX_PENDING_REFCNT_REQUESTS
HPX_GLOBALCREDIT_INITIAL

This defines the initial global reference count associated with any created object.

HPX_NUM_IO_POOL_SIZE

This defines the default number of OS-threads created for the different internal thread pools

HPX_NUM_PARCEL_POOL_SIZE
HPX_NUM_TIMER_POOL_SIZE
HPX_SPINLOCK_DEADLOCK_DETECTION_LIMIT

HPX_COROUTINE_NUM_HEAPS

This defines the default number of coroutine heaps.

HPX_HAVE_THREAD_BACKTRACE_DEPTH

By default, enable storing the thread phase in debug builds only.

By default, enable storing the parent thread information in debug builds only.By default, enable storing the thread description in debug builds only. By default, enable storing the target address of the data the thread is accessing in debug builds only. By default we do not maintain stack back-traces on suspension. This is a pure debugging aid to be able to see in the debugger where a suspended thread got stuck. By default we capture only 5 levels of stack back trace on suspension

HPX_MAX_NETWORK_RETRIES
HPX_NETWORK_RETRIES_SLEEP
HPX_INI_PATH_DELIMITER
HPX_PATH_DELIMITERS
HPX_SHARED_LIB_EXTENSION
HPX_EXECUTABLE_EXTENSION
HPX_MAKE_DLL_STRING(n)
HPX_MANGLE_NAME(n)
HPX_MANGLE_STRING(n)
HPX_COMPONENT_NAME
HPX_COMPONENT_STRING
HPX_PLUGIN_COMPONENT_PREFIX
HPX_PLUGIN_NAME
HPX_PLUGIN_STRING
HPX_PLUGIN_PLUGIN_PREFIX
HPX_APPLICATION_STRING
HPX_IDLE_LOOP_COUNT_MAX
HPX_BUSY_LOOP_COUNT_MAX
HPX_THREAD_QUEUE_MAX_THREAD_COUNT
HPX_THREAD_QUEUE_MIN_TASKS_TO_STEAL_PENDING
HPX_THREAD_QUEUE_MIN_TASKS_TO_STEAL_STAGED
HPX_THREAD_QUEUE_MIN_ADD_NEW_COUNT
HPX_THREAD_QUEUE_MAX_ADD_NEW_COUNT
HPX_THREAD_QUEUE_MIN_DELETE_COUNT
HPX_THREAD_QUEUE_MAX_DELETE_COUNT
HPX_THREAD_QUEUE_MAX_TERMINATED_THREADS
HPX_IDLE_BACKOFF_TIME_MAX
HPX_WRAPPER_HEAP_STEP
HPX_INITIAL_GID_RANGE
HPX_CONTINUATION_MAX_RECURSION_DEPTH
HPX_AGAS_BOOTSTRAP_PREFIX
HPX_AGAS_NS_MSB
HPX_AGAS_PRIMARY_NS_MSB
HPX_AGAS_PRIMARY_NS_LSB
HPX_AGAS_COMPONENT_NS_MSB
HPX_AGAS_COMPONENT_NS_LSB
HPX_AGAS_SYMBOL_NS_MSB
HPX_AGAS_SYMBOL_NS_LSB
HPX_AGAS_LOCALITY_NS_MSB
HPX_AGAS_LOCALITY_NS_LSB

## #include <hpx/config/attributes.hpp>¶

Defines

HPX_NOINLINE

Function attribute to tell compiler not to inline the function.

HPX_NORETURN

Function attribute to tell compiler that the function does not return.

HPX_DEPRECATED(x)

Marks an entity as deprecated. The argument x specifies a custom message that is included in the compiler warning. For more details see <>__.

HPX_FALLTHROUGH

Indicates that the fall through from the previous case label is intentional and should not be diagnosed by a compiler that warns on fallthrough. For more details see <>__.

## #include <hpx/config/force_linking.hpp>¶

namespace hpx
namespace config

Functions

force_linking_helper &force_linking()
struct force_linking_helper

Public Members

const char *const hpx_version
const char *const boost_version

## #include <hpx/config/compiler_native_tls.hpp>¶

Defines

HPX_NATIVE_TLS

This macro is replaced with the compiler specific keyword attribute to mark a variable as thread local. For more details see <__.

This macro is deprecated. It is always replaced with the thread_local keyword. Prefer using thread_local directly instead.

## #include <hpx/config/compiler_specific.hpp>¶

Defines

HPX_GCC_VERSION

Returns the GCC version HPX is compiled with. Only set if compiled with GCC.

HPX_CLANG_VERSION

Returns the Clang version HPX is compiled with. Only set if compiled with Clang.

HPX_INTEL_VERSION

Returns the Intel Compiler version HPX is compiled with. Only set if compiled with the Intel Compiler.

HPX_MSVC

This macro is set if the compilation is with MSVC.

HPX_MINGW

This macro is set if the compilation is with Mingw.

HPX_WINDOWS

This macro is set if the compilation is for Windows.

HPX_NATIVE_MIC

This macro is set if the compilation is for Intel Knights Landing.

## #include <hpx/config/threads_stack.hpp>¶

Defines

HPX_THREADS_STACK_OVERHEAD
HPX_SMALL_STACK_SIZE
HPX_MEDIUM_STACK_SIZE
HPX_LARGE_STACK_SIZE
HPX_HUGE_STACK_SIZE

## #include <hpx/config/debug.hpp>¶

Defines

HPX_DEBUG

Defined if HPX is compiled in debug mode.

HPX_BUILD_TYPE

Evaluates to debug if compiled in debug mode, release otherwise.

## #include <hpx/config/weak_symbol.hpp>¶

Defines

HPX_WEAK_SYMBOL

## #include <hpx/config/lambda_capture.hpp>¶

Defines

HPX_CAPTURE_FORWARD(var)

Evaluates to var = std::forward<decltype(var)>(var) if the compiler supports C++14 Lambdas. Defaults to var.

This macro is deprecated. Prefer using var = std::forward<decltype(var)>(var) directly instead.

HPX_CAPTURE_MOVE(var)

Evaluates to var = std::move(var) if the compiler supports C++14 Lambdas. Defaults to var.

This macro is deprecated. Prefer using var = std::move(var) directly instead.

## #include <hpx/config/emulate_deleted.hpp>¶

Defines

HPX_NON_COPYABLE(cls)

Marks a class as non-copyable and non-movable.

## #include <hpx/config/compiler_fence.hpp>¶

Defines

HPX_COMPILER_FENCE

Generates assembly that serves as a fence to the compiler CPU to disable optimization. Usually implemented in the form of a memory barrier.

HPX_SMT_PAUSE

Generates assembly the executes a “pause” instruction. Useful in spinning loops.

## #include <hpx/config/constexpr.hpp>¶

Defines

HPX_CONSTEXPR

This macro evaluates to constexpr if the compiler supports it.

This macro is deprecated. It is always replaced with the constexpr keyword. Prefer using constexpr directly instead.

HPX_CONSTEXPR_OR_CONST

This macro evaluates to constexpr if the compiler supports it, const otherwise.

This macro is deprecated. It is always replaced with the constexpr keyword. Prefer using constexpr directly instead.

HPX_STATIC_CONSTEXPR

This macro evaluates to static constexpr if the compiler supports it, static const otherwise.

This macro is deprecated. It is always replaced with the static constexpr keyword. Prefer using static constexpr directly instead.

## #include <hpx/config/manual_profiling.hpp>¶

Defines

HPX_SUPER_PURE
HPX_PURE
HPX_HOT
HPX_COLD

## #include <hpx/config/forceinline.hpp>¶

Defines

HPX_FORCEINLINE

Marks a function to be forced inline.

## #include <hpx/config/branch_hints.hpp>¶

Defines

HPX_LIKELY(expr)

Hint at the compiler that expr is likely to be true.

HPX_UNLIKELY(expr)

Hint at the compiler that expr is likely to be false.

## #include <hpx/config/export_definitions.hpp>¶

Defines

HPX_EXPORT

Marks a class or function to be exported from HPX or imported if it is consumed.