2011-10-26 18 views
6

मैं दोहराव वाले वर्ग द्वारा एक बहुत बड़े मॉड्यूलस के साथ पूर्णांक के मॉड्यूलर एक्सपोनेंटिएशन करने की कोशिश कर रहा हूं (शक्ति हमेशा मेरे मामले में 2 की शक्ति होती है, इसलिए मेरा मानना ​​है कि यह सबसे प्रभावी तरीका है)। मेरे मॉड्यूलस की एक अच्छी संपत्ति के लिए धन्यवाद, शेष कंप्यूटिंग सस्ता है; कठिन हिस्सा गुणा है।समांतर मनमानी-परिशुद्धता अंकगणितीय पुस्तकालय

वर्तमान में मैं इंटेल कोर 2 क्वाड पर जीएमपी चलाता हूं। मैं प्रोसेसर के चार कोर का कुशल उपयोग करना चाहता हूं, लेकिन जीएमपी एसएमपी वातावरण पर स्केल नहीं करता है, इसलिए मैं एक विकल्प मनमानी-सटीक अंकगणितीय पुस्तकालय की तलाश में हूं। मुझे मैट्रिस पर समांतर गणना के लिए कुछ पुस्तकालय मिले हैं, लेकिन मुझे वास्तव में क्या चाहिए पूर्णांक के लिए एक लाइब्रेरी है।

क्या मैं जो खोज रहा हूं वह अस्तित्व में है?

+0

आपकी संख्या कितनी बड़ी है (अंक, बिट्स)? यहां तक ​​कि संदर्भित स्विचिंग समय को सस्ता करने के साथ-साथ बहुसंख्यक CPUs को एक अंकगणितीय ऑपरेशन पर काम करने में सक्षम बनाने के लिए किसी भी बचत पर हावी हो सकती है। यदि संख्याएं काफी बड़ी हैं, तो आपको एक पुनरावर्ती विभाजन करना चाहिए और जोड़/घटाव पर जीतना चाहिए [संख्या को बाएं और दाएं हिस्सों में विभाजित करना, भागों को दोबारा जोड़ना, वाहक को प्रचार करना], लेकिन मुझे उम्मीद है कि जीत होने की उम्मीद है यदि समान जीत हो तो एकाधिक समानांतर और विभाजित करें। –

+0

मेरा मॉडुलि 2^10000000 (!) जितना बड़ा हो सकता है। – Pteromys

उत्तर

2

जवाब है हां, मल्टी-थ्रेडेड है मनमाना परिशुद्धता पुस्तकालयों मौजूद है। लेकिन मुझे एक ऐसे व्यक्ति से अवगत नहीं है जो वास्तव में सार्वजनिक है।

उदाहरण के लिए (जीएमपी के बराबर गति के साथ), मनमाना परिशुद्धता पुस्तकालयों कि पी-कंप्यूटिंग कार्यक्रमों में उपयोग किया जाता है, TachusPi और y-cruncher बड़ी संख्या पर मल्टी-थ्रेडेड अंकगणित में सक्षम हैं।

हालांकि, दोनों पुस्तकालय बंद स्रोत हैं और जनता के उपयोग के लिए उपलब्ध नहीं हैं।

संबद्धता प्रकटीकरण: मैं y-cruncher का लेखक हूं। तो मैंने खुद को ऐसे बहु-थ्रेडेड मनमाना-परिशुद्धता पुस्तकालयों में से एक लिखा है।

+0

क्या आप मुझे बता सकते हैं कि उन पुस्तकालयों का किस प्रकार का एल्गोरिदम उपयोग करता है? मैंने Knuth के TAOCP के प्रासंगिक अध्यायों को स्किम किया, लेकिन मुझे बिग्नम एल्गोरिदम नहीं मिल पाए जिन्हें स्पष्ट रूप से समांतर कंप्यूटिंग के लिए उपयुक्त कहा गया है, तथाकथित मॉड्यूलर अंकगणित को छोड़कर, जो मेरे मामले में अनुपयुक्त साबित हुआ। – Pteromys

+1

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

+0

धन्यवाद। (मैं बल्कि एफएफटी पर अनुभाग छोड़ दिया)। मुझे नहीं लगता, हालांकि, मैं तेजी से गुणात्मक दिनचर्या को लागू कर सकता हूं ... – Pteromys

1

क्या आपने http://mpir.org देखा है? वे जीएमपी के एक संस्करण के साथ ऐसा करने और जीपीयू का उपयोग करने का दावा करते हैं।

+1

वे इसे अपने लक्ष्यों में से एक के रूप में सूचीबद्ध करते हैं। लेकिन उनके दस्तावेज के आधार पर, ऐसा लगता है कि इसमें से कोई भी लागू नहीं किया गया है। शायद क्योंकि एमएमआईआर जीएमपी से फंसे हुए हैं और जीएमपी स्वयं समानांतर नहीं है। – Mysticial

+0

यह एक दयालु है। मैं जीएमपी को समानांतर कर सकता हूं, लेकिन वास्तव में यह कितना मुश्किल है? – Pteromys

+0

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

संबंधित मुद्दे