|
本帖最后由 Uus/pMeC6H4-/キ 于 2024-10-17 14:17 编辑
之前查slurm系统srun指令的手册时也看到了,srun --mpi=list可以查看配备的MPI版本,默认为none,但还有cray_shasta, pmi2, pmix, pmix_v2这几个选项。OpenMPI里面支持PMIx。
测试发现用srun指令运行cp2k.psmp时,--mpi=pmix和--mpi-pmix_v2大致相当,比--mpi=none平均每步耗时短一点点,但仍然不能达到那个古老的9.1版的速度。(据github的某个issue ,建议环境变量加一条export PMIX_MCA_psec=^munge 以消除有关psec框架下munge组件找不到的报错。)
(这段是后面编辑添加的)用古老的9.1版执行cp2k.psmp -v,输出结果为
- CP2K version 9.1
- Source code revision git:d8d7100
- cp2kflags: omp fftw3 libxc parallel mpi3 scalapack cosma xsmm plumed2 spglib mkl libvori libbqb
- compiler: Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.7.0 Build 20220726_000000
- compiler options:
- -I/opt/system/app/intel/2022.3/mpi/2021.7.0/include -I/opt/system/ap
- p/intel/2022.3/mkl/2022.2.0/include -I/opt/system/app/intel/2022.3/m
- kl/2022.2.0/include/fftw -I/home/yyyyyy/make/cp2k-9.1/tools/toolch
- ain/install/libxc-5.1.7/include -I/home/yyyyyy/make/cp2k-9.1/tools
- /toolchain/install/libxsmm-1.17/include -I/home/yyyyyy/make/cp2k-9
- .1/tools/toolchain/install/COSMA-2.5.1/include -I/home/yyyyyy/make
- /cp2k-9.1/tools/toolchain/install/spglib-1.16.2/include -I/home/yyyy
- yy/make/cp2k-9.1/src/start/ -I/home/yyyyyy/make/cp2k-9.1/obj/loc
- al/psmp/exts/dbcsr -I/opt/system/app/intel/2022.3/mpi/2021.7.0//incl
- ude -I/opt/system/app/intel/2022.3/mpi/2021.7.0/include -c -fopenmp
- -nofor-main -xHost -m64 -D__LIBXSMM -D__parallel -D__MKL -D__PLUMED2
- -D__FFTW3 -D__SCALAPACK -D__LIBXC -D__COSMA -D__SPGLIB -D__LIBVORI
- -D__COMPILE_ARCH="local" -D__COMPILE_DATE="Mon May 22 19:29:07 JST 2
- 023" -D__COMPILE_HOST="yy" -D__COMPILE_REVISION="git:d8d7100"
- -D__DATA_DIR="/home/yyyyyy/make/cp2k-9.1/data" -D__SHORT_FILE__="s
- tart/cp2k.F"
复制代码
其中有一个mpi3,不知道属于Intel MPI还是Open MPI。这里面也没有elpa库。
我怀疑这个计算集群对单个用户通过toolchain另外下载安装的Open MPI支持不佳,而对某个系统已有的MPI支持更好;用module avail看到其中大部分是Intel MPI,Open MPI有4.1.5_intel-2022.3版的。然而除了用toolchain装的这个Open MPI,尚未有其他MPI成功编译CP2K的经验,需要多尝试几下。 |
|