Fråga:
Hur bygger jag ett kluster?
berry120
2012-06-13 02:46:27 UTC
view on stackexchange narkive permalink

Det har funnits några artiklar på nätet de senaste åren om att bygga ett kluster av datorer hemma - till exempel här.

Pi ser mig som en bra plattform för att bygga / testa den här typen av saker på grund av deras låga kostnad; ska "generiska" guider som denna överföras till Pi ganska enkelt, eller finns det något specifikt jag borde vara medveten om när jag försöker ett sådant projekt?

Relaterad forumtråd: http://www.raspberrypi.org/phpBB3/viewtopic.php?p=18356#p18356
Jag har lagt till taggen "bramble" eftersom det här är vad de heter. Kan inte ge ett ordentligt svar utöver "sätta en massa ihop och köra hadoop eller något liknande" - jag har faktiskt gillat frågan att titta efter svar själv!
[Andra Pi-användare] (http://element14.com/community/thread/17542) vet inte heller om det magiska ordet "bramble"; att söka i stiftelsens forum kan ha hjälpt men det är ofta långsamt att svara så jag röstar inte ner dig.
University of Southampton har tagit fram steg för att skapa ett 64 pi-kluster (eller "superdator"): http://www.southampton.ac.uk/~sjc/raspberrypi/pi_supercomputer southampton web.pdf
Sex svar:
#1
+35
Alex L
2012-06-13 13:35:36 UTC
view on stackexchange narkive permalink

Jag föreslår att du tittar på Dispy - den distribuerade pythonmodulen för beräkning.

Att köra ett program på ett antal Raspberry Pi (noder) från en dator (server - antag att IP är 192.168.0.100):

  • Installera ett operativsystem på varje RasPi

  • Bifoga varje RasPi till ditt nätverk. Hitta IP-adressen (om den är dynamisk) eller ställ in statiska IP-adresser.
    (Låt oss anta att du har tre noder och deras IP-adresser är 192.168.0.50-52 )

  • Ställ in Python (om inte redan), installera dispy och kör sedan dispynode.py -i 192.168.0.100 på varje RasPi. Detta berättar för dispynoden att ta emot jobbinformation från servern.

  • På datorn (servern) installerar du dispy och kör sedan följande pythonkod :

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

Du kan också ersätta / some / program med en python-funktion - t.ex. compute.

Du kan också inkludera beroenden som pythonobjekt, moduler och filer (som skickar kommer att överföras till varje nod) genom att lägga till beror på [[ClassA, moduleB, 'file1']

Jag skulle gärna höra om någon har gjort detta - vänligen lämna en kommentar så att jag vet om det fungerar!
I mitt fall (openelec + python 2.7) får jag det här felet "File" ./Lib/multiprocessing/__init__.py ", rad 84, i , ImportError: /usr/lib/python2.7/lib-dynload/ _multiprocessing.so: odefinierad symbol: SemLockType ".
Men dispy3-3.6 körs med wheezy + python3! 2013-03-13 23: 01: 30,664 - dispynode - serverar 1 cpus vid 192.168.1.34:51348. När du startar en uppgift (dvs. / bin / ls) tar noden uppgiften, flyttar den körbara filen till / tmp, men något går fel "Exekvering av ['/ tmp / dispy / b7e04cb4a1e144e1 / ls'] misslyckades med (, OSError (8,' Exec format error '), ) "
#2
+10
mlp
2012-06-13 04:33:45 UTC
view on stackexchange narkive permalink

Du bör vara medveten om det arbete som redan har utförts - det finns till och med ett namn för ett kluster av RasPi boxen. Embedded Linux Wiki säger att en Bramble definieras som "ett Beowulf-kluster av Raspberry Pi-enheter". Raspberry Pi Homebrew har ett antal inlägg om Brambles, och se även Foundation: s eget forum.

Jag tror inte att det är bra för den här webbplatsen att berätta för någon att google svaret. Det är användbart att känna till namnet men överväg att lägga till lite innehåll och referenslänkar till ditt svar.
Innehåll och länkar tillagda, @Joe. Det skulle vara trevligt om nedrösterna nu omprövade sina åsikter ...
Jag skulle om jag faktiskt nedröstade dig ...
Jag formulerade det mycket noggrant för att undvika att antyda att du hade, Joe. Kanske inser de inte att röster här kan ångras genom att klicka igen på samma knapp, inte bara omvända genom att klicka på motsatt knapp.
#3
+10
Alex Chamberlain
2012-09-13 00:39:37 UTC
view on stackexchange narkive permalink

Några killar på Southampton Uni har satt ihop ett kluster och skrivit en detaljerad översikt över sitt arbete på http://www.southampton.ac.uk/~sjc/raspberrypi/.

[Rep whore] (http://raspberrypi.stackexchange.com/questions/87/how-do-i-build-a-cluster/184#comment3756_87): P
Egentligen finns det mycket att lära av detta projekt med MPI. Jag bygger mina experiment baserat på de här killarnas arbete. Jag rekommenderar att du markerar det här svaret som rätt svar för frågan.
#4
+6
Kaminara
2012-06-13 05:38:35 UTC
view on stackexchange narkive permalink

Det är helt möjligt, men det största problemet är uppnåbarhet. Det är en idé som jag inte bara skulle tänka till, men också användbar eftersom du kunde gå med tanken på bärbar parallellbearbetning. När det gäller detaljer kommer kodningsspråk som FORTRAN och C ++ att göra bäst.

Titta på beowulf.org för mer information om klusterberäkning

#5
+1
Giridhar Pemmasani
2013-03-21 07:38:04 UTC
view on stackexchange narkive permalink

Detta är svaret på Guido Garcias inlägg ovan angående "dispy" - jag kan inte ta reda på hur jag ska svara på hans inlägg.

När ett program ('/ bin / ls') distribueras med 'dispy' för parallell körning, då överförs det programmet på klientmaskinen till var och en av noderna (till '/ tmp'). Detta för att det användarutvecklade programmet på klientmaskinen överförs utan att ha NFS eller någon delad katalog. Detta fungerar endast med binära program när noder och klientarkitekturer är kompatibla. I ditt fall gissar jag att klientarkitekturen skiljer sig från fjärrnodernas och att en nod inte kan utföra det binära '/ bin / ls' som överförs från klienten. Om du vill köra / bin / ls på varje nod kan det vara lättare att skriva en Python-funktion eller ett program för att skriva ut katalogen (t.ex. med hjälp av os.listdir) och distribuera det istället för binär körbar.

Du behöver 50 anseende för att lämna kommentarer på andra människors svar / frågor. Välkommen dock!
#6
+1
Corey
2013-06-11 22:02:15 UTC
view on stackexchange narkive permalink

Det finns också http://pi.interworx.com om du vill ha en komplett kontrollpanel med den. De har instruktioner på denna sida om hur man ska replikera, men du måste vara tålmodig eftersom den underdomänen körs från ett Rasberry Pi-kluster. Här är ett foto om det går ner:

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



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...