2013-02-23 5 views
12

मैं 5 अलग-अलग देशों के लिए दैनिक बॉन्ड मूल्य डेटा के 10 वर्षों में आर में टर्मस्ट्रैक उपज वक्र विश्लेषण पैकेज चला रहा हूं। यह अत्यधिक गणना गहन है, यह प्रति वर्ष 3200 सेकेंड मानक मानक पर लेता है, और यदि मैं अपने 200 आई 7 मैक पर फोरैच और% डोपर% (डीएसएनओओ के साथ) का उपयोग करता हूं, तो सभी 4 कोर (8 हाइपरथ्रेडिंग के साथ) का उपयोग करके मैं इसे नीचे ले जाता हूं 850 सेकेंड हर बार जब मैं एक देश (अंतर-देश फैलाने की गणना करने के लिए) जोड़ता हूं, तो मुझे इस विश्लेषण को दोबारा चलाने की जरूरत है, और मेरे पास 1 9 देश हैं, भविष्य में आने वाले कई क्रेडिट उपज घटता है। लिया गया समय एक प्रमुख मुद्दे की तरह लग रहा है। वैसे, प्रश्न में टर्मस्ट्रैक विश्लेषण कार्य आर में उपयोग किया जाता है लेकिन सीआर में समांतर प्रसंस्करण के लिए सह-श्रमिकों के विंडोज 7 पीसी का समूह बनाएं?

में लिखा गया है, अब हम 12 लोगों की एक छोटी कंपनी हैं (सीमित बजट पढ़ें), सभी 8 जीबी रैम, आई 7 पीसी, जिनमें से कम से कम आधे का उपयोग सांसारिक शब्द संसाधन/ईमेल/ब्राउज़िंग शैली कार्यों के लिए किया जाता है, यानी, उनके प्रदर्शन का 5% अधिकतम उपयोग करना। वे सभी गीगाबिट (लेकिन 10-गीगाबिट नहीं) ईथरनेट का उपयोग कर नेटवर्क किए गए हैं।

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

क्या यह किया जा सकता है? कैसे? और मेरे सहकर्मियों पर असर क्या होगा। क्या वे अपनी मशीनों पर कर लगा रहे हैं, जबकि वे अपने ईमेल पढ़ना जारी रख सकते हैं?

मुझे लगता है कि ओपन एमपीआई अब विंडोज का समर्थन नहीं करता है, जबकि एमपीआईसी लगता है। यदि आप किसी का उपयोग करेंगे, तो आप किसका उपयोग करेंगे?

शायद प्रत्येक पीसी पर उबंटू आभासी मशीन चलाएं?

+1

वर्चुअल मशीन कुख्यात स्मृति हॉग हैं, यह उल्लेख न करें कि वे व्यावहारिक रूप से केवल एक परत के शीर्ष पर एक परत हैं (सोचें I/O प्रवाह के माध्यम से)। आपके सहकर्मी आपको धन्यवाद नहीं देंगे जब वे ध्यान दें कि उनकी स्मृति का 50% कुछ ऐसी चीज के लिए निकल रहा है जिसे आप संभवतः कुशलतापूर्वक उपयोग नहीं कर सकते - भले ही वे जो भी कर रहे हैं वह शब्द/ईमेल है। यदि आप पर्याप्त खिड़कियां खोलते हैं तो भी क्रोम 64 बिट सिस्टम पर आजकल 2 जीबी तक पहुंच सकता है। –

+0

गोटा - हालांकि मुझे संदेह है कि वे ईमानदार होने के लिए भी नोटिस करेंगे। जब मैं उनके लिए अच्छा उपयोग करता हूं तो 99% CPU चक्रों को निष्क्रिय करने के लिए बस एक अपशिष्ट लगता है! मेरे मैक पर बीटीडब्ल्यू वीएम वेयर फ़्यूज़न "मूल" आर बनाम 25% प्रदर्शन जुर्माना (जो एक वीएम में विन 64 पर उसी दिनचर्या चला रहा है, 4 प्रोसेसर और 16 जीबी में से 8 के साथ समान दिनचर्या चला रहा है) तो यह बुरा नहीं है हालांकि, मैं राम पर सहमत हूं। –

+0

क्या आपको अपने प्रश्न का उत्तर देने का उत्तर मिला? मैं एक ही समस्या पर काम कर रहा हूं [यहां] (http://stackoverflow.com/questions/36297815/q-how-to-setup-workers-for-parallel-processing-in-r-using-nownowfall-and- कई)। – jclouse

उत्तर

11

हाँ आप कर सकते हैं। कई तरीके हैं।सबसे आसान में से एक है redis बैकएंड के रूप में उपयोग करना (एक उबंटू मशीन पर sudo apt-get install redis-server पर कॉल करना जितना आसान है; अफवाह यह है कि आप विंडोज़ मशीन पर भी रेडिस बैकएंड प्राप्त कर सकते हैं)।

doRedis पैकेज का उपयोग करके आप बहुत आसानी से redis में एक कार्य कतार पर एन कतार रोजगार, और उसके बाद का उपयोग एक, दो, ... निष्क्रिय कार्यकर्ताओं कतार क्वेरी करने के लिए कर सकते हैं। सबसे अच्छा, आप आसानी से ऑपरेटिंग सिस्टम को मिश्रित कर सकते हैं, इसलिए हाँ, आपके सहकर्मियों की विंडोज मशीन योग्य हैं। इसके अलावा, आप एक, दो, तीन, ... ग्राहकों को फिट और आवश्यकता और स्केल अप या डाउन का उपयोग कर सकते हैं। कतार को पता नहीं है या परवाह नहीं है, यह केवल नौकरियों की आपूर्ति करता है।

सभी का बोस्ट, doRedis में विगनेट में बूटस्ट्रैपिंग उदाहरण को तेज़ करने के लिए लिनक्स और विंडोज क्लाइंट के मिश्रण के काम करने के उदाहरण हैं।

+0

यह बहुत दिलचस्प लग रहा है। दरअसल मैंने रेडिस पर चारों ओर गुमराह किया और पाया कि शायद यह एक और समस्या हल करने जा रहा है, जो कि कई कंप्यूटरों के बीच बड़ी मात्रा में टाइम्सरी डेटा साझा कर रहा है (कृपया मुझे बताएं कि क्या मैं यहां गुमराह हूं)। मूल प्रश्न पर: क्या मैं यह सुनिश्चित करने के लिए डूरेडिस का उपयोग कर सक्षम हूं कि अन्य पीसी पर आर इंस्टेंस * सभी * उनके CPU संसाधन को हॉग नहीं करता है? क्या मैं उदाहरण के लिए इसे 8 कंप्यूटर कोरों में से 4 तक सीमित कर सकता हूं? मैं पूछता हूं क्योंकि अगर मैं अपने मैक या पीसी पर सभी 8 कोर करता हूं, तो मल्टीटास्किंग ओएस के बावजूद और कुछ भी स्वीकार्य रूप से चलता नहीं है। –

+0

हां, प्रत्येक ग्राहक अपनी सीमाओं को नियंत्रित करने में सक्षम होना चाहिए। –

+1

मैं जोड़ूंगा कि जब से आपने प्रश्न का उत्तर दिया है (इसलिए लगभग एक वर्ष तक), तो मैं खुशी से डूरेडिस का उपयोग कर रहा हूं, और यह वास्तव में बहुत अच्छी तरह से काम करता है (हालांकि कभी-कभी मुझे आर सत्र बंद करना पड़ता है जो यह सह-कार्यकर्ता मशीनों पर बनाता है मैन्युअल रूप से, नौकरियां खत्म होने के बाद मैन्युअल रूप से) –

6

शायद वह उत्तर नहीं जिसे आप ढूंढ रहे थे, लेकिन - यह उन स्थितियों में से एक है जहां एक विकल्प इतना बेहतर है कि इसे अनदेखा करना मुश्किल है।

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

इनमें से कुछ उदाहरण इतने शक्तिशाली हैं कि आपको शायद क्लस्टर पर अपना काम कैसे सेट अप करना है (अपना वर्तमान विवरण दिया गया) को भी समझने की आवश्यकता नहीं होगी। जैसा कि आप संदर्भ लागत से देख सकते हैं हास्यास्पद रूप से कम है, गणना समय के 1-4 डॉलर प्रति घंटे से लेकर।

+0

वाह - क्लाउड के बारे में भी सोचा नहीं था। ठीक है - मैं इसे एक शॉट दूंगा। जिस कीमत पर आप इसके बारे में बात कर रहे हैं उस तरह के मूल्य पर वास्तव में दिलचस्प होगा। –

+1

इस बारे में सोचना, क्योंकि मेरे काम के एक बड़े हिस्से में फ़ंक्शन को पुन: व्यवस्थित करना और इसे फिर से चलाना शामिल है, इस पर एक दिन में 5 घंटे का काम करना संभव है, यहां तक ​​कि बड़े पैमाने पर समानांतर स्थापना में भी। मान लें कि $ 2.50 प्रति घंटा = $ 12.50 प्रति दिन, प्रति माह 20 दिन, हम $ 250 प्रति माह बात कर रहे हैं। मैं इसे "हास्यास्पद" के रूप में वर्णित नहीं करता हूं, हालांकि मुझे लगता है कि अगर मुझे कंप्यूटर की बहुत सारी शक्ति मिल रही है तो यह वास्तव में लागत प्रभावी होगा। –

1

ओपनसीएल के बारे में क्या?

इसके लिए सी कोड को फिर से लिखना होगा, लेकिन संभावित रूप से बड़ी गतिशीलता की अनुमति होगी। जीपीयू में अत्यधिक कंप्यूटिंग पावर है।

+0

मुझे ओपनसीएल का उपयोग करना बहुत अच्छा लगेगा। मैं doRedis का उपयोग कर क्लस्टर किए गए 5x4-कोर कंप्यूटरों का उपयोग करके ऑप्टिमाइज़ेशन के लिए प्रति घंटे 2 घंटे लेने के लिए वापस आ गया हूं। मुझे गलत मत समझो, क्या रेडिस बहुत अच्छा है, क्योंकि यह अन्यथा 9 घंटे से अधिक समय लेता है, लेकिन ऐसा लगता है कि कंप्यूटिंग हॉर्स पावर की विशाल टेराफ्लॉप निष्क्रिय रह रही हैं। मुझे लगता है कि ओपनसीएल का उपयोग करने के लिए मुझे अनइरूट फ़ंक्शन की आवश्यकता होगी। बिना किसी इंडेथ सी प्रोग्रामर के आर ओपनसीएल का उपयोग करने के तरीके क्या हैं? –

+0

मुझे नहीं पता, क्षमा करें।मैंने ओपनसीएल का कभी भी उपयोग नहीं किया है - बस इसके बारे में सुना है। आप क्या कर सकते हैं यह देखने के लिए कि एल्गोरिदम के कौन से हिस्से सबसे बड़े कंप्यूटिंग हॉग (प्रोफाइलिंग द्वारा) हैं, और देखें कि इनमें से किसी के लिए GPU- त्वरित लाइब्रेरी उपलब्ध हैं या नहीं। – Demi

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