Runtime Configuration

At launch time, DYAD allows users to customize its behavior and make better use of the environment through various environment variables. The list of these variables is shown below.

Name

Type

Required?

Default

Description

DYAD_KVS_NAMESPACE

String

Yes

N/A

The Flux KVS namespace that DYAD will use to record or look

for file information

DYAD_PATH_PRODUCER

Directory Path

Yes [1]

N/A

The producer-managed path of the application

DYAD_PATH_CONSUMER

The consumer-managed path of the application

DYAD_DTL_MODE

String

No

FLUX_RPC

Choose data transfer method among MARGO, UCX, FLUX_RPC

DYAD_MARGO_PROTO [2]

String

No

ofi+tcp

Specify network protocol when DYAD_DTL_MODE=MARGO

DYAD_PATH_RELATIVE

0 or 1

No

0

The presence of this variable in the environment indicates that

DYAD treats relative paths as relative to the managed directory

DYAD_SHARED_STORAGE

0 or 1

No

0

1: only per-file access synchronization for consumer

but no transfer or the overhead associated with it

DYAD_ASYNC_PUBLISH

0 or 1

No

0

Enable asynchronous metadata publishing by producers.

DYAD_SERVICE_MUX

integer >= 1

No

1

Number of Flux brokers sharing node-local storage.

DYAD_KEY_DEPTH [3]

Integer

No

3

The number of levels in Flux’s hierarchical KVS to use

within DYAD’s namespace

DYAD_KEY_BINS [3]

Integer

No

1024

The maximum number of unique hash values per level in Flux’s

hierarchical KVS within DYAD’s namespace.

Examples of valid values for DYAD_MARGO_PROTO:

Value

Description

ofi+tcp

Portable TCP/IP via libfabric (default)

ofi+verbs

InfiniBand via libfabric

ofi+cxi

HPE Slingshot (Cray EX) via libfabric

na+sm

Shared memory (current Margo; use sm for older)

ucx+all://

Auto; let UCX pick, safe default, often doesn’t work

ucx+tcp://

TCP/IP, portable

ucx+rc_v://

InfiniBand RC (verbs), low-latency IB

ucx+rc_mlx5://

InfiniBand RC (mlx5), Mellanox HCAs

ucx+ud_v://

InfiniBand UD (verbs), scalable IB

ucx+dc_mlx5://

InfiniBand DC (mlx5), large-scale IB (Frontier, Sierra)

ucx+cma://

Cross-Memory Attach, intra-node shared memory (Linux)

ucx+sysv://

SysV shared memory, intra-node only