बैक एंड नंबर क्रंचिंग के लिए एचपीसी संसाधनों के साथ डेस्कटॉप सॉफ्टवेयर


17

हमारा कार्यसमूह एक डेस्कटॉप एप्लिकेशन का निर्माण करता है जो ऊर्जा प्रदर्शन का निर्माण करता है। यह एक .NET अनुप्रयोग है और जब उपयोगकर्ता बहुत अधिक सिमुलेशन चला रहा है, तो वे काफी समय लेने वाले हो सकते हैं। सिमुलेशन पूरी तरह से समानांतर हैं, और हमारे पास "कार्यालय" में कुछ बहुत महत्वपूर्ण एचपीसी कंप्यूटिंग संसाधन हैं।

हमारे पास एक विचार यह है कि उपयोगकर्ताओं को उन सिमुलेशन को बंद करने की अनुमति दें जिन्हें हम जानते हैं कि वे बहुत लंबे समय तक चलने वाले होंगे (जबकि प्रत्येक व्यक्तिगत सिमुलेशन लगभग 30-120 सेकंड चलता है, बड़ी संख्या में सिमुलेशन चलने में कई दिन लग सकते हैं)। क्या किसी ने इसे पहले किया है? यदि हां, तो क्या आपने नौकरी को आसान बनाने के लिए किसी पुस्तकालय का उपयोग किया है? क्या यह प्रयास के लायक था?

जोड़ने के लिए संपादित:

अनुकार को उतारने के लिए अलग-अलग कार्य होंगे

  • एक फ़ाइल पैकेजिंग (लगभग 5Mb),
  • इसे हमारे सर्वर पर अपलोड करना,
  • व्यक्तिगत सिमुलेशन में पैकेज को विघटित करना (प्रत्येक के बारे में 30-120 सेकंड और पूरी तरह से समानांतर है), सिमुलेशन की संख्या उपयोगकर्ता द्वारा चुने गए विकल्पों की संख्या का एक फ़ंक्शन है (इन्सुलेशन, भवन अभिविन्यास, आदि) और चयन का सबसे खराब मामला। हर संभव विकल्प के बारे में 1E50 सिमुलेशन में परिणाम होगा। 100 से ~ 1E5 सिमुलेशन चलाना अज्ञात नहीं है, लेकिन अधिकांश उपयोगकर्ता 10 से कम चलेंगे।
  • पूरा सिमुलेशन और अब बहुत बड़ी फ़ाइल डाउनलोड करने का आश्वासन दे।

हमें यकीन नहीं है कि कौन सा इंटरफ़ेस उपयोग करना है, क्योंकि हमारा समूह इसके लिए नया है, और बजट में कटौती के साथ, यह समय में पूरा हो सकता है, लेकिन अगले लोगों (यदि कोई हो) को बनाए रखने के लिए आसान होना चाहिए।

यह ऐप पहले से ही .NET 4 का उपयोग करता है और उपयोगकर्ता के पास सभी कोर का उपयोग करने के लिए विस्तार कर सकता है (हमारे देव मशीनों में 8 कोर हैं)।


मैं बिल्कुल स्पष्ट नहीं हूं कि आप वास्तव में यहां किस लिए जा रहे हैं - क्या एचपीसी अंत हमेशा आपके सर्वर या अन्य समर्पित सर्वरों पर होने वाला है? (यदि ऐसा है, तो इसे बहुत आसान बना देना चाहिए क्योंकि आप बहुत अधिक सर्वर-साइड करने में सक्षम हो सकते हैं।)
ऐसिन

@Aesin, एचपीसी अंत हमारे सर्वर पर होगा, हाँ। मौजूदा एप्लिकेशन और नया संस्करण उपयोगकर्ताओं के डेस्कटॉप पर सिमुलेशन चलाते हैं। मैं अगले संस्करण के लिए आगे सोचने के लिए सलाह / सिफारिशों की तलाश कर रहा हूं ताकि बड़े उपयोगकर्ताओं के लिए एचपीसी का उपयोग करने में सक्षम हो।
तंगुरेना

जवाबों:


10

आप कोंडोर का उपयोग करने पर विचार कर सकते हैं: http://research.cs.wisc.edu/condor/ । यह ओवरकिल हो सकता है, इस पर निर्भर करता है कि आप किस प्रकार के एचपीसी संसाधनों के बारे में बात कर रहे हैं और वे कितना बदल जाएंगे। हालाँकि, इसकी शुरुआत करना काफी आसान है, और यह स्वतंत्र नौकरियों, दोष सहिष्णुता, भार संतुलन आदि को लॉन्च करने का ध्यान रखता है।

यह अधिक उपयोगी होगा यदि आप व्यक्तिगत कार्यों के बारे में अधिक विशिष्ट थे (कब तक, कैसे अतुल्यकालिक) और बातचीत के लिए आप किस इंटरफ़ेस का उपयोग करेंगे (लॉन्च प्रक्रिया, लाइब्रेरी, आदि)

मैट


मुझे यकीन नहीं है कि अगर कंडक्टर .net (विंडोज?) के साथ काम करेगा, लेकिन हमारा कार्य समूह लिनक्स पर कंडक्टर का उपयोग करता है और मैं इसे नौकरी प्रस्तुत करने के लिए सिफारिश कर सकता हूं +1
सेबस्टियन

कंडक्टर फ़ाइल सिस्टम के माध्यम से संवाद कर सकता है, इसलिए इसे .NET का पालन करने की आवश्यकता नहीं है। यह विंडोज पर चलता है।
मैट नेप्ले

5

यदि आप .NET दुनिया में हैं, तो क्या आपने .NET 4 में मल्टी-थ्रेडिंग समर्थन को देखा है; और अतुल्यकालिक विशेषताएं जो .NET 4.5 में जोड़ी जा रही हैं?

मल्टीथ्रेडिंग आपको अन्य मशीनों के लिए प्रसंस्करण को बंद करने में मदद नहीं करता है, लेकिन यह आपको इन दिनों का उपयोग करने वाले मल्टीकोर पीसी का बेहतर उपयोग करने देता है। 4.0 में इस संबंध में कुछ अच्छी विशेषताएं हैं।

4.5 वर्तमान में प्रौद्योगिकी पूर्वावलोकन में है - इसलिए यह देखने लायक है कि क्या यह मदद करेगा। MSDN में एक लेख था जो पिछले महीने या तो (अक्टूबर या नवंबर, और निश्चित रूप से सेप्ट से पहले नहीं) में नई अतुल्यकालिक सुविधाओं को पेश करता है। ऐसा लग रहा था कि इन विशेषताओं को पारंपरिक रूप से कम समानांतर कोड को समानांतर बनाने के तरीके के रूप में धकेला जा रहा था, लेकिन IIRC में उन्होंने कुछ मल्टी-सर्वर सपोर्ट को भी शामिल किया।


4

उत्तर इस बात पर निर्भर करता है कि आपके पास एचपीसी बैकएंड के रूप में क्या है। सवाल NREL उपयोगकर्ताओं के लिए उपलब्ध मौजूदा संसाधनों को संदर्भित करता है। लिनक्स क्लस्टर और विंडोज कंप्यूट क्लस्टर सर्वर पर आधारित एक विंडोज क्लस्टर हैं।

  1. लिनक्स क्लस्टर का उपयोग करने के लिए लेखक को यह सुनिश्चित करने की आवश्यकता है कि मोनो पर सिमुलेशन दिनचर्या चलती है (लिनक्स के लिए .NET प्लेटफ़ॉर्म का कार्यान्वयन) और सुनिश्चित करें कि मोनो नोड्स पर स्थापित है।

  2. अगला सवाल यह है कि क्या उपयोगकर्ताओं के पास गणना समूहों पर खाते हैं और डेटा को नोड्स तक पहुंचा सकते हैं। सबसे सरल मामला स्थानीय पीसी से और नोड्स से सुलभ एकल फाइलसिस्टम के साथ है।

    मुझे यकीन नहीं है कि एनआरईएल उपयोगकर्ताओं के लिए इस तरह की फाइलसिस्टम उपलब्ध है, इसलिए कुछ नकल शामिल होगी। यह पहले से ही चीजों को जटिल बनाता है।

  3. अगला आवेदन नौकरी विवरण स्क्रिप्ट को संकलित करने में सक्षम होना चाहिए, इसे संबंधित क्लस्टर में जमा करें और जब तक नौकरी कतार से बाहर नहीं हो जाती तब तक सिमुलेशन की स्थिति के लिए कतार प्रणाली को क्वेरी करें।

  4. अंत में आवेदन परिणाम प्राप्त करने में सक्षम होना चाहिए।

यह सब उल्लेखनीय है, हालांकि यह तुच्छ नहीं है और इस विशेष प्रयोगशाला के सेटअप के लिए अत्यधिक विशिष्ट होगा।

Ansys या MSC के व्यावसायिक अनुप्रयोग उपयोगकर्ता को एक अनुकार नौकरी विवरण को बचाने देते हैं जो बाद में एक दूरस्थ क्लस्टर पर बैच मोड में चलाया जा सकता है।

यदि उपलब्ध हो तो ग्रिड के बुनियादी ढांचे का उपयोग करने के लिए एक अधिक सामान्य समाधान होगा।

अगला एक सेवा उन्मुख वास्तुकला के लिए जा सकता है जहां एक वेब-सेवा सिमुलेशन अनुरोधों की प्रतीक्षा करने के लिए कहीं स्थापित की गई है और उन्हें क्लस्टर पर भेज दिया गया है और इस प्रकार उपलब्ध संसाधनों की बारीकियों के ज्ञान से आवेदन को विघटित कर रहा है।

यह व्यापक रूप से कम्प्यूटेशनल बायोलॉजी में उदाहरण के लिए उपयोग किया जाता है, जहां प्रसंस्करण के लिए पूरी तरह से वेब-सेवा अनुरोधों से युक्त सिमुलेशन वर्कफ़्लोज़ की रचना करने के लिए उपकरणों का उपयोग किया जाता है।

बस ध्यान दें कि दूरस्थ कंप्यूटिंग संसाधनों के लिए ऑफ़लोडिंग कम्प्यूटिंग का उपयोग आमतौर पर एंड्रॉइड के लिए Google वॉइस मान्यता जैसे अनुप्रयोगों में किया जाता है।

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