C ++ में पैरामीटर अध्ययन चलाने का एक अच्छा तरीका क्या है


29

समस्या

मैं वर्तमान में एक परिमित तत्व नवियर स्टोक्स सिमुलेशन पर काम कर रहा हूं और विभिन्न प्रकार के मापदंडों के प्रभावों की जांच करना चाहता हूं। कुछ पैरामीटर इनपुट फ़ाइल में या कमांड लाइन विकल्पों के माध्यम से निर्दिष्ट किए जाते हैं; अन्य मापदंडों को मेकफाइल में झंडे के रूप में प्रदान किया जाता है, इसलिए जब भी मैं उन विकल्पों को बदलता हूं तो मेरे कोड को फिर से स्थापित करना पड़ता है। मुझे पैरामीटर स्थान को व्यवस्थित रूप से देखने के लिए एक अच्छे तरीके के बारे में कुछ सलाह लेने में दिलचस्पी होगी।

  • क्या उपयोगी सी ++ / पायथन लाइब्रेरी / फ्रेमवर्क हैं जो इस तरह की चीज के साथ मदद कर सकते हैं? उदाहरण के लिए बूस्ट.प्रोग्राम_ऑप्टेशन की खोज एक बड़ी मदद थी क्योंकि कमांड लाइन के तर्कों के साथ इनपुट फ़ाइल विकल्पों को अधिभार देना संभव है। मैंने कुछ लोगों को प्रत्येक मामले का प्रभावी ढंग से वर्णन करते हुए एक नौकरी फ़ाइल का उपयोग करते हुए भी देखा है और एक कोलीग ने सुझाव दिया कि vtu फ़ाइलों में पैरामीटर लिखना क्योंकि टिप्पणी ब्लॉक भी काम कर सकते हैं।
  • शायद यह इस में ज्यादा समय निवेश करने लायक नहीं है? क्या यह सिर्फ एक व्याकुलता और एक समय-नाली है और परीक्षण प्रक्रिया ब्रूट फोर्स और तदर्थ के माध्यम से सिर्फ मांसपेशियों के लिए सबसे अच्छा है?

कुछ विचार

मैं वर्तमान में ज्यादातर चीजें हाथ से कर रहा हूं और मुझे निम्नलिखित समस्याओं का सामना करना पड़ा है:

  • नामकरण परीक्षण मामले । मैंने अंडरस्कोर के साथ अलग किए गए रन मापदंडों के नाम वाले फ़ोल्डरों में परिणाम संग्रहीत करने की कोशिश की Re100_dt02_BDF1...। यदि वे बहुत अधिक संक्षिप्त रूप से पढ़ते / पढ़ते हैं तो ये जल्दी से लंबे या कठिन हो जाते हैं। इसके अलावा, वास्तविक संख्या मापदंडों में एक .अजीब या बदसूरत शामिल है।
  • लॉगिंग रन डेटा । कभी-कभी मैं टर्मिनल को लिखे गए परिणामों को देखना चाहता हूं और एक पाठ फ़ाइल में भी सहेजा जाता है। उदाहरण के लिए StackOverflow का यह उत्तर कुछ हद तक मददगार है, लेकिन समाधान थोड़ा पेचीदा लगता है।
  • पैरामीटर के अनुसार डेटा प्लॉट करना । यह एक लॉग फ़ाइल की एक किस्म से प्रासंगिक डेटा एकत्र करने में काफी समय लेता है, जिसे मैं तब बेहतर सिस्टम के साथ साजिश कर सकता हूं, शायद यह आसान हो जाएगा।
  • डेटा पर टिप्पणी रिकॉर्ड करना । परिणामों की जांच करने के बाद, मैं एक पाठ फ़ाइल में कुछ टिप्पणियां लिखता हूं, लेकिन इसे रखने के परिणाम फ़ोल्डर के साथ सिंक करना कभी-कभी मुश्किल होता है।

बहुत कुछ इस बात पर निर्भर करता है कि आप '' एक्सप्लोर '' से क्या मतलब रखते हैं। कृपया अपने लक्ष्यों को अधिक सटीक रूप से बताएं।
अर्नोल्ड न्यूमैयर

जवाबों:


10

आपके दो बिंदुओं पर कुछ टिप्पणियाँ:

  • लॉगिंग रन डेटा : आपका सबसे अच्छा शर्त शायद आउटपुट के माध्यम से पाइपिंग है टी कमांड के , जो कि अधिकांश शेल में उपलब्ध होना चाहिए।

  • पैरामीटर के अनुसार डेटा प्लॉट करना : मुझे लगता है कि यह स्वाद की बात है, लेकिन जब मुझे जटिल डेटा एकत्रीकरण करना होता है, तो मैं परिणामों को सादे पाठ में संग्रहीत करता हूं, उन्हें मेट्रैबल्स के रूप में मैटलैब में पढ़ता हूं, और सभी कम्प्यूटेशन, प्लॉटिंग और यहां तक ​​कि LaTeX आउटपुट भी करता हूं वहां से। जाहिर है, जिस भी प्रोग्रामिंग / स्क्रिप्टिंग भाषा से आप सबसे अधिक परिचित हैं, वह आपको सर्वोत्तम परिणाम देगी।


धन्यवाद, teeकमांड बहुत उपयोगी है
मतिजा केमैन

11

यदि आप कुछ सामान्य उद्देश्य लिखना चाहते हैं, तो आप इसे शेल स्क्रिप्ट्स के साथ भी कर सकते हैं यदि यह कुछ बहुत सरल है, जैसा कि पेड्रो सुझाव देता है , या एक उच्च-स्तरीय गणितीय प्रोग्रामिंग भाषा जैसे कि पायथन या MATLAB में एकत्र करता है। मैं इस बात से सहमत हूँ कि सादा पाठ फ़ाइलें कम मात्रा में डेटा के लिए उपयोगी होती हैं, लेकिन आपको शायद कुछ मेगाबाइट से बड़ी किसी चीज़ के लिए बाइनरी डेटा पर स्विच करना चाहिए।

दूसरी ओर, यदि आप केवल पैरामीटर आकलन कर रहे हैं, तो मैं इसके लिए विशेष रूप से अनुकूल सॉफ़्टवेयर के एक टुकड़े का उपयोग करने की सलाह दूंगा । मेरे विश्वविद्यालय के कई शोधकर्ताओं ने DAKOTA के साथ शुभकामनाएं दी हैं, Sandia राष्ट्रीय प्रयोगशालाओं के बाहर अनिश्चितता मात्रा का ठहराव टूलबॉक्स ( GNU लेसर जनरल पब्लिक लाइसेंस के तहत उपलब्ध है।

यहां सांडिया पृष्ठ से एक अंश का वर्णन किया गया है:

हम उपयोगकर्ता को मॉडल इनपुट के संबंध में मॉडल आउटपुट की संवेदनशीलता का आकलन करने के लिए कंप्यूटर सिमुलेशन के संग्रह को चलाने की अनुमति देने के लिए कई तरीके प्रदान करते हैं। सामान्य श्रेणियों में पैरामीटर अध्ययन, नमूने के तरीके और प्रयोगों के डिजाइन शामिल हैं। पैरामीटर अध्ययनों में एक इनपुट सीमा के माध्यम से कुछ इनपुट मापदंडों को निर्धारित करता है, जबकि अन्य इनपुट मापदंडों को निर्धारित करता है और मूल्यांकन करता है कि आउटपुट कैसे बदलता है। नमूनाकरण विधियों में, एक इनपुट स्पेस वितरण से नमूने उत्पन्न करता है और इनपुट मानों पर आउटपुट प्रतिक्रिया की गणना करता है। DAKOTA के भीतर उपलब्ध विशिष्ट नमूना तरीकों में मोंटे कार्लो, लैटिन हाइपरक्यूब, और (जल्द ही आने वाला) अर्ध-मोंटे कार्लो शामिल हैं। प्रयोगों के डिजाइन में आउटपुट को प्रतिनिधि तरीके से अंतरिक्ष के नमूने के लिए चुने गए इनपुट "डिज़ाइन" बिंदुओं के एक सेट पर मूल्यांकन किया जाता है। DAKOTA के भीतर उपलब्ध प्रयोग विधियों के विशिष्ट डिजाइन में बॉक्स-बेहेनकेन, सेंट्रल कम्पोजिट और फैक्टरियल डिज़ाइन शामिल हैं। संवेदनशीलता मेट्रिक्स इनपुट पर आउटपुट की निर्भरता को व्यक्त करने का एक गणितीय तरीका है। डकोटा के भीतर विभिन्न प्रकार की संवेदनशीलता मीट्रिक उपलब्ध हैं, जैसे कि सरल और आंशिक सहसंबंध गुणांक और रैंक सहसंबंध। हमारा वर्तमान शोध कम से कम रनों के साथ संवेदनशीलता मीट्रिक उत्पन्न करने के तरीकों पर और बाइसियन विश्लेषण तकनीकों का उपयोग करते हुए कंप्यूटर मॉडल में मापदंडों के इष्टतम अनुमान पर केंद्रित है।


इस तरह का एक अन्य उपकरण जर्मनी में GRS द्वारा विकसित SUSA है। लेकिन यह एक स्वतंत्र नहीं है।
GertVdE

द्विआधारी प्रारूपों के साथ समस्या यह है कि उन्हें बनाए रखना अधिक कठिन है, समय के साथ विकसित होने के लिए फ़ाइल-प्रारूप के लिए यह असामान्य नहीं है, इसलिए द्विआधारी प्रारूप का समर्थन और समर्थन एक दर्द हो सकता है। मेरे अनुभव में, सादा पाठ, कम्प्रेशन (gzip), और थोड़ी सी कमांड लाइन या पायथन सभी को एक साथ मिलाकर कुछ सौ जीबी तक भी ठीक काम करता है।
fcruz

1
@fcruz हाँ, या जो पाठ के लिए bzip2और 7zipभी बेहतर संपीड़न अनुपात प्रदान करते हैं।
अजासजा

8

मेरे डॉक्टरेट के काम के लिए, मैं आपके समान मुद्दों पर चल रहा हूं। चूंकि यह मेरा कोड नहीं है जिसका मैं उपयोग कर रहा हूं, हालांकि, मेरे पास उतना लचीलापन नहीं है जितना आप करते हैं। उस ने कहा, मेरे पास कुछ सुझाव हैं।

जैसा कि पेड्रो ने सुझाव दिया था, टी कमान है। लेकिन, अगर यह उपलब्ध नहीं है, या आप अपने सॉफ़्टवेयर में ही कुछ बनाना चाहते हैं, तो मैं boost::iostreamsलाइब्रेरी को देखने का सुझाव दूंगा। यह इनपुट स्रोतों और आउटपुट सिंक को परिभाषित करने के लिए तंत्र प्रदान करता है जो मानक पुस्तकालय नहीं करता है। विशेष रूप से, वह है tee_deviceजो आपको अपनी स्ट्रीम में दो आउटपुट सिंक कनेक्ट करने की अनुमति देता है, और अन्य धाराएं सिंक के रूप में कार्य कर सकती हैं। यह आपको एक साथ आउटपुट stdoutऔर लॉग-फाइल कॉन्फिगर निर्भर बनाने की अनुमति देगा ।

मैं उससे सहमत हूं boost::program_options आपके सॉफ़्टवेयर को कॉन्फ़िगर करने में बहुत मददगार हो सकता है। हालाँकि, इसमें कुछ दोष हैं, जो प्रभावित कर सकते हैं कि आप चीजों को कैसे करते हैं, हालांकि। सबसे पहले, यदि आपको एक पदानुक्रमित कॉन्फ़िगरेशन की आवश्यकता है,1iniboost::program_optionsboost::property_tree

विभिन्न गणनाओं से डेटा इकट्ठा करने के लिए, मैं उन सभी डेटा फ़ाइलों पर लूप करता हूं जिन्हें मैं एक सेट में शामिल करना चाहता हूं, फिर मैं awk का उपयोग करता हूं फ़ाइल में एकल लाइन का उत्पादन करने के लिए का , और सभी परिणामों को अपने आउटपुट में पाइप करता हूं। इसमें कुछ मिनट लग सकते हैं, लेकिन दुर्भाग्य से, मेरे पास बेहतर तरीका नहीं है।

आपके डेटा पर प्रसंस्करण / टिप्पणी के रूप में, मैं पर्याप्त रूप से गणित के नोटबुक प्रारूप की उपयोगिता पर जोर नहीं दे सकता। यह मुझे अपनी टिप्पणियों, अटकलों और विज़ुअलाइज़ेशन को एक ही स्थान पर व्यवस्थित करने की अनुमति देता है। मेरी नोटबुक नियमित रूप से शीर्ष 100 एमबी है, हालांकि। अच्छे उपाय के लिए, Mathematica मैट्रिक्स कार्यों पर सिर्फ Matlab के साथ-साथ प्रदर्शन करता है। इसके अतिरिक्त, इसका उपयोग वास्तविक समय में पूर्ण गणितीय प्रारूपण के साथ नोट्स लेने के लिए किया जा सकता है ।

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

1. एक उदाहरण के रूप में जहां पदानुक्रमित कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है, मेरा एक दोस्त विभिन्न टिप ज्यामिति के प्रभावों की जांच कर रहा था। AFM और प्रत्येक ज्यामिति में मापदंडों का एक अलग सेट था। इसके अतिरिक्त, वह कई गणना योजनाओं का परीक्षण कर रहा था, ताकि वह प्रयोग करने के लिए उनकी तुलना कर सके, और उनके पास अलग-अलग पैमाने थे।


1
मैं हाल ही में क्या कर रहा हूं कि मैं सिमुलेशन को मैथेमेटिका से चलाता हूं। कॉन्फ़िगरेशन फ़ाइलों, इनपुट फ़ाइलों आदि का उपयोग करने और सिमुलेशन को कमांड-लाइन प्रोग्राम बनाने के बजाय, मैं सिर्फ एक लाइब्रेरीलिंक इंटरफ़ेस को Mathema को परिभाषित करता हूं। इस तरह मैं एक संरचित तरीके से मापदंडों या डेटा को पारित कर सकता हूं, और मैं सभी प्रकार के कमांड लाइन विकल्प / इनपुट-आउटपुट फ़ाइल स्वरूपों को संभालने के दर्द से बच सकता हूं। मुझे विज़ुअलाइज़ेशन / प्लॉटिंग की त्वरित पहुँच मिलती है और मैं आसानी से जटिल परिदृश्यों के लिए अलग-अलग मापदंडों के लिए सिमुलेशन चलाने को स्वचालित कर सकता हूं।
स्ज़बोल्क्स

(यह है कि मैं अनुकूली नमूना लेने की चीज के साथ कैसे काम करता हूं । अगर मैं कमांड लाइन से अपने कार्यक्रम को बुला रहा था, तो इस तरह से कुछ को लागू करना बहुत अच्छा काम है और बहुत परेशानी के बिना शुरू करना बहुत अच्छा कारण है। यह विचार नहीं है। शुद्ध प्रयोग से बाहर आने की संभावना है। मैथेमेटिका जैसी उच्च स्तरीय प्रणाली का उपयोग करने से प्रयोग काफी आसान हो गया है कि यह विचार स्वाभाविक रूप से आया। मुझे लगता है कि कोई अन्य उच्च स्तरीय प्रणालियों का उसी तरह से उपयोग कर सकता है।)
शैबॉलेक्स

आपके उपयोगी उत्तर के लिए धन्यवाद, मैं एक नज़र डालूंगा boost::property_tree। इसके साथ एक और समस्या boost::program_optionsयह है कि यह हेडर-ओनली लाइब्रेरी के रूप में अनुपयोगी प्रतीत होता है, जो एक अजीब बात है यदि आप अपने आवेदन को एक ऐसी मशीन पर चलाना चाहते हैं जिसमें केवल हेडर को बढ़ावा मिले। संयोग से, किसी को पता है कि यह क्यों है? जाहिरा तौर पर यह वैसे भी काफी छोटा पुस्तकालय है। (शायद यह बढ़ावा देने वाले उपयोगकर्ताओं की सूची पर इसे पोस्ट करना बेहतर है)
मतिजा केमैन

@ mk527 मुझे नहीं पता कि boost::program_optionsइसे लाइब्रेरी में बनाने के लिए क्या करना चाहिए। हालांकि, क्या आपने बढ़ावा देने का सबसेट निकालने के लिए bcp उपयोगिता पर ध्यान दिया है ?
रंगोली

3

PETSC स्थापित करते समय मुझे PyTables का पता चल जाता है। और मुझे लगता है कि तालिका (या डेटाबेस) विधि पैरामीटर स्थान की खोज के लिए अच्छी तरह से अनुकूल है, हालांकि मैंने अभी तक कोशिश नहीं की है। हम प्रत्येक रन को विशिष्ट मापदंडों के साथ रिकॉर्ड कर सकते हैं और फिर हम कुछ स्थितियों को संतुष्ट करते हुए किसी भी एकत्रीकरण से परामर्श कर सकते हैं, कहते हैं, हम dt, BDF1 को ठीक कर सकते हैं और अन्य मापदंडों के कारण भिन्नता का अध्ययन करने के लिए सभी प्रासंगिक रिकॉर्ड देख सकते हैं।

मैं उन लोगों से सुनना चाहूंगा जो वास्तव में पैरामीटर स्थान की खोज के लिए तालिका (या डेटाबेस) विधि का उपयोग कर रहे हैं। मैं विस्तृत विस्तार के लिए सराहना करूंगा।


3

जैसे आप करने की कोशिश कर रहे हैं पैरामीटर की खोज बहुत जल्दी अनिष्टकारी हो सकती है। ऐसा करने के इतने अलग-अलग तरीके हैं कि कोई वास्तविक समाधान नहीं है।

आमतौर पर जब आप अपने काम में इस सीमा तक पहुंचते हैं, तो आप पदानुक्रमित डेटा प्रारूपों HDF5 की जांच कर सकते हैं । HDF5 आपको एक अच्छी तरह से परिभाषित फ़ाइल प्रारूप में अपने सिमुलेशन के जटिल आउटपुट को स्टोर करने की अनुमति देता है। लाभ यह है कि आपके डेटा को एक अच्छी तरह से परिभाषित फ़ाइल प्रारूप में संग्रहीत किया जाता है। आप अपनी फ़ाइल में, विभिन्न मापदंडों द्वारा पहचाने गए, कई सिमुलेशन रन जोड़ सकते हैं, और बाद में उनमें हेरफेर कर सकते हैं। डेटा को संपीड़ित किया जा सकता है और विभिन्न उपकरणों का उपयोग करके बाहर निकालना काफी आसान है। C / c ++ / python आदि के लिए एपिस करना आसान है और फाइलों में हेरफेर करने के लिए बहुत सारे कमांड लाइन टूल हैं। एक नुकसान यह है कि hdf5 को लिखना कंसोल के लिए लिखने जितना आसान नहीं है। एचडीएफ 5 उदाहरणों में कई उदाहरण कार्यक्रम हैं


2

आप चर मानों की एक अनुक्रमित तालिका रखना चाहते हैं। सूचकांक एक फ़ोल्डर से मेल खाता है जहां आप प्रत्येक सिमुलेशन इनपुट और आउटपुट रखते हैं। तो यह सिर्फ एक सूचकांक है और आपको कन्वेंशन या फ़ोल्डर पदानुक्रम के नामकरण के बारे में चिंता करने की ज़रूरत नहीं है क्योंकि आप देखेंगे कि प्रत्येक फ़ोल्डर में कौन से पैरामीटर मान हैं।

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

यह मूल विचार है, और मैं वर्णन कर रहा हूं कि आप केवल वैचारिक रूप से क्या करना चाहते हैं। अपनी प्रारंभिक प्रतिक्रिया में, मैंने सुझाव दिया कि जो ढांचा मैंने विकसित किया है, उसे देखना। अभी हाल ही में मैंने सुमात्रा की खोज की है । यह मेरे व्यक्तिगत रूप से विकसित, संघर्षरत स्नातक छात्र और अजगर के प्रयास के मुकाबले बहुत अधिक विकसित है, लेकिन मुझे लगता है कि यह बहुत अधिक करने की कोशिश करता है। यह सिद्ध सूचना पर केंद्रित है जबकि मेरा ढांचा वर्कफ़्लो दक्षता पर केंद्रित है। इसमें जॉबमैन , पवित्र और लिनेट भी है

आप जो भी करने का चयन करते हैं, मैं अजगर को इस प्रकार के कार्यों से निपटने के लिए दृढ़ता से सलाह देता हूं क्योंकि आप अजगर के साथ अपने पूरे वर्कफ़्लो का प्रबंधन कर सकते हैं। बस एक छोटी सी कहानी के रूप में, मैंने अपने सहयोगियों को DAKOTA, बैश, GNUplot, फ़ाइल नामकरण सम्मेलनों, sed / awk octave ... आदि के साथ काम करते देखा। उनके कम्प्यूटेशनल काम करने के लिए। इनमें से प्रत्येक उपकरण अपने दम पर ठीक है लेकिन एक एकीकृत गोंद भाषा के रूप में अजगर की शक्ति वास्तव में चमकती है जब आप अजगर वैज्ञानिक ढेर के साथ अपने काम के प्रबंधन के लिए अजगर का उपयोग करते हैं। जब मैंने अपना ढांचा विकसित किया, तब मैंने अपने कम्प्यूटेशनल कार्यों का प्रबंधन शून्य मुद्दों पर किया था।

/ मेरी प्रारंभिक प्रतिक्रिया इस प्रकार है /

मेरा मानना ​​है कि मैंने अजगर का उपयोग करके इस समस्या को हल किया है। मैंने इन सभी मुद्दों के बारे में सोचा है।

मेरे रेपो http://msdresearch.blogspot.com/2012/01/parameter-study-management-with-python.html देखें

हालाँकि, अब मैं अपने ढांचे के बेहतर दस्तावेजीकरण पर काम कर रहा हूँ। (यह एक रीडमी में भरने से अधिक शामिल है!)

-मजीद अलदोसारी


1
हाय माजिद, योगदान के लिए धन्यवाद और SciComp में आपका स्वागत है। सामान्य तौर पर, StackExchange साइटें बाहरी पृष्ठों से लिंक करने को हतोत्साहित करती हैं, और साइट पर ही विस्तृत उत्तरों को प्रोत्साहित करती हैं। एकल-लिंक "विज्ञापन" दृढ़ता से हतोत्साहित किए जाते हैं। मैं इस उत्तर को संशोधित करने या हटाने का सुझाव दूंगा, क्योंकि यह संभवतः अपने वर्तमान स्वरूप में अच्छी तरह से प्राप्त नहीं होगा।
एरन अहमदिया

समझ लिया। मुझे विश्वास नहीं है कि समाधान पोस्ट के रूप में दिया जा सकता है। समस्या काफी सामान्य है।
माजिदालदोसारी

1
क्या आप कम से कम इन मुद्दों के बारे में अपने दृष्टिकोण को संक्षेप में बता सकते हैं जिनके बारे में आपने सोचा है?
क्रिश्चियन क्लैसन

1

मैं निम्नलिखित कार्यान्वयन में सहमत हूं, जिसे मैंने अपने जांच कार्य के दौरान विकसित किया था, जैसा कि यहां , यहां और यहां पाया जा सकता है

कार्यक्रम में चर पास करने और फिर बदलने में सक्षम होने के लिए, मैं एक बैश स्क्रिप्ट का उपयोग करने के प्रतिमान का उपयोग करता हूं जहां वे परिभाषित करते हैं

export aValue=10
export bValue=2
export idName=test

और फिर C / C ++ में उपयोग करें

char *env_aValue = getenv("aValue");
char *env_bValue = getenv("bValue");
char *env_idName = getenv("idName");

aValue = atoi(env_aValue)
...

इसका बड़ा लाभ यह है कि:

  • इसे वैश्विक दायरे में पहुँचा जा सकता है,
  • यह सूरज ग्रिड इंजन (क्लस्टर) के लिए पोर्टेबल है,
  • बैश स्क्रिप्ट पर आसानी से बदला जा सकता है,
  • यह प्लेटफ़ॉर्म स्वतंत्र है,
  • मापदंडों की संख्या बहुत बड़ी हो सकती है (संभावित रूप से अनंत)

इसके अलावा, मैं हमेशा एक idName पास करता हूं, जिस पर उस निष्पादन योग्य द्वारा लिखी गई प्रत्येक फ़ाइल की प्रारंभिक पहचान होगी (यदि आप चाहें तो अन्य मापदंडों का पालन किया जा सकता है), और वे एक निर्यात निर्देशिका = idName भी प्राप्त करते हैं, जो दूसरे पर बनाई गई है बैश स्क्रिप्ट, और उस निष्पादन योग्य की सभी फाइलें उस पर सहेजी जाती हैं। इस तरह से परिणाम निर्देशिका (वैकल्पिक) द्वारा आयोजित किए जाते हैं।


0

आप sfepy की जाँच कर सकते हैं, जो कि अजगर में लगभग पूरी तरह से कोडित एक परिमित तत्व कार्यक्रम है। इसका नमूना नवियर स्टोक्स की समस्या भी है। Sfepy की संचालन प्रक्रिया बहुत आसान है।


1
मुझे ऐसा नहीं लगता कि यह प्रतिक्रिया सवाल का जवाब देती है। पोस्टर में एक सिमुलेशन है; मुझे लगता है कि वह अपने मौजूदा सिमुलेशन के चारों ओर एक रूपरेखा लपेटना चाहता है, न कि पूरी तरह से अलग सॉफ्टवेयर में अपने सिमुलेशन को फिर से करना।
ज्योफ ऑक्सीबेरी

sfepy एक ढांचे के रूप में भी काम करता है, एक इसे एक ब्लैक बॉक्स PDE सॉल्वर के रूप में उपयोग कर सकता है। लेकिन मुझे लगता है कि आप सही हैं क्योंकि पोस्टर ने कोडिंग में पहले से ही महत्वपूर्ण समय बिताया है।
शैडोवर्यर

0

क्या आपने MySQL डेटाबेस का उपयोग करने के बारे में सोचा है? मैंने इसे कभी नहीं किया है, लेकिन मैं कल्पना कर सकता हूं, कि आप इस प्रणाली को बहुत अच्छे से क्वेरी कर सकते हैं! शायद MongoDB जैसे अन्य सिस्टम बेहतर हैं। तो, यह सिर्फ एक विचार है।

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