C ++ में Mathematica के QuasiMonteCarlo एकीकरण की जगह


12

मेरे पास एक गणितज्ञ कार्यक्रम है जो QuasiMonteCarloविधि का उपयोग करके 3 या 4 आयामों में कुछ अभिन्न प्रदर्शन करता है । समस्या यह है कि इसे चलाने के लिए एक कष्टप्रद समय लगता है, इस बिंदु पर जहां इनमें से कुछ गणना हमारे एचपीसी क्लस्टर पर उपलब्ध अधिकतम नौकरी समय में पूरी नहीं हो सकती है। इसलिए मैं सी ++ में कार्यक्रम को फिर से लिखने पर विचार कर रहा हूं, जो मुझे संदेह है कि यह एक बड़े कारक द्वारा गति देगा।

मैंने जीएसएल डॉक्स को देखा और जबकि कैसरिजैंडम सीक्वेंस और रेगुलर एमसी इंटीग्रेशन पर सेक्शन हैं , मुझे ऐसा कुछ भी दिखाई नहीं देता जो आपको साथ लाता हो। इसके अलावा एक Google खोज या दो ने भी कुछ भी ऐसा नहीं किया जो व्यापक रूप से विश्वसनीय कार्यान्वयन जैसा दिखता हो। C ++ में QMC एकीकरण के एक अच्छी तरह से परीक्षण किए गए कार्यान्वयन के लिए मेरे विकल्प क्या हैं?

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


2
आप Stackoverflow पर इंटीग्रल पोस्ट कर सकते हैं और हम इस पर एक नज़र रख सकते हैं कि क्या चल रहा है। ध्यान दें, Mathematica मशीन की परिशुद्धता के लिए MKL पर आधारित है, जो काफी कुशल है।

2
आपके प्रश्न का उत्तर नहीं है, लेकिन मैं सोच रहा था कि क्या आपने Compileइसे पास करने से पहले अभिन्न (सी कोड) में प्रवेश करने की कोशिश की NIntegrate, यानी यह NIntegrateधीमा है या फ़ंक्शन की गणना कर रहा है? C- संकलित कार्यों का उपयोग करने के लिए क्लस्टर पर थोड़ा अतिरिक्त काम करना पड़ सकता है।
शेजाबोल्स

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

@ruebenko: मैं उस को ध्यान में रखूँगा।
डेविड जेड

2
CUBA लाइब्रेरी में कम-आयामी समस्याओं के लिए कई एल्गोरिदम हैं। यहां तक ​​कि इसमें मैथमैटिक इंटरफेस भी है। feynarts.de/cuba
dls

जवाबों:


1

C ++ (या C) के लिए क्वासी मोंटे कार्लो इंटीग्रेटर्स की स्पष्ट कमी को देखते हुए, मैंने GSL के साथ उपयोग किए जाने के लिए अपना स्वयं का कार्यान्वयन लिखा । यह विशेष रूप से अच्छी तरह से परीक्षण नहीं है, और न ही यह गणितज्ञ के एल्गोरिथ्म को लागू करता है, लेकिन यह कुछ भी नहीं से बेहतर होना चाहिए।

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