Я использую Emacs с ESS и tramp для загрузки удаленных файлов и запуска удаленных процессов R на компьютерах HPC. С помощью ключей ssh tramp позволяет легко C-x C-f
найти файл, /ssh:myserver:/path/to/file
а затем M-x R
запустить сеанс R.
Однако на компьютерах HPC, которые используют систему планирования заданий (например, Sun Grid Engine или Torque), существуют ограничения на объем памяти и ЦП, которые можно использовать на головном узле, поэтому я должен запустить интерактивный сеанс с использованием qsub -I
.
Можно ли настроить tramp, ssh и / или Emacs для запуска интерактивного сеанса на подчиненном узле (использующем qsub -I
или эквивалентном) после установления соединения ssh?
tramp
ess
interactive
ssh
Дэвид Лебауэр
источник
источник
tramp-remote-shell
установленном значенииqrsh
илиqlogin
вы можете получить сеанс интерактивного кластера.Ответы:
Похоже, вы должны расширить
tramp-methods
, добавив новый метод, который похож наsudo
метод, но используетqsub -I
вместо этого. После этого вы сможете использовать многопролетный трамповый путь, чтобы сначала подключиться к головному узлу, а затем подключиться к вычислительному узлу.Попробуй это:
Затем вы будете использовать трамплин как
/ssh:myserver|qsub:myserver:/path/to/file
.Вам может потребоваться указать другие параметры для передачи в qsub; Я не использовал его, поэтому я не могу помочь вам там. Вы также захотите просмотреть другие опции, которые вы можете указать в методе tramp; Есть несколько десятков, перечисленных в tramp.el.
источник
Я изо всех сил пытался сделать то же самое. Я нашел другой маршрут, который позволил мне сделать то же самое.
Вы можете открыть буфер оболочки
M-x shell
и оттуда подключиться к узлу входа в систему, а затем подключиться к интерактивному сеансуqsub -I
. Как только вы в интерактивном сеансе, начните сеанс R, набрав командуR
. Там вы можете сделатьM-x ess-remote
. Это предложит мини-буфер, спрашивающий, какую программу вы хотите запустить (R, S +, Stata и т. Д.). После выбора R вы можете использовать сеанс R на удаленной оболочке так же, как вы используете ESS на локальном компьютере.Лично я открываю Rscripts, сохраненные в удаленном узле, зайти в него (в отдельном окне) и работаю с сеансом R, связанным
ess-remote
как описано выше. Таким образом, сеанс R может напрямую взаимодействовать с Rscripts, с которыми я работаю. (Например,source('code.R')
команда в R сможет прочитать «code.R» в кластере HPC, который я, возможно, только что отредактировал. Если бы вместо этого я редактировал Rscripts на своем локальном компьютере, сеанс ess-remote для R не состоялся бы » я не смогу их прочитать, если я не загружу их каждый раз на удаленный узел.)источник