#slurm
Вопрос:
В настоящее время я могу использовать srun [variety of settings] bash
для создания оболочки на вычислительной заметке. Однако, если мой ssh отключится по какой-либо причине, и я захочу повторно получить доступ к оболочке, как я могу это сделать?
Ответ №1:
Предполагая, что SSH-соединение с вашего ноутбука к узлу входа в кластер нестабильно , вы можете использовать терминальный мультиплексор, такой как screen
или tmux
, в зависимости от того, что уже установлено на узле входа в систему.
Как правило, сеанс будет выглядеть следующим образом
[you@yourlaptop ~]$ ssh cluster-frontend
[you@cluster ~]$ tmux # to enter a persistent tmux session
[you@cluster ~]$ srun [...] bash # to get a shell on a compute node
[you@computenode ~]$ # some work, then...
some SSH error (e.g. Write failed: Broken pipe)
[you@yourlaptop ~]$ ssh cluster-frontend
[you@cluster ~]$ tmux a # to re-attach to the persistent tmux session
[you@computenode ~]$ # resume work
С screen
помощью , вы бы использовали screen -r
, а не tmux a
. В противном случае процесс тот же самый.
Если вы хотите присоединиться к заданию из другого экземпляра терминала (справа ниже), вы можете использовать команду Slurm sattach
.
[you@yourlaptop ~]$ ssh cluster-frontend |
[you@cluster ~]$ srun [...] bash |
srun: job ******* queued and waiting for resources |
srun: job ******* has been allocated resources | [you@yourlaptop ~]$ ssh cluster-frontend
[you@computenode ~]$ | [you@cluster ~]$ sattach --pty ********
[you@computenode ~]$ echo OK | [you@computenode ~]$ echo OK
[you@computenode ~]$ OK | [you@computenode ~]$ OK
Исходный терминал и тот, в котором sattach
он был запущен, теперь полностью синхронизированы.
Обратите внимание, что вышеизложенное не защищает от случайного завершения srun
; всякий srun
раз, когда завершается, задание также завершается.
Комментарии:
1. Спасибо за это! Однако это не просто проблема стабильности. Например, если я открою задание на одном терминале, есть ли способ присоединиться к нему из другого экземпляра iterm?