क्या Emacs एक दूरस्थ HPC नोड पर इंटरेक्टिव सत्र में चलने के लिए Tramp का उपयोग कर सकते हैं?


12

मैं दूरस्थ फ़ाइलों को लोड करने और एचपीसी कंप्यूटरों पर दूरस्थ आर प्रक्रियाओं को चलाने के लिए ईएसएस और ट्रैंप के साथ एमएसीएस का उपयोग कर रहा हूं। Ssh कीज़ के साथ, ट्रम्प ने आर सेशन लॉन्च करने के बाद C-x C-fफाइल को खोजना आसान बना दिया ।/ssh:myserver:/path/to/fileM-x R

हालांकि, एचपीसी कंप्यूटरों पर जो नौकरी शेड्यूलिंग सिस्टम (जैसे सन ग्रिड इंजन या टॉर्क) का उपयोग करते हैं, उन पर प्रतिबंध है कि सिर के नोड पर कितनी मेमोरी और सीपीयू का उपयोग किया जा सकता है, इसलिए मुझे उपयोग करके एक इंटरैक्टिव सत्र लॉन्च करना होगा qsub -I

क्या qsub -Issh कनेक्शन होने के बाद, दास नोड (उपयोग या समकक्ष) पर एक इंटरैक्टिव सत्र शुरू करने के लिए tramp, ssh और / या Emacs को कॉन्फ़िगर करना संभव है?


मुझे पूरी तरह से यकीन नहीं है कि सीमाएं क्या हैं?
PythonNut

@PythonNut मैं ट्रम्प का उपयोग करके हेड नोड के लिए ssh कर सकता हूं, लेकिन यह नहीं जानता कि फिर स्लेव नोड से कैसे जुड़ें (जो सीधे ssh के माध्यम से सुलभ नहीं है)।
डेविड लेबॉयर

ईएसएस को पहले एक अलग शेल लॉन्च करने के लिए कहना संभव नहीं लगता है, लेकिन tramp-remote-shellसेट के साथ qrshया qloginआप एक इंटरैक्टिव क्लस्टर सत्र प्राप्त करने में सक्षम हो सकते हैं।
रेकैडो

जवाबों:


5

ऐसा लगता है कि आपको tramp-methodsएक नई विधि को जोड़ना चाहिए , जो कि sudoविधि के समान है, लेकिन qsub -Iइसके बजाय उपयोग करता है । फिर आप पहले हेड नोड से कनेक्ट करने के लिए एक मल्टी-हॉप ट्रैंप पथ का उपयोग करने में सक्षम होंगे और फिर एक गणना नोड से कनेक्ट करने के लिए।

इसे इस्तेमाल करे:

(add-to-list 'tramp-methods
  '("qsub"
    (tramp-login-program        "qsub")
    (tramp-login-args           (("-I"))) ; other options here?
    ;; Local $SHELL could be a nasty one, like zsh or fish.  Let's override it.
    (tramp-login-env            (("SHELL") ("/bin/sh")))
    (tramp-remote-shell         "/bin/sh")
    (tramp-remote-shell-args    ("-c"))
    (tramp-connection-timeout   10)))

तुम तो जैसे एक आवारा पथ का उपयोग करेगा /ssh:myserver|qsub:myserver:/path/to/file

Qsub में जाने के लिए आपको अन्य विकल्पों को निर्दिष्ट करने की आवश्यकता हो सकती है; मैंने इसका उपयोग नहीं किया है इसलिए मैं वहां आपकी मदद नहीं कर सकता। आप उन अन्य विकल्पों को भी देखना चाहते हैं जिन्हें आप एक ट्रम्प विधि पर निर्दिष्ट कर सकते हैं; वहाँ tramp.el में सूचीबद्ध दर्जनों के एक जोड़े हैं।


3

मैं वही करने के लिए संघर्ष कर रहा हूं। मुझे एक अलग रास्ता मिला जिसने मुझे मूल रूप से एक ही काम करने की अनुमति दी।

आप एक शेल बफर खोल सकते हैं M-x shellऔर वहां से लॉगिन नोड से कनेक्ट करें, और फिर इंटरेक्टिव सत्र से कनेक्ट करें qsub -I। एक बार जब आप इंटरैक्टिव सत्र में होते हैं, तो कमांड टाइप करके आर सत्र शुरू करें R। वहां, आप कर सकते हैं M-x ess-remote। यह मिनी-बफर को संकेत देगा कि आप किस प्रोग्राम (R, S +, Stata, आदि) को चलाना चाहते हैं। एक बार जब आप R का चयन कर लेते हैं, तो आप R शेल सत्र को दूरस्थ मशीन पर उसी तरह उपयोग कर सकते हैं जैसे आप स्थानीय मशीन में ESS का उपयोग करते हैं।

मैं व्यक्तिगत रूप से इसे (एक अलग विंडो में) ट्रिम करके दूरस्थ नोड में सहेजे गए टेप को खोलता हूं और ess-remoteऊपर वर्णित के रूप में जुड़े आर सत्र के साथ काम करता हूं । इस तरह, आर सत्र सीधे उन लिपियों के साथ बातचीत कर सकता है, जिनके साथ मैं काम कर रहा हूं। (उदाहरण के लिए, source('code.R')R में कमांड HPC क्लस्टर में 'code.R' को पढ़ने में सक्षम होगा, जिसे मैंने अभी-अभी संपादित किया है। यदि मैं इसके बजाय अपने स्थानीय मशीन में रुपये का संपादन कर रहा होता, तो आर-कैन का निबंध-दूरस्थ सत्र। ' जब तक मैंने उन्हें दूरस्थ नोड पर अपलोड नहीं किया, तब तक उन्हें पढ़ने में सक्षम न हों।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.