Как скопировать данные на конкретный узел HPC, не зная, какой это узел до начала задания - PullRequest
0 голосов
/ 28 ноября 2018

из-за специфической конфигурации нашего HPC, лучший способ запустить наш код - это скопировать данные с головного узла на жесткий диск определенного узла, чтобы выполнить анализ (мы используем один узел за раз).

Поскольку PBS динамически назначает узлы заданиям, я заранее не знаю, в какой узел я должен копировать данные.Я хотел бы извлечь информацию о том, на каком узле будет выполняться задание, и динамически вставить его в мой скрипт.

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

Это вообще возможно?Я подумал, что мог бы использовать $ PBS_NODEFILE для этого, но он содержит только список доступных узлов, а не «выбранный в данный момент».Я просмотрел параметры PBS и специальные переменные, но нет ничего очевидного, что можно было бы применить таким образом.

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

Любые предложения приветствуются :-) кДж

1 Ответ

0 голосов
/ 06 февраля 2019

Я нашел правильную переменную среды, которая содержит информацию об узле - это $ HOSTNAME.Таким образом, в моем сценарии я могу объявить (среди прочего)

ssh $HOSTNAME

и попасть на узел.

Или я могу скопировать материал непосредственно на / с узла с помощью

scp input $HOSTNAME:/local/
scp $HOSTNAME:/local/ output

и их варианты.

...