请注意,如果在编译程序的时候使用
module load
加载了某个编译器,在sbatch
作业脚本里也需要加载相同的编译器
MPI
程序编译和运行
OpenMPI 编译器
使用预装的 OpenMPI
使用 module avail
命令查看可用的 OpenMPI
版本,选择所需要的版本,例如
module load openmpi/2.1.5
- 未标注
GCC
版本号的OpenMPI
,使用的是系统默认版本的GCC
编译器- 标注
IB
表示适配Infiniband
网络- 标注
OPA
表示适配Intel OPA
网络
使用 OpenMPI 编译 C 程序
mpicc -O2 mpisource.c -o mpiexefile
使用 OpenMPI 编译 C++ 程序
mpic++ -O2 mpisource.cpp -o mpiexefile
使用 OpenMPI 编译 Fortran 程序
mpif90 -O2 mpisource.f90 -o mpiexefile
Intel MPI 编译器
Intel Parallel Studio 和 oneAPI 编译器套装包含基于 MPICH
的 Intel MPI 编译器和运行库,使用 module avail
命令查看可用的 Intel 编译器套装版本,选择所需要的版本,例如
module load intel/parallelstudio/2017u8
使用 Intel MPI 编译 C 程序
mpiicc source.c -o mpiexefile
使用 Intel MPI 编译 C++ 程序
mpiicpc source.cpp -o mpiexefile
使用 Intel MPI 编译 Fortran 程序
mpiifort source.f90 -o mpiexefile
运行 MPI 并行程序
MPI 程序示例作业脚本
#!/bin/bash
#SBATCH --partition=hpxg
#SBATCH --ntasks=16
#SBATCH --time=6:00:00
module load openmpi/2.1.5
cd $SLURM_SUBMIT_DIR
srun -n $SLURM_NTASKS ./mpiexefile