-
Notifications
You must be signed in to change notification settings - Fork 429
UCX environment parameters
UCX_TLS
variable controls the transports to use.
In addition to the built-in transports it's possible to use aliases which specify multiple transports.
Using a \
prefix before a transport name treats it as an explicit transport name rather than an alias.
Currently supported aliases:
all | use all the available transports. |
sm / shm | all shared memory transports. |
mm | shared memory transports - without kernel-assisted copy |
ugni | ugni_rdma and ugni_udt. |
rc | rc and ud. |
rc_x | rc with accelerated verbs and ud. |
ud_x | ud with accelerated verbs. |
For example:
-
UCX_TLS=rc
will select rc and ud -
UCX_TLS=rc,cm
will select rc, ud, and cm -
UCX_TLS=\rc,cm
will select rc and cm
In order to specify the devices to use for the run, please use the following environment parameters:
-
UCX_NET_DEVICES
for specifying the network devices. For example:mlx5_1:1
,mlx5_1:1
GEMINI
-
UCX_SHM_DEVICES
for specifying the shared memory devices. For example:sysv
,knem
-
UCX_ACC_DEVICES
for specifying the acceleration devices. For example:gpu0
The following command line will use the rc_x and mm transports, and their corresponding devices will be mlx5_0:1 and sysv.
mpirun -mca pml ucx -x UCX_TLS=rc_x,mm -x UCX_NET_DEVICES=mlx5_0:1 -x UCX_SHM_DEVICES=sysv ...
This way, for instance, making the choice for the HCA to use doesn't affect the devices used for the shared memory UCTs.
If one or more of these environment variables are not set, their default values will be used.
The current default for each of them is 'all', which means to use all available devices and all available transports.
The following command shows the default values of these (as well as all other) environment parameters:
$ ./bin/ucx_info -f
For these specific ones:
$ ./bin/ucx_info -f | grep DEVICES
UCX_NET_DEVICES=all
UCX_SHM_DEVICES=all
UCX_ACC_DEVICES=all