#mpi #pbs
#mpi #pbs
Вопрос:
Я прочитал на qsub
странице руководства, что PBS_NODEFILE создается, как только mpirun, mpiexec, aprun, что угодно, начинает выполняться. Есть ли способ просмотреть его содержимое? Я попробовал следующее:
C code catfile.c:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
char command[256];
MPI_Init(amp;argc, amp;argv);
sprintf(command, "%s %sn", "cat", argv[1]);
printf("%sn", command);
system(command);
MPI_Finalize();
}
В моем пакетном скрипте я запускаю с
cc -o catfile catfile.c
aprun -n 1 ./catfile $PBS_NODEFILE
Вывод
cat /var/spool/PBS/aux/1894.pbs01
cat: /var/spool/PBS/aux/1894.pbs01: No such file or directory
Это все, что у меня есть. Есть ли другой способ? Спасибо.
Комментарии:
1. Я думаю, вы неправильно поняли эту часть. Просто отправьте параллельное задание и
cat $PBS_NODEFILE
в вашем скрипте.2. Расширение переменной
$PBS_NODEFILE
происходит в сеансе оболочки, в котором вы написалиaprun -n 1 ./catfile $PBS_NODEFILE
, и, таким образом, вы уже исправили аргументcatfile
. Приcatfile
запуске он выполняет это на другом хосте, отличном от того, на котором вы ввели команду, и пытается получить доступ к несуществующему файлу, поскольку/var
он не является общим для разных узлов.