Saya telah menggunakan Emacs dengan ESS dan tramp untuk memuat file jarak jauh dan menjalankan proses R jarak jauh di komputer HPC. Dengan tombol ssh, gelandangan mempermudah C-x C-f
pencarian file di /ssh:myserver:/path/to/file
diikuti oleh M-x R
untuk memulai sesi R.
Namun, pada komputer HPC yang menggunakan sistem penjadwalan pekerjaan (mis. Sun Grid Engine atau Torque) ada batasan berapa banyak memori dan CPU yang dapat digunakan pada head node, jadi saya harus meluncurkan sesi interaktif menggunakan qsub -I
.
Apakah mungkin untuk mengkonfigurasi tramp, ssh, dan / atau Emacs untuk meluncurkan sesi interaktif pada slave node (menggunakan qsub -I
atau setara) setelah koneksi ssh dibuat?
tramp
ess
interactive
ssh
David LeBauer
sumber
sumber
tramp-remote-shell
set keqrsh
atauqlogin
Anda mungkin bisa mendapatkan sesi cluster interaktif.Jawaban:
Sepertinya Anda harus memperluas
tramp-methods
, menambahkan metode baru yang mirip dengansudo
metode tetapi menggunakanqsub -I
sebagai gantinya. Anda kemudian dapat menggunakan jalur tramp multi-hop untuk pertama-tama terhubung ke node kepala dan kemudian untuk terhubung ke node komputasi.Coba ini:
Anda kemudian akan menggunakan jalur gelandangan seperti
/ssh:myserver|qsub:myserver:/path/to/file
.Anda mungkin perlu menentukan opsi lain untuk lolos ke qsub; Saya belum menggunakannya jadi saya tidak bisa membantu Anda di sana. Anda juga ingin melihat opsi lain yang dapat Anda tentukan pada metode gelandangan; ada beberapa lusin yang terdaftar di tramp.el.
sumber
Saya telah berjuang untuk melakukan hal yang sama. Saya menemukan rute berbeda yang pada dasarnya memungkinkan saya melakukan hal yang sama.
Anda dapat membuka buffer shell dengan
M-x shell
dan dari sana terhubung ke node login, dan kemudian terhubung ke sesi interaktif denganqsub -I
. Setelah Anda berada di sesi interaktif, mulailah sesi R dengan mengetik perintahR
. Di sana, Anda bisa melakukannyaM-x ess-remote
. Ini akan meminta buffer mini yang menanyakan program mana yang ingin Anda jalankan (R, S +, Stata, dll.) Setelah Anda memilih R, maka Anda dapat menggunakan sesi R pada shell jauh seperti halnya Anda menggunakan ESS di mesin lokal.Saya pribadi membuka Rscripts yang disimpan di node jauh dengan menginjaknya (di jendela terpisah) dan bekerja dengan sesi R yang terhubung oleh
ess-remote
seperti yang dijelaskan di atas. Dengan cara ini, sesi R dapat langsung berinteraksi dengan Rscripts yang saya kerjakan. (Misalnya,source('code.R')
perintah dalam R akan dapat membaca 'code.R' di cluster HPC, yang mungkin baru saja saya edit. Jika saya mengedit Rscripts di mesin lokal saya sebagai gantinya, sesi ess-remote dari R wouldn ' t dapat membacanya kecuali saya mengunggahnya ke node jarak jauh setiap kali.)sumber