请注意,如果在编译程序的时候使用
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