本ページは OCI: HPC Cluster のサブページになります。
MPI 関連
Q: MPI はプリインストールされているか?
OpenMPI ver.4 と Intel MPI (OneAPI)がプリインストールされています。
OpemMPI は /usr/mpi
配下、Intel MPI は /opt/intel
配下にインストールされています。
Q: MPI で RDMA を利用するためにはどんなオプションを指定すれば良いか?
OCI では RDMA の I/F として RoCEv2 を採用しております。代表的な以下3つの MPI で RoCEv2 を利用するオプションを記載します。インスタンスや MPI の ver によりオプションが異なるのでご注意ください。
OpenMPI 3.x
- BM.HPC2.36:
-mca btl self -x UCX_TLS=rc,self,sm -x HCOLL_ENABLE_MCAST_ALL=0 -mca coll_hcoll_enable 0 -x UCX_IB_TRAFFIC_CLASS=105 -x UCX_IB_GID_INDEX=3
OpenMPI 4.x
- BM.HPC2.36:
-mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 -mca coll_hcoll_enable 0 -x UCX_IB_TRAFFIC_CLASS=105 -x UCX_IB_GID_INDEX=3 -x HCOLL_ENABLE_MCAST_ALL=0
- BM.Optimized3.36:
-mca pml ucx -x UCX_NET_DEVICES=mlx5_2:1 -mca coll_hcoll_enable 0 -x UCX_IB_TRAFFIC_CLASS=105 -x UCX_IB_GID_INDEX=3 -x HCOLL_ENABLE_MCAST_ALL=0
Intel MPI 2018 まで
- BM.HPC2.36:
-iface enp94s0f0 -genv I_MPI_FABRICS=shm:dapl -genv DAT_OVERRIDE=/etc/dat.conf -genv I_MPI_DAT_LIBRARY=/usr/lib64/libdat2.so -genv I_MPI_DAPL_PROVIDER=ofa-v2-cma-roe-enp94s0f0 -genv I_MPI_FALLBACK=0
BM.Optimized3.36:
-iface ens800f0 -genv I_MPI_FABRICS=shm:dapl -genv DAT_OVERRIDE=/etc/dat.conf -genv I_MPI_DAT_LIBRARY=/usr/lib64/libdat2.so -genv I_MPI_DAPL_PROVIDER=ofa-v2-cma-roe-ens800f0 -genv I_MPI_FALLBACK=0
Intel MPI 2019 から
- BM.HPC2.36:
-iface enp94s0f0 -genv I_MPI_FABRICS=shm:ofi
- BM.Optimized3.36 + Oracle Linux7:
-iface ens800f0 -genv UCX_TLS=rc,self,sm -genv UCX_NET_DEVICES=mlx5_2:1 -genv I_MPI_FABRICS=shm:ofi
- BM.Optimized3.36 + Oracle Linux8:
-iface rdma -genv UCX_TLS=rc,self,sm -genv UCX_NET_DEVICES=mlx5_2:1 -genv I_MPI_FABRICS=shm:ofi
Platform MPI
- BM.HPC2.36:
-intra=shm -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-enp94s0f0 -UDAPL -e MPI_FLAGS=y
- BM.Optimized3.36:
-intra=shm -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-ens800f0 -UDAPL -e MPI_FLAGS=y
Q: VM Shapeにて複数ノードでジョブを実行したい
VM Shapeの場合、ノード間通信はTCPを利用することになります(RDMAはBM Shapeのみ対応のため)。
また2024年3月27日現在、HPC Clusterで生成されるVM ShapeではHyperthredingを無効にできないため、それについても対処をする必要があります。
OpenMPI v4
ポイント
- tcpを明示的に指定: --mca btl self,tcp
- HCOLLを明示的に無効: --mca coll_hcoll_enable 0
- 物理コアへのバインド: --bind-to core
--mca btl self,tcp --mca coll_hcoll_enable 0 --bind-to core