Eu tenho usado o Emacs com ESS e tramp para carregar arquivos remotos e executar processos R remotos em computadores HPC. Com as teclas ssh, o tramp facilita C-x C-f
a localização de arquivos em /ssh:myserver:/path/to/file
seguida M-x R
e o lançamento de uma sessão R.
No entanto, nos computadores HPC que usam um sistema de agendamento de trabalhos (por exemplo, Sun Grid Engine ou Torque), existem restrições quanto à quantidade de memória e CPU que podem ser usadas no nó principal, por isso tenho que iniciar uma sessão interativa usando qsub -I
.
É possível configurar o tramp, ssh e / ou Emacs para iniciar uma sessão interativa em um nó escravo (usando qsub -I
ou equivalente) após a conexão ssh?
tramp
ess
interactive
ssh
David LeBauer
fonte
fonte
tramp-remote-shell
setqrsh
ouqlogin
você pode obter uma sessão de cluster interativa.Respostas:
Parece que você deve estender
tramp-methods
, adicionando um novo método que seja semelhante aosudo
método, mas que useqsub -I
. Você seria capaz de usar um caminho de salto múltiplo para conectar-se primeiro ao nó principal e depois ao nó de computação.Tente o seguinte:
Você usaria um caminho de caminhada como
/ssh:myserver|qsub:myserver:/path/to/file
.Pode ser necessário especificar outras opções para passar para o qsub; Eu não o usei, então não posso ajudá-lo lá. Você também deseja examinar as outras opções que você pode especificar em um método tramp; existem algumas dúzias listadas no tramp.el.
fonte
Eu tenho lutado para fazer o mesmo. Encontrei uma rota diferente que me permitia fazer basicamente a mesma coisa.
Você pode abrir um buffer de shell
M-x shell
e, a partir daí, conectar-se ao nó de login e, em seguida, conectar-se à sessão interativa porqsub -I
. Uma vez que você está na sessão interativa, iniciar uma sessão de R digitando o comandoR
. Lá, você pode fazerM-x ess-remote
. Isso solicitará um mini-buffer perguntando qual programa você deseja executar (R, S +, Stata, etc.) Depois de selecionar R, você poderá usar a sessão R no shell remoto, assim como o ESS na máquina local.Eu, pessoalmente, abro Rscripts salvos no nó remoto, entrando nele (em uma janela separada) e trabalhando com a sessão R conectada pelo
ess-remote
descrito acima. Dessa forma, a sessão R pode interagir diretamente com os Rscripts com os quais estou trabalhando. (Por exemplo, osource('code.R')
comando em R poderá ler o 'code.R' no cluster HPC, que eu poderia ter acabado de editar. Se eu estivesse editando Rscripts na minha máquina local, a sessão ess-remote de R não faria ' não será capaz de lê-los, a menos que eu os carregue no nó remoto toda vez.)fonte