«воссоединиться» с работой в стиле «баш»

#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?