1

Можно ли выполнять параллелизацию по циклу for в PBS-файле?Наивное распараллеливание в файле .pbs

Ниже представлен файл try.pbs. Я хотел бы выделить 4 узла и одновременно выделить 16 процессов на узел. Я успешно сделал это, но теперь у меня есть 4 задания, и я хотел бы отправить одно задание на каждый узел. (Мне нужно сделать это, потому что очереди Algo заставят меня ждать несколько дней для подачи 4 отдельного задания на кластере я использую)

#!/bin/bash 
#PBS -q normal 
#PBS -l nodes=4:ppn=16:native 
#PBS -l walltime=10:00:00 
#PBS -N HuMiBi000 
#PBS -o HuMiBi.000.out 
#PBS -e HuMiBi.000.err 
#PBS -A csd399 
#PBS -m abe 
#PBS -V 

./job1.sh 
./job2.sh 
./job3.sh 
./job4.sh 

Задания работать независимо друг от друга и не использует одни и те же данные. Могу ли я запустить 1 задание на узел из одного и того же сценария pbs?

спасибо.

ответ

1

Стандартный способ достижения этого - через библиотеку интерфейса передачи сообщений (MPI). Open MPI - прекрасная реализация, с которой вы можете работать. Некоторые основные примеры можно найти here, и это tutorial для OpenMPI, если вы хотите узнать больше.

+0

так я бы сказал: 'mpiexec -n 16: ./job1.sh: ./job2.sh: ./job3.sh: ./job4.sh' И это откроет 16 процессов для каждого задания на разных узлах ? –

+0

Я так считаю, но, честно говоря, я не эксперт. Я работаю с кодами MPI, но я не пишу их очень часто. – dbeer

Смежные вопросы