请注意,如果在编译程序的时候使用
module load加载了某个编译器,在sbatch作业脚本里也需要加载相同的编译器
MPI 程序编译和运行
OpenMPI 编译器
使用预装的 OpenMPI
使用 module avail 命令查看可用的 OpenMPI 版本,选择所需要的版本,例如
module load openmpi/5.0
- 未标注
GCC版本号的OpenMPI,使用的是系统自带的默认版本GCC编译器
使用 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/oneapi/2023
使用 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/5.0
cd $SLURM_SUBMIT_DIR
mpirun -np $SLURM_NTASKS ./mpiexefile