gromacsではmpiを使わないthreads計算向けのコンパイルを示した.
gromacsには複数台のGPUノードを使っての計算が出来るようにmpi対応が行われている.
ここではそのmpi対応のバイナリーを作ってみる.
mpiでthreads計算ができる ハイブリッド型 なのかなと思う. relionと同じようにmpiプロセス数とそのmpiでのthreadsを指定できるかと
コンパイル †
mpiを使うのでmpiパッケージを入れます
[root@rockylinux9 ~]# dnf install openmpi-devel
その上で
[root@rockylinux9 ~]# cd /apps/src/gromacs-2023.1/
[root@rockylinux9 gromacs-2023.1]# mkdir build-mpi; cd build-mpi
[root@rockylinux9 build-mpi]# module load mpi/openmpi-x86_64
[root@rockylinux9 build-mpi]# cmake .. -DCMAKE_INSTALL_PREFIX=/apps/gromacs-2023.1 -DGMX_GPU=CUDA -DGMX_MPI=ON -DREGRESSIONTEST_DOWNLOAD=ON
:
-- Performing Test MPI_SUPPORTS_CUDA_AWARE_DETECTION
-- Performing Test MPI_SUPPORTS_CUDA_AWARE_DETECTION - Success
-- Checking for MPI_SUPPORTS_CUDA_AWARE_DETECTION - yes
:
[root@rockylinux9 build-mpi]# make; make; make
[root@rockylinux9 build-mpi]# OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 make check
:
100% tests passed, 0 tests failed out of 89
Label Time Summary:
GTest = 260.34 sec*proc (83 tests)
IntegrationTest = 106.56 sec*proc (27 tests)
MpiTest = 132.03 sec*proc (21 tests)
QuickGpuTest = 45.76 sec*proc (17 tests)
SlowGpuTest = 1164.83 sec*proc (18 tests)
SlowTest = 92.18 sec*proc (13 tests)
UnitTest = 61.60 sec*proc (43 tests)
Total Test time (real) = 1291.01 sec
[100%] Built target run-ctest-nophys
[100%] Built target check
[root@rockylinux9 build-mpi]# make install
メモ †
「make check」の際はroot権限で実行する際ちょいと環境変数を調整する必要がある. 加えて core数が 8個以上ないとエラーになるみたい.
「OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 make check」
インストール先は threads 版のインストール先と同じで構わない