2013-04-18 5 views
5

मैंने मैक ओएस-एक्स माउंटेन शेर पर इस ट्यूटोरियल का उपयोग करके Rmpi इंस्टॉल किया है: http://www.stats.uwo.ca/faculty/yu/Rmpi/mac_os_x.htm। मुझे केवल सभी कोरों का उपयोग करने के लिए आरएमपीआई की आवश्यकता है, न कि हार्डवेयर क्लस्टर या इसी तरह की तैनाती के लिए।क्या आरएमपीआई को एक सक्रिय इंटरनेट कनेक्शन की आवश्यकता है?

असल में, सब कुछ ठीक काम करता है लेकिन अब मुझे अनुभव हुआ कि जब भी मेरे पास सक्रिय इंटरनेट कनेक्शन नहीं है (जैसे ट्रेन में बैठना या केवल वायरलेस चालू करना) स्पॉविंग दास विफल हो जाएंगे और मैं सोच रहा हूं कि यह काम करना है या नहीं इस तरह?

> require(Rmpi) 
> mpi.spawn.Rslaves(nslaves=2) 

-------------------------------------------------------------------------- 
At least one pair of MPI processes are unable to reach each other for 
MPI communications. This means that no Open MPI device has indicated 
that it can be used to communicate between these processes. This is 
an error; Open MPI requires that all MPI processes be able to reach 
each other. This error can sometimes be the result of forgetting to 
specify the "self" BTL. 

    Process 1 ([[56132,1],0]) is on host: ABC-MB02 
    Process 2 ([[56132,2],0]) is on host: ABC-MB02 
    BTLs attempted: self sm 

Your MPI job is now going to abort; sorry. 
-------------------------------------------------------------------------- 
    2 slaves are spawned successfully. 0 failed. 
[ABC-MB02:53970] 2 more processes have sent help message help-mca-bml-r2.txt/unreachable proc 
[ABC-MB02:53970] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help/error messages 

तब मेरे सीपीयू का भार सिर्फ 100% तक पहुंच जाता है और अंततः आर सत्र क्रैश हो जाएगा।

कोई विचार मैं इस व्यवहार से कैसे बच सकता हूं? यह मेरा sessionInfo

R version 2.15.2 (2012-10-26) 
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] graphics grDevices datasets stats  utils  methods base  

other attached packages: 
[1] Rmpi_0.6-3  ggplot2_0.9.3 stringr_0.6.2 reshape2_1.2.2 plyr_1.8  

loaded via a namespace (and not attached): 
[1] colorspace_1.2-1 dichromat_2.0-0 digest_0.6.3  grid_2.15.2  gtable_0.1.2  labeling_0.1  
[7] MASS_7.3-23  munsell_0.4  proto_0.3-10  RColorBrewer_1.0-5 scales_0.2.3  tools_2.15.2 
+1

एक मशीन के लिए यह 'समानांतर' पैकेज से 'mclapply' और मित्रों के परिवार के परिवार का उपयोग करने के लिए अक्सर अधिक सुविधाजनक और मेमोरी कुशल होता है; ये स्वतंत्र प्रक्रियाओं को बढ़ाने के बजाए साझा स्मृति और कांटे का उपयोग करते हैं। यह आपके प्रश्न में 'एमपीआई' टैग जोड़ने में भी मदद कर सकता है, क्योंकि यह वास्तव में आर-विशिष्ट नहीं लगता है। –

+0

@MartinMorgan आपकी सलाह के लिए धन्यवाद। समस्या यह है कि मेरे पास वास्तव में नियंत्रण नहीं है कि मैं किस समानांतर लाइब्रेरी का उपयोग करूंगा, क्योंकि कार्यक्षमता अन्य पैकेजों में लागू की गई है जो मैं ('xcms' और 'बायोमंडक्टर से कैमरे' पर निर्माण कर रहा हूं)। ये संकुल बस परीक्षण करते हैं कि यदि 'आरएमपीआई' (पसंदीदा) या 'बर्फ' स्थापित हैं और गणना के रूप में कई कोरों पर गणना को तैनात करते हैं। हालांकि, 'बर्फ' के साथ मैं यहां वर्णित समस्या को बाधित कर सकता हूं लेकिन दूसरों का सामना कर सकता हूं। – Beasterfield

+0

ये पैकेज एक ही समूह से हैं; शायद 'पैकेज डिस्क्रिप्शन (' कैमरे ') को ईमेल रखरखाव करने के लिए ईमेल करें और xcms भी दीर्घकालिक समाधान का कारण बनेंगे? –

उत्तर

4

यह की जरूरत नहीं है एक इंटरनेट कनेक्शन है, लेकिन ओपन एमपीआई विफल जब आप प्रक्रियाओं अंडे अगर आप केवल "स्व" और "SM" है BTL के उपलब्ध लगता है, और मेरे मैक लैपटॉप पर , "टीसीपी" बीटीएल तब तक उपलब्ध नहीं है जब तक कि "नेटवर्क प्राथमिकताएं" में कम से कम एक नेटवर्क "कनेक्टेड" न हो। यह ध्यान रखना दिलचस्प है कि जब मैं मजदूरों द्वारा शुरू किया गया था, तो मजदूरों द्वारा शुरू किए जाने पर मैं सफलतापूर्वक आरएमपीआई का उपयोग करने में सक्षम था। इसके अलावा, जब मुझे पूरी तरह से अनप्लग किया गया था, तो मुझे लिनक्स मशीन पर प्रक्रियाओं को उत्पन्न करने में कोई समस्या नहीं थी।

मैं अपने लैपटॉप को एक ईथरनेट केबल का उपयोग करके किसी अन्य कंप्यूटर से कनेक्ट करके सफलतापूर्वक स्पॉन्स प्रक्रियाओं को प्राप्त करने में सक्षम था, यहां तक ​​कि थोड़ा रास्पबेरी पीआई तक भी। भले ही केबल को वास्तव में किसी भी चीज़ के लिए इस्तेमाल नहीं किया जा सका, फिर भी मैक को यह सोचने में धोखा दिया कि "ईथरनेट" जुड़ा हुआ था, इसलिए "टीसीपी" बीटीएल ओपन एमपीआई में उपलब्ध था, इसलिए प्रक्रियाओं ने काम किया।

अद्यतन:

मैं अंत में इस समस्या यह है कि मेरी मैकबुक प्रो काम करता है के लिए एक समाधान पता लगा। btl_tcp_if_include "lo0" के लिए एमसीए पैरामीटर सेट करके, आप टीपीपी संचार के लिए लूपबैक इंटरफेस का उपयोग करने के लिए ओपन एमपीआई को मजबूर कर सकते हैं जब आपका लैपटॉप किसी बाहरी नेटवर्क से कनेक्ट नहीं होता है। यह स्थापित करने के लिए एक तरह से अपने अनुसंधान लिपि में एक वातावरण चर के साथ है:

Sys.setenv(OMPI_MCA_btl_tcp_if_include='lo0') 
library(Rmpi) 
mpi.spawn.Rslaves(nslaves=2) 

यह Rmpi लोड हो रहा है, जो जब MPI_INIT कहा जाता है से पहले जब तक आप वातावरण चर सेट के रूप में काम करने के लिए प्रकट होता है।

+0

समस्याओं को पुन: उत्पन्न करने और इसके बारे में विस्तार करने के लिए धन्यवाद। लेकिन जैसा कि आपने बताया है, यह वास्तव में मेरी समस्या का समाधान नहीं करता है। तो मैं उम्मीद कर रहा था कि एमपीआईआई के लिए इस व्यवहार से परहेज करने के लिए कुछ संकलन विकल्प हो सकते हैं।मैं यह भी सोच रहा हूं कि "फ़ेक्ड" डिवाइस को कनेक्ट करना संभव है, यानी ओएस को लगता है कि डिवाइस कनेक्ट है, कि टीसीपी बीटीएल उपलब्ध हो जाता है। – Beasterfield

+0

@ बायस्टरफील्ड: मैं ब्लूटूथ डिवाइस के बारे में सोच रहा था क्योंकि "ब्लूटूथ पैन" सूचीबद्ध नेटवर्कों में से एक है, लेकिन यह मेरे सेल फोन के साथ काम नहीं करता है। –

+0

जाहिर है कि कोई बेहतर समाधान नहीं लगता है। तो इसके लिए धन्यवाद। – Beasterfield

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