我使用 MPI 并行化了三个嵌套循环。当我运行代码时,弹出一个错误,显示“srun:错误:无法为作业 20258899 创建步骤:请求的处理器数量超过允许的数量”
这是我用来提交作业的脚本。
#!/bin/bash
#SBATCH --partition=workq
#SBATCH --job-name="code"
#SBATCH --nodes=2
#SBATCH --time=1:00:00
#SBATCH --exclusive
#SBATCH --err=std.err
#SBATCH --output=std.out
#---#
module switch PrgEnv-cray PrgEnv-intel
export OMP_NUM_THREADS=1
#---#
echo "The job "${SLURM_JOB_ID}" is running on "${SLURM_JOB_NODELIST}
#---#
srun --ntasks=1000 --cpus-per-task=${OMP_NUM_THREADS} --hint=nomultithread ./example_parallel
Run Code Online (Sandbox Code Playgroud)
我在下面粘贴我的代码。有人可以告诉我我的代码有什么问题吗?是不是我使用的MPI错误?非常感谢。
PROGRAM THREEDIMENSION
USE MPI
IMPLICIT NONE
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(p=15,r=14)
INTEGER :: i, j, k, le(3)
REAL (KIND=dp), ALLOCATABLE :: kp(:,:,:,:), kpt(:,:), col1(:), col2(:)
REAL (KIND=dp) :: su, co, tot
INTEGER :: world_size, world_rank, …Run Code Online (Sandbox Code Playgroud)