Задание qsub, использующее параллель GNU, не выполняется

Я пытаюсь выполнить задание qsub в мультиузле (2) и PPN из 20, используя параллель GNU, однако это показывает некоторую ошибку.

#!/bin/bash
#PBS -l nodes=2:ppn=20
#PBS -l walltime=02:00:00
#PBS -N down

cd $PBS_O_WORKDIR
module load gnu-parallel

for cdr in /scratch/data/v/mt/Downscale/*;do
  (cp /scratch/data/v/mt/DWN_FILE_NEW/* $cdr/)
  (cd $cdr && parallel -j20 --sshloginfile $PBS_NODEFILE 'echo {} | ./vari_1st_imge' ::: *.DS0 )
done

Когда я запускаю приведенный выше код, я получаю следующую ошибку (обратите внимание, что все пути правильно проверены, и тот же код без qsub работает правильно на обычном компьютере)

$ ./down 
parallel: Error: Cannot open echo {} | ./vari_1st_imge.

& for $qsub down -- вывод не создается

Я использую parallel --version GNU parallel 20140622

Пожалуйста, помогите решить проблему


person anu    schedule 25.06.2017    source источник


Ответы (1)


Сначала попробуйте добавить --dryrun к parallel.

Но мне кажется, что $PBS_NODEFILE по какой-то причине не задано, и что GNU Parallel пытается прочитать команду как --sshloginfile.

Чтобы проверить это:

echo $PBS_NODEFILE
(cd $cdr && parallel --sshloginfile $PBS_NODEFILE -j20 'echo {} | ./vari_1st_imge' ::: *.DS0 )

Если GNU Parallel сейчас попытается открыть -j20, то ясно, что он пуст.

person Ole Tange    schedule 25.06.2017
comment
Спасибо за ваш ответ, я пробовал без --sshloginfile $PBS_NODEFILE код работает. Не могли бы вы подсказать, как установить $PBS_NODEFILE. Теперь ошибка появляется, когда я пытаюсь использовать приведенное выше: ./down: строка 14: модуль: команда не найдена параллельно: Ошибка: не удается открыть эхо {} | ./vari_1st_imge. - person anu; 25.06.2017
comment
Сценарий не может найти двоичный файл parallel. Проверьте, находится ли он на узлах и где он находится (например, запустите интерактивное задание и найдите его или просто спросите администратора кластера), а затем укажите полный путь к двоичному файлу или добавьте путь к переменной среды PATH в начало сценария. . Возможно, система уже настроена на включение его с помощью команды module. - person clusterdude; 29.06.2017
comment
Ваш администратор PBS будет знать, почему $PBS_NODEFILE не установлен. Я никогда не пользовался системами PBS, но у меня сложилось впечатление, что PBS обычно устанавливает эту переменную самостоятельно. - person Ole Tange; 29.06.2017