LAPACK त्रिदलीय प्रणालियों को कैसे हल करता है और क्यों?


9

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

अब, लैपैक के अंदर ऐसा लगता है कि यह एलयू फैक्टराइजेशन द्वारा हल करता है और मुझे आश्चर्य है कि, क्या यह उससे अधिक जटिल नहीं है?

इसके अतिरिक्त, मुझे nr.com की "न्यूमेरिकल रेसिपीज़" पुस्तक में एक एल्गोरिथ्म मिला, जो सिस्टम को पुन: छोटे त्रिदोषजन्य समस्याओं में विभाजित करता है। यह आशाजनक लग रहा था। क्या वहाँ कोई अन्य अच्छाई है?

अद्यतन: समस्या का आकार लगभग 1000x1000 है। मैंने गोटोब्लास का इस्तेमाल किया, यह आपको लैपैक 3.1.1 लाइब्रेरी भी देता है। समस्या सममित नहीं है। मैंने सामान्य ट्राइडियोगल मैट्रिक्स के लिए लैपैक रूटीन का इस्तेमाल किया।


2
आपको यह बताना होगा कि आपने इसके लिए कौन सा LAPACK रूटीन इस्तेमाल किया है। ध्यान दें कि dgtsv आंशिक धुरी करता है, लेकिन आपका कोड ऐसा नहीं कर सकता है। कृपया यह भी बताएं कि आपके द्वारा परीक्षण किया गया LAPACK कार्यान्वयन किस समस्या से जुड़ा है और आपने किस समस्या को आकार दिया है। इसके अलावा, क्या आपकी समस्या सममित सकारात्मक निश्चित है?
जेड ब्राउन

मैंने प्रश्न निर्माण में कुछ जानकारी जोड़ी।
तियाम

अपने आवेदन परिमित मात्रा तरीकों के साथ कुछ करना है?
प्रात

यह परिमित अंतर है, लेकिन इस परिप्रेक्ष्य में मेरा अनुमान कमोबेश यही है।
tiam

जवाबों:


7

आप एक संदर्भ कार्यान्वयन का उपयोग कर रहे हैं जो आंशिक धुरी करता है। त्रिदिओगनल सॉल्व बहुत कम काम करते हैं और बीएलएएस में कॉल नहीं करते हैं। यह आपके कोड की तुलना में धीमा है क्योंकि यह आंशिक धुरी करता है। Dgtsv के लिए स्रोत कोड सरल है।

यदि आप एक ही मैट्रिक्स के साथ कई बार हल करेंगे, तो आप dgttrf और dgttrs का उपयोग करके कारकों को संग्रहीत करना चाह सकते हैं । यह संभव है कि एमकेएल, एसीएमएल या ईएसएसएल जैसे एक अनुकूलित लैपैक में कार्यान्वयन अधिक प्रदर्शनकारी होगा।


मैं थोड़ा उत्सुक हूं। पीपी के साथ गॉसियन एलिम ट्राईडायंगल सहित सभी मैट्रिसेस के लिए काम करेगा। सीएफडी में, हम एफडीएम 1 डी मामलों के लिए एक विशेष विधि का उपयोग करते हैं जिसे टीडीएमए कहा जाता है । आपको लगता है कि जिस मामले पर वह चर्चा कर रहा है, उसके लिए आप और अधिक तेज होंगे? हालाँकि, मुझे पूरी तरह से यकीन नहीं है कि उनके मैट्रोज़ तिरछे वर्चस्व वाले हैं।
प्रात:

टीडीएमए वह है जिसे मैंने अपने कोड में लागू किया है। सवाल यह है कि सुपर-फास्ट लैपैक एक विशेष मैट्रिक्स में आंशिक धुरी प्रक्रिया का उपयोग क्यों करेगा, जिसे टीडीएमए जैसी आसान विधि द्वारा तेजी से हल किया जाता है।
tiam

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

मैं देख रहा हूं कि आपका क्या मतलब है, मैं अपने ज्ञान से उन प्रणालियों के बारे में लाभ उठाता हूं जिन्हें मैं हल कर रहा हूं। LAPACK के अन्य कार्यान्वयन विशिष्ट वास्तुकला के अनुकूलन के कारण प्रदर्शन को बढ़ावा देते हैं या क्या यह उससे आगे जाता है?
तीयम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.