मैं एक क्लस्टर कैसे बनाऊं?


63

- वहाँ घर पर कंप्यूटर का एक समूह निर्माण के बारे में पिछले कुछ वर्षों में ऑनलाइन के आसपास चल कुछ लेख किया गया है यहाँ उदाहरण के लिए।

पाई मुझे कम लागत के कारण इस तरह के निर्माण / परीक्षण के लिए एक अच्छे मंच के रूप में प्रभावित करता है; "जेनेरिक" गाइडों को इस तरह से बहुत आसानी से Pi के लिए गाइड करना चाहिए, या ऐसा कुछ विशेष रूप से है जो मुझे इस तरह की परियोजना का प्रयास करते समय पता होना चाहिए?


3
संबंधित फोरम थ्रेड: raspberrypi.org/phpBB3/viewtopic.php?p=18356#p18356
finnw

मैंने "bramble" टैग जोड़ा है क्योंकि इसे ये नाम दिए गए हैं। परे एक उचित जवाब नहीं दे सकता है "एक साथ एक गुच्छा रखो और हडूप या ऐसा कुछ चलाएं" - वास्तव में, मैंने खुद को जवाब के लिए देखने के लिए प्रश्न को favved किया है!
बजे

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

4
: SouthHampton विश्वविद्यालय एक 64 अनुकरणीय क्लस्टर (या "सुपर कंप्यूटर") बनाने के लिए कदम का उत्पादन किया है southampton.ac.uk/~sjc/raspberrypi/...
एलेक्स एल

जवाबों:


35

मेरा सुझाव है कि डिसपी को देखते हुए - वितरित कम्प्यूटेशन पायथन मॉड्यूल।

पीसी (सर्वर - मान आईपी है 192.168.0.100) से कई रास्पबेरी पाई (नोड्स) पर एक प्रोग्राम चलाने के लिए :

  • प्रत्येक RasPi पर एक ऑपरेटिंग सिस्टम स्थापित करें

  • प्रत्येक RasPi को अपने नेटवर्क में संलग्न करें। IP ढूंढें (यदि गतिशील है), या स्थिर IP सेट अप करें।
    (मान लें कि आपके पास तीन नोड हैं, और उनके आईपी हैं 192.168.0.50-52)

  • अजगर स्थापित करें (यदि पहले से नहीं), स्थापित करें dispy, फिर dispynode.py -i 192.168.0.100प्रत्येक रास्पी पर चलाएं । यह सर्वर से नौकरी की जानकारी प्राप्त करने के लिए डिसिनोड को बताएगा।

  • पीसी (सर्वर) पर, इंस्टॉल करें dispy, फिर निम्न पायथन कोड चलाएँ:

#!/usr/bin/env python
import dispy
cluster = dispy.JobCluster('/some/program', nodes=['192.168.0.50', '192.168.0.51', '192.168.0.52'])

आप /some/programएक अजगर समारोह के साथ भी बदल सकते हैं - जैसे compute

आप अजगर वस्तुओं, मॉड्यूल और फ़ाइलों (जो dispyप्रत्येक नोड में स्थानांतरित हो जाएंगे) पर निर्भरता को भी जोड़ सकते हैंdepends=[ClassA, moduleB, 'file1']


8
अगर किसी ने ऐसा किया है तो मुझे सुनकर अच्छा लगेगा - कृपया एक टिप्पणी छोड़ दें जिससे मुझे पता चले कि क्या यह काम करता है!
एलेक्स एल

मेरे मामले में (openelec + python 2.7) मुझे यह त्रुटि "फ़ाइल" ./Lib/multiprocessing/__init__.py ", पंक्ति 84, <मॉड्यूल>, इंपॉर्टेन्सर: /usr-lib/python2.7/lib-dynload/ में मिलती है। _multiprocessing.so: अपरिभाषित प्रतीक: SemLockType "।
गुइडो

लेकिन dispy3-3.6 wheezy + python3 के साथ चलती है! २०१३-०३-१३ २३: ०१: ३०,६६४ - डिस्पिनोड - १ ९ २.१६.1.१३.४४ १३४:5 पर १ सीपस परोसना। जब आप कोई कार्य (यानी / बिन / ls) लॉन्च करते हैं, तो नोड कार्य को प्राप्त करता है, निष्पादन योग्य को / tmp में ले जाता है, लेकिन कुछ गलत हो जाता है "निष्पादन" [/ tmp / dispy / b7e04cb4a1a144e1 / ls '] (<वर्ग' OSError) के साथ विफल '>, OSError (8,' Exec format एरर '), <ट्रेसबैक ऑब्जेक्ट 0x16f2580>) "
Guido

10

आपको उस काम के बारे में पता होना चाहिए जो पहले से ही किया गया है - यहां तक ​​कि रासपी बॉक्सन के क्लस्टर का भी नाम है। एम्बेडेड लिनक्स विकी का कहना है एक ब्रेंबल के रूप में "एक परिभाषित किया गया है बियोवुल्फ़ क्लस्टर रास्पबेरी Pi उपकरणों की"। रास्पबेरी Pi Homebrew की एक संख्या है पदों के बारे में Brambles , और देख भी फाउंडेशन के स्वयं के मंच।


14
मुझे नहीं लगता कि किसी को Google को जवाब देना इस साइट के लिए अच्छा है। नाम जानना उपयोगी है, लेकिन अपने उत्तर में कुछ सामग्री और संदर्भ लिंक जोड़ने पर विचार करें।
जो

सामग्री और लिंक जोड़ा गया, @ जो। यह अच्छा होगा यदि
डाउनवोटर्स

1
अगर मैं वास्तव में आपको नीचे गिरा देता ...
जो

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

10

साउथेम्प्टन यूनी के कुछ लोगों ने एक क्लस्टर में एक साथ रखा है और http://www.southampton.ac.uk/~sjc/raspberrypi/ पर अपने काम का विस्तृत विवरण लिखा है ।



दरअसल, एमपीआई का उपयोग करके इस परियोजना से बहुत कुछ सीखना है। मैं इन लोगों के काम के आधार पर अपने प्रयोगों को पसंद कर रहा हूं। मैं इस उत्तर को प्रश्न के सही उत्तर को चिह्नित करने की सलाह दूंगा।
बेन्कुस

6

यह पूरी तरह से संभव है, लेकिन सबसे बड़ी समस्या प्राप्य है। यह एक ऐसा विचार है जिसे मैं न केवल कामचलाऊ समझूंगा, बल्कि उपयोगी होगा क्योंकि आप पोर्टेबल समानांतर कंप्यूटिंग के विचार के साथ जा सकते हैं। जहाँ तक बारीकियों की बात है, FORTRAN और C ++ जैसी भाषाओं की कोडिंग सबसे अच्छा करेगी।

क्लस्टर कंप्यूटिंग पर अधिक के लिए beowulf.org देखें


1

यह 'विवाद' के बारे में ऊपर गिडो गार्सिया के पोस्ट का जवाब है - मैं समझ नहीं पा रहा हूं कि उनके पोस्ट का जवाब कैसे दिया जाए।

जब एक प्रोग्राम ('/ बिन / एलएस') को समानांतर निष्पादन के लिए 'विवाद' के साथ वितरित किया जाता है, तो क्लाइंट मशीन पर उस प्रोग्राम को प्रत्येक नोड ('/ tmp') में स्थानांतरित किया जाता है। ऐसा इसलिए है कि क्लाइंट मशीन पर उपयोगकर्ता द्वारा विकसित प्रोग्राम को NFS या कुछ साझा किए गए diretory के बिना स्थानांतरित किया गया है। यह केवल बाइनरी प्रोग्राम के साथ काम करता है जब नोड्स और क्लाइंट आर्किटेक्चर संगत होते हैं। आपके मामले में, मैं अनुमान लगा रहा हूं कि क्लाइंट आर्किटेक्चर रिमोट नोड्स से अलग है और एक नोड क्लाइंट से ट्रांसफर किए गए बाइनरी '/ बिन / एलएस' को निष्पादित नहीं कर सकता है। यदि आप प्रत्येक नोड पर / बिन / एलएस निष्पादित करना चाहते हैं, तो निर्देशिका को प्रिंट करने के लिए पायथन फ़ंक्शन या प्रोग्राम लिखना आसान हो सकता है (जैसे, os.listdir का उपयोग करके) और बाइनरी निष्पादन योग्य के बजाय वितरित करें।


आपको अन्य लोगों के उत्तरों / प्रश्नों पर टिप्पणी छोड़ने के लिए 50 प्रतिष्ठा की आवश्यकता है। हालांकि आपका स्वागत है!
इम्पल्स

1

यदि आप इसके साथ पूर्ण रुप से नियंत्रण कक्ष चाहते हैं तो http://pi.interworx.com भी है। उन्हें इस पृष्ठ पर निर्देश हैं कि कैसे पुनरावृत्ति करें, लेकिन आपको धैर्य रखना होगा क्योंकि उपडोमेन स्वयं रासबेरी पाई क्लस्टर से चल रहा है। यह नीचे जाने के मामले में एक तस्वीर है:

http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1

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