घने मैट्रिस के लिए PETSc कितना उपयोगी है?


14

जहां कहीं भी मैंने देखा है, पेट्सक ट्यूटोरियल / दस्तावेज आदि कहते हैं कि यह रैखिक बीजगणित के लिए उपयोगी है और आमतौर पर निर्दिष्ट करता है कि विरल प्रणालियों को लाभ होगा। घने मैट्रिस के बारे में क्या? मैं घने ए के लिए को हल करने के बारे में चिंतित हूं ।Ax=bA

मैंने फोरन में CG और QMR के लिए अपना कोड लिखा है। बुनियादी निर्माण छद्म कोड के अलावा चीर और BLAS दिनचर्या जहां भी संभव (जोड़ने के लिए है ddot, dnrmऔर dgemvएक छोटे से आत्म ट्यूनिंग के साथ)। पेट्सक से इसकी तुलना कैसे होगी?

मुझे पता है कि सबसे अच्छा जवाब यह होगा कि मैं खुद इसे आज़माऊं लेकिन समय और अन्य कारणों के कारण यह संभव नहीं है।

किसी भी प्रकार की मदद की बेहद सराहना की जाती है।

जवाबों:


7

यदि आपके पास संरचना के साथ घने मैट्रीस हैं (उदाहरण के लिए तेजी से रूपांतर, शूर पूरक, आदि), तो पेट्स उपयोगी हो सकता है। इन मामलों में, आप पूर्ण मैट्रिक्स को असेंबल नहीं करेंगे।

इकट्ठे घने सिस्टम के लिए, PETS वर्तमान में PLAPACK का उपयोग करता है, लेकिन PETSc देशी प्रारूप में मैट्रिक्स वितरण संचार को कम करने के लिए सबसे अच्छा नहीं है (अधिकांश कार्यों के लिए)। जैक Poulson, मैट Knepley, और मैं उपयोग करने के लिए बीजगणित रैखिक PETSc के घने पोर्टिंग पर चर्चा की है मौलिक , बीजगणित पुस्तकालय रैखिक जैक और अधिक आधुनिक घने। यह अभी तक नहीं हुआ है, लेकिन हम यह तब करेंगे जब हमारे पास समय होगा।

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


यदि मैं साझा मेमोरी सिस्टम पर काम कर रहा हूं तो आपका जवाब क्या होगा?
inquest

1
आप कई MPI प्रक्रियाओं या कई pthreads का उपयोग कर सकते हैं। मुझे समानांतर सॉफ़्टवेयर लिखने में बहुत अधिक बिंदु नहीं दिखाई देते हैं जो केवल साझा मेमोरी के साथ काम करता है क्योंकि आमतौर पर मेमोरी इलाके के बारे में जो आप सोचते हैं कि वितरित मेमोरी के लिए लिखते समय सभी के सापेक्ष प्रदर्शन में सुधार होता है लेकिन सबसे अच्छा थ्रेडेड कार्यान्वयन। यदि आप केवल एक "सीरियल" एपीआई चाहते हैं जो घने रैखिक बीजगणित के लिए आंतरिक रूप से थ्रेड्स का उपयोग करता है, तो आप थ्रेडेड BLAS का उपयोग कर सकते हैं।
जेड ब्राउन

मैं चाहता हूं कि मेरे कोड मेरे Xeon 12 कोर वर्कस्टेशन पर काम करें (मैं अभी तक क्लस्टर्स नहीं देख रहा हूं)। मैं (थ्रेडेड) BLAS के लिए Intel MKL का उपयोग कर रहा हूं। क्या आप अभी भी मुझे PETSc आज़माने की सलाह देंगे?
जांच

यदि आप चाहते हैं कि सभी BLAS हैं, तो आप इससे खुश हैं, और आपने पहले ही कोड लिख दिया है, बस इसका उपयोग करें। यदि आप अधिक लचीलापन चाहते हैं और / या वितरित मेमोरी का उपयोग करने का अवसर चाहते हैं, तो आप PETSc चाहते हैं।
जेड ब्राउन

के संदर्भ में लचीलापन? वितरित की गई स्मृति?
प्रात

5

O(n3)O(n2)

चूँकि आपने उल्लेख किया है कि आप एक साझा-मेमोरी सिस्टम पर हैं, इसलिए मैंने libFLAME और / या PLASMA की सिफारिश की होगी , लेकिन मुझे नहीं लगता कि या तो आपके स्तर 1 और स्तर 2 के संचालन के लिए विक्रेता थ्रेडेड BLAS की तुलना में अधिक तेज़ होंगे।

जेड की सिफारिश की मौलिक है, जो मैं विकसित करने के लिए होता है, लेकिन मैं फिर से तनाव होगा कि स्तर 1 और स्तर 2 संचालन बीजगणित पुस्तकालयों रैखिक समानांतर घने का मुख्य उद्देश्य नहीं हैं। मैंने ईमानदारी से उन दिनचर्या में से कोई भी बेंचमार्क नहीं किया है।


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

वे आम तौर पर स्तर 3 BLAS का अनुकूलन करेंगे। कारण यह है कि पुस्तकालय का उपयोग करने वाले अधिकांश लोग बड़ी गणना कर रहे हैं जो आमतौर पर स्तर 3 बीएलएएस के लिए मैप किए जा सकते हैं।
जैक पॉल्सन

क्या इसलिए कि BLAS 1/2 को कोई बेहतर नहीं मिल सकता है? (शायद सतह-से-आयतन गुण के कारण?) O (N ^ 2) डेटा और O (N ^ 2) अभिकलन?
inquest

ऐसा इसलिए है क्योंकि गणना में BLAS 1 और 2 आम तौर पर निचले क्रम की शर्तें हैं। उच्च-प्रदर्शन सघन रेखीय बीजगणित का पूरा 'खेल' हर ऑपरेशन में सिर्फ सही तरीके से करना है ताकि आप xGEMM और दोस्तों को अधिक से अधिक काम के लिए बुला सकें।
जैक पॉल्सन

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