J'utilise Emacs avec ESS et Tramp pour charger des fichiers distants et exécuter des processus R distants sur des ordinateurs HPC. Avec les clés ssh, tramp facilite la C-x C-f
recherche de fichier à /ssh:myserver:/path/to/file
suivi de M-x R
pour lancer une session R.
Cependant, sur les ordinateurs HPC qui utilisent un système de planification des travaux (par exemple, Sun Grid Engine ou Torque), il existe des restrictions sur la quantité de mémoire et de CPU pouvant être utilisée sur le nœud principal, je dois donc lancer une session interactive à l'aide de qsub -I
.
Est-il possible de configurer tramp, ssh et / ou Emacs pour lancer une session interactive sur un nœud esclave (en utilisant qsub -I
ou équivalent) après une connexion ssh?
tramp
ess
interactive
ssh
David LeBauer
la source
la source
tramp-remote-shell
set toqrsh
ouqlogin
vous pourrez peut-être obtenir une session de cluster interactif.Réponses:
Il semble que vous devriez étendre
tramp-methods
, en ajoutant une nouvelle méthode qui est similaire à lasudo
méthode mais utilise à laqsub -I
place. Vous pourrez alors utiliser un chemin de tramp à sauts multiples pour vous connecter d'abord au nœud principal, puis pour vous connecter à un nœud de calcul.Essaye ça:
Vous utiliseriez alors un chemin clochard comme
/ssh:myserver|qsub:myserver:/path/to/file
.Vous devrez peut-être spécifier d'autres options pour passer à qsub; Je ne l'ai pas utilisé, je ne peux donc pas vous aider. Vous voudrez également regarder les autres options que vous pouvez spécifier sur une méthode de tramp; il y en a quelques dizaines dans tramp.el.
la source
J'ai du mal à faire de même. J'ai trouvé un itinéraire différent qui m'a permis de faire essentiellement la même chose.
Vous pouvez ouvrir un tampon shell à
M-x shell
partir de là et vous connecter au nœud de connexion, puis vous connecter à la session interactive parqsub -I
. Une fois que vous êtes dans la session interactive, démarrez une session R en tapant la commandeR
. Là, vous pouvez le faireM-x ess-remote
. Cela demandera un mini-tampon demandant quel programme vous souhaitez exécuter (R, S +, Stata, etc.) Une fois que vous sélectionnez R, vous pouvez utiliser la session R sur le shell distant comme vous utilisez ESS sur la machine locale.J'ouvre personnellement les scripts enregistrés dans le nœud distant en y marchant (dans une fenêtre séparée) et je travaille avec la session R connectée par le
ess-remote
comme décrit ci-dessus. De cette façon, la session R peut interagir directement avec les scripts avec lesquels je travaille. (Par exemple, lasource('code.R')
commande dans R pourra lire le 'code.R' dans le cluster HPC, que je viens peut-être de modifier. Si je modifiais plutôt des scripts sur ma machine locale, la session ess-remote de R ne le ferait pas '' t être en mesure de les lire à moins que je les télécharge à chaque fois sur le nœud distant.)la source