मेरा वर्तमान कार्य Monte Carlo Simulation को अनुकूलित करना है जो कि बाधाओं के एक सेट के लिए क्षेत्र द्वारा पूंजी पर्याप्तता आंकड़ों की गणना करता है।सी # मोंटे कार्लो वृद्धिशील जोखिम गणना अनुकूलन, यादृच्छिक संख्या, समांतर निष्पादन
यह बारे में 10 एक्स चल रहा है जहां यह उत्पादन और नंबर या आवश्यक दैनिक रन में होने की आवश्यकता होगी के लिए बहुत धीमी गति से। इसके अतिरिक्त परिणाम आंकड़ों की ग्रैन्युलरिटी को कुछ स्तर पर संभवतः डेस्क स्तर पर डेस्क में सुधार करने की आवश्यकता होगी, मुझे जो कोड दिया गया है वह मूल रूप से एक प्रोटोटाइप है जिसका उपयोग अर्ध उत्पादन क्षमता में व्यावसायिक इकाइयों द्वारा किया जाता है।
अनुप्रयोग है वर्तमान में एकल थ्रेड तो मैं बनाने की आवश्यकता होगी यह मल्टी-थ्रेडेड, System.Threading.ThreadPool
पर लग सकता है या माइक्रोसॉफ्ट Parallel Extensions पुस्तकालय लेकिन मैं कम से सर्वर पर नेट 2 करने के लिए विवश कर रहा हूँ यह बैंक इसलिए मुझे इस लड़के के बंदरगाह पर विचार करना पड़ सकता है, http://www.codeproject.com/KB/cs/aforge_parallel.aspx।
मैं नेट 3.5 एसपी 1 में नवीनीकृत करने के लिए उन्हें प्राप्त करने के लिए अपना सर्वश्रेष्ठ कोशिश कर रहा हूँ, लेकिन यह इस आकार के एक संगठन में एक प्रमुख व्यायाम है और मेरे अनुबंध समय फ्रेम में संभव नहीं हो सकता।
मैं dotTrace (http://www.jetbrains.com/profiler) के परीक्षण का उपयोग कर आवेदन प्रोफाइल गए हैं। अन्य अच्छे प्रोफाइलर मौजूद हैं? मुफ्त वाले?
बहुत सारे निष्पादन समय खर्च किए गए हैं, जो समान यादृच्छिक संख्या उत्पन्न करते हैं और फिर इसे सामान्य रूप से वितरित यादृच्छिक संख्या में अनुवाद करते हैं। वे एक सी # Mersenne twister कार्यान्वयन का उपयोग कर रहे हैं। मुझे यकीन नहीं है कि उन्हें यह कहां मिला है या यदि वर्दी यादृच्छिक संख्या उत्पन्न करने के लिए यह (या सर्वोत्तम कार्यान्वयन) के बारे में जाने का सबसे अच्छा तरीका है। फिर इस गणना में इस्तेमाल के लिए एक सामान्य रूप से वितरित संस्करण के लिए अनुवाद किया है (मैं अभी तक अनुवाद कोड में delved नहीं किया है)।
इसके अलावा निम्नलिखित का उपयोग कर अनुभव क्या है?
http://www.qlnet.org (quantlib की सी # बंदरगाह) या
किसी भी विकल्प आप के बारे में पता? मैं एक सी # डेवलपर हूं इसलिए सी # पसंद करेंगे, लेकिन सी ++ पर रैपर कोई समस्या नहीं होनी चाहिए, है?
शायद भी तेजी का लाभ सी ++ कार्यान्वयन। मैं सोच रहा हूं कि इनमें से कुछ पुस्तकालयों में अनुवाद चरण के बिना सामान्य रूप से वितरित यादृच्छिक संख्याओं को सीधे उत्पन्न करने का सबसे तेज़ तरीका होगा। इसके अलावा उनके पास कुछ अन्य कार्य हो सकते हैं जो बाद की गणनाओं में सहायक होंगे।
इसके अलावा कंप्यूटर इस पर एक क्वाड-कोर Opteron 275, 8 जीबी मेमोरी लेकिन विंडोज सर्वर 2003 उद्यम 32 बिट है। क्या मुझे उन्हें 64 बिट ओएस पर अपग्रेड करने की सलाह देनी चाहिए?इस निर्णय का समर्थन करने वाले लेखों के किसी भी लिंक की सराहना की जाएगी।
वैसे भी, आपके पास कोई सलाह और सहायता वास्तव में सराहना की जा सकती है।
आप क्यों मानते हैं कि समस्या पर अधिक धागे फेंकने से मामलों में सुधार होगा? –
वर्तमान में कोड क्वाड कोर बॉक्स पर चलने वाला सिंगल थ्रेडेड है, ओपर्टन 275 सटीक होना चाहिए। कोड अनुक्रमिक रूप से चलाने के लिए लिखा गया है, या तो कंपाइलर या सीएलआर या सीपीयू निर्देश सेट इस कोड को कैसे लेना है और प्रदर्शन में सुधार के समानांतर में इसके भाग को चलाने का प्रयास करने का सबसे अच्छा अनुमान लगा सकता है। या मैं इस कोड को थ्रेडेड समांतर मॉडल में चलाने के लिए लिख सकता हूं ताकि सीएलआर, कंपाइलर, सीपीयू को प्रभावी ढंग से सुझाव दिया जा सके कि समवर्ती रूप से क्या चल सकता है और इन निचले स्तर के निर्देशों को निष्पादन को अनुकूलित करने दें। तुम्हारे विचार? – m3ntat
8 जीबी मेमोरी 32 बिट्स पर 4 जीबी कचरा है ... –