SST Engine Example:
- programs are from example/hello/ :
reader => bin/adios2_hello_sstReader
writer => bin/adios2_hello_sstWriter
0. Notes:
It is easier to test in interactive node on HPC
usage: writer [DataTransportChoice] (defaults to WAN)
- To turn on verbose flag for both SST server or client, set this in your env:
export SstVerbose=N ( 0 <= N <= 5)
To check whether the preferred SST Dataplane is activated, look for “DataTransport” values in the verbose output.
1. WAN (default)
works for both serial or MPI code.
- using sockets to communicate
srun -n 1 -N 1 writer > wout 2>&1 &
srun -n 1 -N 1 reader > rout 2>&1 &
2. RDMA
add option “–network=single_node_vni,job_vni”
- working example:
srun -n 5 -N 1 –network=single_node_vni,job_vni writer RDMA > wout 2>&1 &
srun -n 2 -N 1 –network=single_node_vni,job_vni reader > rout 2>&1 &
3. MPI
needs 2+ nodes on server
add option “–network=single_node_vni,job_vni”
- working example:
srun -n 2 -N 2 –network=single_node_vni,job_vni writer MPI > wout 2>&1 &
srun -n 2 -N 2 –network=single_node_vni,job_vni reader > rout 2>&1 &
4. UCX
- on Frontier, to use UCX:
Export UCX_ROOT=/opt/cray/pe/cray-ucx/2.7.0-1/ucx/
- load 3 ucx modules:
craype-network-ucx
cray-mpich-ucx/8.1.31
cray-ucx/2.7.0-1
(May 2025) compile ADIOS (with ucx), cmake linked to a non exist ucx installation. To work around, change CMakeCache.txt and force to use /opt/cray/pe/cray-ucx/2.7.0-1/ucx instead of the wrong path.
- 1 Node works (as of May 2025)
srun -N 1 -n 2 ./adios2_hello_bpWriter_mpi
- 2 Node failed (as of May 2025)
MPIDI_UCX_mpi_init_hook(139): ucx function returned with failed status(ucx_init.c 139 MPIDI_UCX_mpi_init_hook Destination is unreachable)