पेट्सक और ट्रिलिनोस के बीच मुख्य अंतर क्या हैं?


24

जहाँ तक मेरा बता सकते हैं, ऊर्जा कम्प्यूटेशनल विज्ञान सॉफ्टवेयर चौखटे के दो बड़े सामान्य अमेरिकी विभाग हैं PETSc और Trilinos । वे पहली नज़र में समान लगते हैं, भाषा में अंतर से परे (C बनाम C ++)। दो रूपरेखाओं के बीच मुख्य अंतर क्या हैं, और किन कारकों को एक दूसरे को चुनने पर प्रभाव डालना चाहिए? (संस्थागत पूर्वाग्रह और मौजूदा बुनियादी ढांचे की उपेक्षा करें।)


1
थोड़ी देर पहले सीएफडी बोर्ड में कुछ पुरानी चर्चा (2009 से) हुई थी; शायद पूछने के लिए बेहतर सवाल है: उस समय से, दोनों पैकेजों के डिजाइन में महत्वपूर्ण परिवर्तन हुए हैं?
ऐस्मिज़ेल

अहमद, उस चर्चा को ज्यादातर पूर्ववर्ती लोगों पर केंद्रित है। मैं पुनरावृत्तियों के विचार-विमर्श की तुलना में व्यापक दृष्टिकोण की आशा कर रहा था। इसके अलावा, चूंकि scicomp पर PETSc के बारे में बहुत सी बातें हैं। मुझे लगा कि ट्रिलिनो को इसके लिए भी कुछ पोस्ट समर्पित करने चाहिए, और यह ऐसा लगता है जैसे किसी संभावित ट्रिलीनो उपयोगकर्ता से पहले प्रश्न पूछना चाहिए। मुझे ट्रिलिनो या पेट्सक के बारे में बहुत कुछ नहीं पता है, इसलिए मुझे लगा कि जवाब मुझे कुछ सीखने में मदद करेगा।
ज्योफ ऑक्सीबेरी

जवाबों:


19

संस्कृति, कोडिंग शैली और क्षमताओं में भारी अंतर हैं। संभवतः मूलभूत अंतर है त्रिलीनोस FEM समस्याओं को हल करने के लिए एक वातावरण प्रदान करने की कोशिश करता है और PETSc विरल रैखिक बीजगणित समस्याओं को हल करने के लिए एक वातावरण प्रदान करता है।

वह महत्वपूर्ण क्यों है?

  • Trilinos FEM solver के अलग-अलग हिस्सों से संबंधित बड़ी संख्या में पैकेज प्रदान करेगा। कभी-कभी ये पैकेज एक साथ काम करते हैं कभी-कभी वे नहीं करते हैं। यहां तक ​​कि आधार घटक अपने स्वयं के पैकेज और उन्नत सी ++ टूल में हैं
  • PETSC उन छोटे रूटों की एक छोटी राशि प्रदान करता है, जिन पर निर्माण किया जा सकता है, लेकिन FEM सॉल्वर्स को थर्ड पार्टी पैकेज पर छोड़ देता है। इस वजह से, यह केवल FEM की तुलना में एक बड़े समुदाय से जुड़ा हुआ है। उदाहरण के लिए, यहां तक ​​कि ईजन सॉल्वर भी थर्ड पार्टी है जो यकीनन रैखिक बीजगणित का एक प्रमुख हिस्सा है।
  • लब्बोलुआब यह है कि, ट्रिलीनो अपने स्वयं के पैकेजों के भीतर अच्छी तरह से काम करने पर ध्यान केंद्रित करता है और पेट्सक के पास ऐसे इंटरफेस हैं जो कई मिडलवेयर पैकेजों को कहते हैं (मैंने अक्सर इसे "हल्का-वजन" कहा है क्योंकि मैंने इसे दावा नहीं किया है)

IMHO, जिसे आपको वास्तव में उपयोग करना चाहिए समस्या पर निर्भर करता है। कृपया उस प्रश्न का उत्तर देने के लिए हमारे बारे में अधिक जानकारी साझा करें।


मेरे मन में कोई विशेष समस्या नहीं है। मैं PDEs को सुलझाने के लिए उन बड़े पैकेज में से एक के साथ हो रही अनुभव में दिलचस्पी रहा हूँ, और पक्ष-विपक्ष की एक विचार पाने के लिए इतना है कि मैं एक अधिक सूचित निर्णय के बारे में जो एक में अपने समय का निवेश करने की कर सकता है चाहता था।
ज्योफ Oxberry

11

यदि आप विभिन्न पैकेजों के तकनीकी लीड्स से सुनना चाहते हैं, तो सामान्य एचपीसी उपयोगकर्ता, ब्रॉक पालेन और जेफ स्क्वीरस के आरसीई पॉडकास्ट के दृष्टिकोण से प्रश्न लेना एक उत्कृष्ट संसाधन है। वे पर एपिसोड है PETSc और पर Trilinos जो बहुत स्पष्ट हैं।

aterrel उनके विवरणों में सही है - PETSc एक (तुलनात्मक रूप से) छोटे, एकीकृत, सामान्य प्रयोजन के रैखिक और कुछ नॉनलाइनियर सॉल्वरों के आउट-पैकेज, जो तब एक सॉल्वर फ्रेमवर्क में उपयोग कर सकता था; ट्रिलिनोस संकुल का एक संग्रह है, जो एकीकरण के साथ विकसित हो रहा है, जिसका उद्देश्य ज्यादातर उस सॉल्वर फ्रेमवर्क है, और इसमें ओडीई सॉल्वर, मेशिंग पैकेज आदि जैसी चीजें शामिल हैं।


7

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


3
अच्छी तरह से उन चीजों को जोड़ने के लिए जो ट्रिलिनोस के पास है कि PETSc नहीं है: स्वचालित भेदभाव, लोड संतुलन, आर्क निरंतरता के तरीके, अनुकूलन पैकेज। लेकिन इन सभी को 3 पार्टी पैकेज (जिनमें से कुछ ट्रिलिनो से हैं) द्वारा PETSc में बनाया गया है और इसे PETSc --download-foo कॉन्फ़िगर के साथ जोड़ा जा सकता है।
एटरेल

6

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

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


मुझे लगता है कि आपने केवल पुराने इंटरफेस का उपयोग किया है, क्योंकि कई नए बड़े पैमाने पर टेम्पलेट का उपयोग करते हैं।
अपरेल

यह ज्यादातर सच है। मुझे लगता है कि आपने "कक्षाओं से परे सी ++ का थोड़ा अन्य उपयोग" बयान पर टिप्पणी की थी। मेरा मतलब है कि यह अधिकांश स्थानों पर RTTI, अपवादों, एकाधिक उत्तराधिकार आदि का उपयोग नहीं करता है। यह समझने में अपेक्षाकृत सरल है कि क्या आप C और ऑब्जेक्ट ओरिएंटेशन को जानते हैं।
वोल्फगैंग बैंगर्थ

2

PETSc को बहुत आसानी से फोरट्रान के साथ प्रयोग किया जा सकता है और प्रलेखन / उदाहरण काफी अच्छे हैं।

मेरे लिए ट्रिलिनोस भ्रामक (अपने सभी उप-पैकेज और नामकरण योजना के साथ) और फोरट्रान समर्थन धब्बेदार थे (कम से कम जब मैंने इसे कुछ साल पहले देखा था)।

फोरट्रान से ट्रिलिनो के साथ बातचीत करने के दो तरीके हैं: (1) एक C ++ रैपर में कच्चे डेटा को पास करें जो आपके [ऐसे रैपरों के लिए कई पैकेजों के लिए मौजूद है] के लिए ट्रिलिनों पैकेजों को सभी कॉल करता है] या (2) नए फोरटीनिनो इंटरफेस का उपयोग करते हैं जो भारी फोरट्रान 2003 के ऑब्जेक्ट-ओरिएंटेड फीचर्स का प्रयोग करें। अधिकांश सुविधाओं के लिए फोर्सिलिनो की आवश्यकता अधिकांश कंपाइलरों में उपलब्ध है। इन सुविधाओं के संकलक कार्यान्वयन छोटी गाड़ी है, लेकिन तेजी से सुधार कर रहे हैं। फोरट्रिलिनो वर्तमान में आईबीएम और एनएजी संकलक के साथ बनाता है। क्रे, इंटेल, और पोर्टलैंड ग्रुप के वर्तमान या निकट-भविष्य के रिलीज़ सभी अपेक्षित रूप से मॉडुलो बग फिक्स का समर्थन करते हैं। आगामी जीसीसी 4.7.0 रिलीज में सभी आवश्यक विशेषताएं होंगी लेकिन एक, इसलिए व्यापक कंपाइलर समर्थन भविष्य में बहुत दूर नहीं है।

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