2015-12-23 7 views
0

Можно ли принудительно «сериализовать» секцию в скрипте SGE?Серийный раздел в скрипте SGE

#$ -S /bin/bash 
#$ -N example 
#$ -v MPI_HOME 
#$ -q all.q 
#$ -pe ompi 40 
#$ -j yes 
#$ -o example.log 

$MPI_HOME/bin/mpirun example.exe 

# now do some serial commands 
grep 'success' example.log 
mv example.out /archive 

В настоящее время я разделяю эти типы заданий на два сценария и делаю их зависимыми от другого. Было бы намного проще поддерживать и планировать, могу ли я хранить все в одном скрипте.

ответ

0

Вы можете сделать это, но задание будет выполняться во всех слотах, которые оно использует, пока вы это делаете. Поскольку серийный код вызывается непосредственно в скрипте задания, а не через mpirun, он запускается только один раз на главном узле задания. Для быстрых вещей, подобных вашему примеру, это не имеет большого значения, но если у вас длинный серийный раздел, это более эффективное использование ресурсов, чтобы разделить их на две работы по мере того, как вы это делаете.

+0

Но будут ли серийные секции выполняться каждым процессом? Я хочу, чтобы одна и та же команда выполнялась несколько раз. – Sam

+0

Нет. Я обновил свой ответ. –