我有一个 Fortran 代码(运行良好),我需要提交队列并将其定向到节点。
我手动编译了 Fortran 代码。 .bash 代码给出以下错误:
n19
1
2
2022
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x2b22acff33ff in ???
#1 0x403fec in ???
#2 0x4051cb in ???
#3 0x2b22acfdf554 in ???
#4 0x400c78 in ???
#5 0xffffffffffffffff in ???
srun: error: n19: task 0: Segmentation fault
Job end at Sat Mar 4 02:55:14 -03 2023
这是我的 .bash 代码:
#!/bin/bash
#SBATCH --job-name=calculos
#SBATCH --partition=cempa
#SBATCH --nodes=1
#SBATCH --tasks-per-node=48
#SBATCH --ntasks=1
#SBATCH --time=10:00:00
#SBATCH --error=error_output_sbatch_%j.txt
#SBATCH --output=error_output_sbatch_%j.txt
#SBATCH --exclusive
echo "Job start at $(date)"
module unload openmpi3
module load gnu8
ulimit -l unlimited
#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
echo $SLURM_JOB_NUM_NODES
# Operations
#export OMP_NUM_THREADS=1
#EXEC=./calculos_jan.x
#mpirun -np 1 $EXEC -f teste &> output
srun ./calculos_jan.x
echo "Job end at $(date)"
exit
我没有看到任何实际使用可执行文件的命令。你正在用可执行文件的路径定义一个变量
EXEC
,但你不会在任何地方执行它。
要么执行它而不是定义变量,要么在定义它之后执行
$EXEC
。