#mpi #hpc #pbs
Вопрос:
Я хочу запустить mpi на нескольких вычислительных узлах, в первом узле мне нужно использовать 48 процессоров и 4 графических процессора и 6 рангов, во втором узле я должен использовать 48 процессоров и 4 графических процессора, но 5 рангов.
Я попытался создать файл хоста, чтобы передать всю эту информацию узлам, но я получаю
line 37: orterun: command not found
сценарий запуска (который включал сценарий pbs) является :
#!/bin/bash
#PBS -l walltime=00:05:00
#PBS -l ncpus=48
#PBS -l ngpus=4
#PBS -l mem=384GB
#PBS -l jobfs=100GB
#PBS -q gpuvolta
#PBS -P kv03
#PBS -l wd
if [ -f debug.h5 ]; then
rm debug.h5
fi
# hostfilename
hostfile=hostfile_$PBS_JOBID
#for gadi MBE runs
NODE_LIST=$(cat $PBS_NODEFILE | sort | uniq)
i=0
for word in $NODE_LIST
do
if [ $i == 0 ]
then
echo "$word slots=6 max_slots=6" >> $hostfile
else
echo "$word slots=5 max_slots=5" >> $hostfile
fi
i=$((i 1))
done
echo "$hostfile created"
#(cat $hostfile)
# linux using openmpi
export OMP_NUM_THREADS=1
orterun --mca btl vader,self,tcp -np 6 --bind-to core --hostfile $hostfile ./exe1 w6-new.json
Если бы я работал с одним узлом, моя команда oreturn была
orterun --mca btl vader,self,tcp -np 6 --bind-to core --map-by ppr:6:node ./exe1 w6-new.json
и это было правильно.
для работы на нескольких узлах я должен указать количество целых рангов (в обоих узлах) в команде oreturn? а также сценарий pbs должен быть для целых двух узлов (96 процессоров и 8 графических процессоров) или только для каждого узла (как тот, который я написал в сценарии).
Комментарии:
1. попробуйте использовать абсолютный путь к
orterun
2. Спасибо @GillesGouaillardet Я сделал это /Home/тест/$файл хоста, но это не решило проблему
3. это должен быть абсолютный путь к
orterun
, например/opt/openmpi/bin/orterun