2013-08-26 6 views
1

Я запускаю задачу для параллельного выполнения с slurm. Это задание требует наличия определенной структуры каталогов в каждом узле, но если я использую mkdir в скрипте задания, каталоги создаются только в первом узле. Как я могу убедиться, что каталоги созданы во всех узлах, используемых заданием?Slurm: создать каталог на всех узлах

ответ

1

Думаю, я должен ответить сам. Это не идеальное решение, но оно работает в моем случае достаточно хорошо. В сценарии работы я использовал это до начала реальной работы:

for node in $(scontrol show hostnames $SLURM_NODELIST) ; do 
    srun -N 1-1 -n 1 -w $node mkdir -p /directory/to/be/created 
done 
sleep 60 

Список узлов в $SLURM_NODELIST сокращенно, с scontrol заявлением я получаю полные имена. Без команды sleep у меня иногда возникали проблемы с отсутствием какого-либо каталога, поэтому добавили его просто для того, чтобы быть в безопасности.

Проблема в том, что мне нужно знать, какие каталоги необходимо создать заранее, что возможно в моем случае, но может быть сложнее в других обстоятельствах.

0

Вы можете просто добавить

srun mkdir -p /directory/to/be/created

в сценарии. Он может попытаться создать один и тот же каталог несколько раз в зависимости от конфигурации кластера, но он все равно будет работать.

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