Innehållsförteckning:
- Tillbehör
- Steg 1: Om DEMAC
- Steg 2: 3D -utskrift DEMAC
- Steg 3: Montera DEMAC
- Steg 4: Placera fläkten på höljet
- Steg 5: Gå med i styrhöljet med krafthöljet
- Steg 6: Installera kylenheten
- Steg 7: Placera brädorna på brädfacken
- Steg 8: Skjut brädbrickorna i korthöljet
- Steg 9: Placera strömförsörjningen inuti strömhöljet
- Steg 10: Anslut fläkten till kylaggregatet
- Steg 11: Konfigurera operativsystemet
- Steg 12: Anslut kortet till strömförsörjningen
- Steg 13: Konfigurera router
- Steg 14: Anslutning till Parallellakort med SSH
- Steg 15: Konfigurera nätverk
- Steg 16: Konfigurera Keygen och lösenordsfri åtkomst på styrelser
- Steg 17: Installera Sshfs
- Steg 18: Konfigurera NFS -mapp
- Steg 19: Anslut kortet till strömbrytaren
- Steg 20: Upprepa steg 11 till 19 för varje bräda
- Steg 21: Anslut kringutrustning
- Steg 22: Applicera Power
- Steg 23: Programvaroresurser
Video: DEMAC, ett 3Dprintat modulärt Beowulf -kluster: 23 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
High Performance Computation (HPC) är förmågan att bearbeta data och utföra komplexa beräkningar vid höga hastigheter, det är tillämpningen av "Superdatorer" på beräkningsproblem som antingen är för stora för standarddatorer eller skulle ta för lång tid att slutföras. Top500 är en lista som publiceras två gånger om året och rankas bland de snabbaste och mest kraftfulla datorerna i världen. Länder och stora organisationer spenderar miljontals resurser för att ha dessa system igång för forskare att dra nytta av den senaste tekniken och lösa komplexa problem.
För många år sedan brukade datorer förbättra sina prestanda genom att öka processorns hastighet. Efter att vi mött en avmattning i denna typ av tillvägagångssätt, beslutade utvecklare att för att fortsätta öka datorns prestanda bör flera kärnor (eller beräkningsenheter) packas ihop. Aggregeringen av flera beräkningsresurser och mekanismerna för att kontrollera dessa resurser är vad vi kallar "parallellism" inom datavetenskap. Att ha flera kärnor som utför flera uppgifter låter som ett bra tillvägagångssätt för att förbättra datorns prestanda … men detta öppnar en stor fråga: hur använder vi dessa resurser mer effektivt?
Dessa frågor har hållit datavetenskapare upptagen, det finns flera sätt att berätta för en dator hur man gör saker, det finns ännu fler sätt att berätta för flera datorer hur man gör saker. Detta projekt syftar till att utveckla en prisvärd plattform där alla kan experimentera med en mycket parallell maskin, testa befintliga modeller för att applicera i dina egna projekt, utveckla nya och kreativa sätt att lösa beräkningsproblem eller bara använda det som ett sätt att lära andra om datorer. Vi hoppas att du kommer att trivas lika bra med DEMAC som vi har.
DEMAC
Delaware Modular Assembly Cluster (DEMAC) är ett utökbart utbud av inbäddade system (kortstora datorer) och en uppsättning 3D -tryckta ramar för att omsluta korten och ytterligare hårdvara som ger ström, kylning och nätverksåtkomst.
Varje enhet eller inbäddat system är en liten dator, ett Parallellakort som kombinerar resurserna i en ARM-processor med två kärnor, en 16-kärnig coprocessor som kallas Epiphany och en inbäddad FPGA med flexibiliteten hos en komplett stack med öppen källkod. Fästet är en husgjord 3D-tryckt ram som möjliggör en billig implementering och en eskalerbar struktur. Den är utformad för att passa 4 enheter i en standardstorlek (som de du hittar i datorservrarum).
Denna instruerbara innehåller:
- En lista över material som krävs
- Instruktioner för 3D -utskrift av ramarna
- Instruktioner för montering och anslutning av delarna
- En guide för att ladda ner och installera nödvändig programvara
- En beskrivning av hur du ansluter och interagerar med klustret
- A "Varför gör vi det här?" sektion
Vilka är vi?
Vi är CAPSL (Computer Architecture and Parallel Laboratory), från University of Delaware. Vi tror att framtidens beräkning bör ha en stark bas i Dataflow -teorin (som vi kommer att förklara senare i denna instruerbara om du är intresserad).
Tillbehör
Den här listan beskriver de material som krävs för att bygga ett 4-board-kluster
- 4 Parallellakort (du kan få dem från DigiKey eller andra leverantörer, du kan hitta mer information på deras webbplats
-4 mikro-SD-kort med minst 16 GB (här är ett mycket billigt 10-pack eller något liknande dessa mer flexibla kombinationer)
- 4 mikro-USB-kablar min längd 30 cm (1 fot) (jag rekommenderar dessa)
- USB-laddare [med minst 4 typ A-portar] (jag rekommenderar den här med 6-portar, eller en med samma formfaktor, eftersom strömkåpan är konstruerad för den)
- Kylfläkt [max storlek 100 mm x 100 mm x 15 mm] (jag rekommenderar den här eftersom den är billig och fungerar, men andra med liknande storlek och kabelkonfiguration fungerar)
- Strömförsörjning för kylfläkt (Om din konfiguration är för mer än 8 kort rekommenderar jag den här eller något liknande [AC 100 V/ 240 V till DC 12 V 10 A 120 W] som har ett snyggt metallhölje och kan också fästas till strömbrytaren) (Om du bara vill ansluta två fläktar eller mindre kan du använda valfri 12 V med minst 1 A uteffekt som du kan ha kvar)
- 5 Ethernet -kablar (4 kan vara korta så här, beroende på avståndet från switch till kort, och en bör vara tillräckligt lång för att ansluta switch med antingen din dator eller modemet för att komma åt klusternätverket)
>> Viktig anmärkning: Ett kylsystem krävs, annars kan brädorna överhettas! <<<
3D-tryckta delar
- 4 brädfack (Frame_01)
- 1 korthölje (Frame_02)
- 1 fläkthölje (Frame_03_B & Frame_03_T)
- 1 strömhölje (Frame_04)
Steg 1: Om DEMAC
DEMAC är en del av en större bild, en flexibel och eskalerbar plattform som gör att vi kan utveckla och testa nya programmeringsavkörningsmodeller (PXM) för parallellberäkning. En PXM är mer än ett sätt att beskriva beräkning, den representerar ryggraden som ger en överensstämmelse mellan hur ett program uttrycks och hur det översätts till ett gemensamt språk som kan köras av maskinen. Vi beskriver en uppsättning element som gör att användaren kan generera program och ett sätt att organisera genomförandet av programmet. Programmet kan optimeras för att rikta in sig på en specifik arkitektur av användaren eller ett automatiserat verktyg baserat på denna vanliga bakgrund.
Du kan lära dig mer om detta projekt i slutet av den här instruktionsboken, du kan också klicka här för att få mer information om DEMAC eller här för att få mer information om CAPSL)
Steg 2: 3D -utskrift DEMAC
I det här avsnittet kan du hitta en guide för 3D -utskrift av ramarna som omger de andra komponenterna och ger strukturellt stöd. Även om du är en 3D -utskriftsmästare, här är några tips du kan tänka på när du skriver ut dessa ramar. Alla ramar kan skrivas ut med ett 0,4 mm munstycke med 0,3 eller 0,2 lagerhöjd (du kan också använda adaptiv). Jag skrev ut allt med PLA men det spelar ingen roll om du vill använda andra material (så länge de ger strukturell stabilitet och tål högre eller lika temperaturer än PLA).
STL -filer:
www.thingiverse.com/thing:4493780
cults3d.com/en/3d-model/various/demac-a-mo…
www.myminifactory.com/object/3d-print-dema…
Kortbricka (Frame_01)
Inga ytterligare stöd krävs. Den här är ganska enkel, placera den bara med den plana ytan mot utskriftsytan.
Korthölje (Frame_02)
Den här kan kräva lite stöd i mittbalkarna. Du kan argumentera för att en välstämd maskin/skärare kan skriva ut dessa broar utan ytterligare stöd. Prova några brytstest först om du vill skriva ut utan stöd eftersom tanken var att det inte skulle kräva dem. Å andra sidan ger kolumnerna i sidled och väggarna tillräckligt stöd för att dessa ska kunna skrivas ut utan ytterligare stödstrukturer.
Fläkthölje (Frame_03_B & Frame_03_T)
Inga ytterligare stöd krävs. Placera bara båda delarna med den plana ytan mot utskriftsytan.
Strömhölje (Frame_04)
I likhet med Frame_02 kan den här kräva lite stöd i mittbalkarna. Du kan också försöka skriva ut detta utan ytterligare stödmaterial (som det var tänkt). Kolumnerna i sidled och väggarna ger tillräckligt stöd för att dessa ska kunna skrivas ut utan ytterligare stödstrukturer.
Utgångskylningshölje (Frame_05_B & Frame_05_T)
Inga ytterligare stöd krävs. Placera bara båda delarna med den plana ytan mot utskriftsytan.
Steg 3: Montera DEMAC
Nu när du har alla delar som krävs är det dags att börja montera klustret.
Kom ihåg att ta bort stödmaterialet du kan ha på ramarna.
Steg 4: Placera fläkten på höljet
Skjut helt enkelt fläkten inuti Frame_03_B (med kabeln i det nedre högra hörnet), den nedre delen ska passa inuti de små krökta väggarna som håller fläkten på plats.
Placera Frame_03_T med de små krökta väggarna nedåt ovanpå Frame_03_B (med fläkten redan på plats). Var noga med att placera det bredaste locket på Frame_03_T mot Frame_03_Bs bredare (bakre) yta. Ramarna ska klicka och locken ska hålla dem på plats.
Steg 5: Gå med i styrhöljet med krafthöljet
Placera Frame_02 ovanpå Frame_04, dessa två är utformade för att snäppa ihop. Det finns en liten buckla på den nedre delen av Frame_02 som passar kontakterna ovanpå Frame_04. Använd försiktig kraft för att ansluta dem.
Steg 6: Installera kylenheten
Frame_03 (B&T) är utformade för att snäppa ihop med Frame_02, placera fläkten mot brädorna (luftflödet ska gå inåt Frame_02). Det finns små bucklor på Frame_02s kolumner som ska matcha märkena i Frame_03_B. Applicera ett försiktigt tryck i strukturens sidoytor tills ramarna klickar.
Steg 7: Placera brädorna på brädfacken
Frame_01 har 4 stift som matchar hålen i Parallellakortet. Brädan ska enkelt passa i brickan. Beroende på din 3D-skrivarkalibrering kan de vara för stora eller för små, du kan använda lite flytande silikonlim för att hålla dem på plats eller trycka dem lite med en tång för att minska diametern.
>> Viktig anmärkning: Kom ihåg att placera kylflänsarna på brädet <<<
Steg 8: Skjut brädbrickorna i korthöljet
Frame_01 ger plats som passar in i Frame_02 -skenor för varje nivå. Observera att det bara finns en sida öppen för att ta emot brädfacket. Det finns också en liten bula som hjälper till att hålla Frame_01 på plats (ärligt talat kan dessa använda en viss förbättring i en framtida version).
Skjut alla fyra brädfack med brädorna redan på plats, 1 per varje nivå.
Steg 9: Placera strömförsörjningen inuti strömhöljet
Placera USB -strömförsörjningen inuti Frame_04 med USB -portarna vända utåt. Det finns en liten öppning på andra sidan för strömkabeln som matar navet.
Steg 10: Anslut fläkten till kylaggregatet
Fläkten ska nu anslutas till 12 V strömförsörjningen som ger energi till kylenheten.
>> Viktig anmärkning: Håll kylsystemet igång hela tiden medan korten är anslutna till strömförsörjningen <<<
Steg 11: Konfigurera operativsystemet
1. Ladda ner rekommenderat operativsystem (Parabuntu) här
Det finns två versioner av chipsen (z7010 [P1600/P1601] och z7020 [P1602/A101040] som kräver olika filer.
För båda versionerna finns det en huvudlös version (ingen grafisk användargränssnitt) och en version som ger HDMI -stöd och ett grafiskt användargränssnitt)
Om du vill använda HDMI-utgången kom ihåg att skaffa en mini-HDMI-kabel.
Du kan ansluta till den huvudlösa versionen via nätverket.
Mer information och detaljerad förklaring finns här på den officiella webbplatsen.
Här är stegen för att installera operativsystemet med en Linux-baserad distribution. Du kan använda kommandon i terminalen (utan $ -symbolen) för nästa steg eller kontrollera andra procedurer på webbplatsen.
2. Installera
- Sätt i mikro-SD-kortet i din vanliga dator- Packa upp Ubuntu-bilden. Ändra [releasename] för bildnamnet.
$ gunzip -d [releasename].img.gz
3. Verifiera enhetens sökväg för ditt SD -kort
Den exakta sökvägen till ditt SD -kort beror på din Linux -distribution och datorinstallation. Använd kommandot nedan för att få rätt väg. Om det inte framgår av utmatningen vilken sökväg som är den rätta, prova kommandot med och utan SD -kortet isatt. I Ubuntu kan sökvägen vara ungefär "/dev/mmcblk0p1".
$ df -h
4. Avmontera SD -kortet Du måste avmontera alla partitioner på SD -korten innan du bränner kortet. [Sd-partition-sökvägen] kommer från kommandot 'df' i steg 3.
$ umount [sd-partition-path]
5. Bränn Ubuntu-diskavbildningen på mikro-SD-kortet
Bränn bilden på SD -kortet med hjälp av "dd" -verktyget som visas i kommandoexemplet nedan. Var försiktig och se till att du anger vägen korrekt eftersom det här kommandot är irreversibelt och kommer att skriva över allt i sökvägen! Ett exempelkommando i Ubuntu skulle vara: ‘sudo dd bs = 4M if = my_release.img of =/dev/mmcblk0’. Var tålmodig, det kan ta ett tag (många minuter) beroende på vilken dator och SD -kort som används.
$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]
6. Se till att alla skrivningar till SD -kortet har slutförts
$ synk
7. Sätt in SD -kortet i SD -kortplatsen i kortet
Steg 12: Anslut kortet till strömförsörjningen
Använd miniUSB till USB-A-kabeln för att ansluta ett av korten till USB-hubben. Du kan märka portarna och kablarna eller definiera en ordning för anslutningarna om du behöver koppla bort ett kort senare.
Steg 13: Konfigurera router
Om du installerar den huvudlösa OS -installationen medan du är på ett stort nätverk måste du använda en router och ansluta den till internet, Parallellakort och din persondator.
Om du inte kan ansluta till routern kan du också ansluta kortet direkt till din dator med Ethernet -kabeln. Denna procedur kan vara lite svårare och skulle inte omfattas av denna instruktion.
När allt är anslutet öppnar du routerns gränssnitt för att ta reda på vilken IP -adress som ges till din Parallella som standard. Leta efter en flik som säger Nätverk. Hitta sedan en sektion med namnet DHCP Client List. Där bör du se din Parallellakort och dess IP -adress.
Med denna IP -adress kan du SSH in i Parallella och ställa in en statisk IP -adress.
Steg 14: Anslutning till Parallellakort med SSH
Obs! För detta avsnitt är [default_IP] den dynamiska IP -adress du hittade i DHCP -klientlistan.
Kontrollera anslutningen till kortet
$ ping [default_IP]
SSH in i kortet för första gången (standardlösenordet är parallella)
$ ssh parallella@[default_IP]
Steg 15: Konfigurera nätverk
- Ändra värdnamn: edit /etc /hostname
Här kan du tilldela vilket namn du vill, vi rekommenderar att du använder NOPA ##
Där ## identifierar kortets nummer (dvs. 01, 02, …)
- Ange andra kort IP -adresser: edit /etc /hosts
Ange statisk IP -adress: lägg till texten nedan för /etc/network/interfaces.d/eth0
#Det primära nätverksgränssnittet auto eth0
iface eth0 inet statisk
adress 192.168.10.101 #IP bör ligga inom routerns räckvidd
nätmask 255.255.255.0
gateway 192.168.10.1 #Detta bör vara routerns adress
namnserver 8.8.8.8
namnserver 8.8.4.4
När du har tilldelat IP -kortet till kortet kan du starta om anslutningen med kommandot
$ ifdown eth0; ifup eth0
eller starta om kortet
Steg 16: Konfigurera Keygen och lösenordsfri åtkomst på styrelser
Skapa ett privat offentligt nyckelpar på varje nod (inklusive huvudnoden). Skapa en tillfällig mapp, skapa en ny nyckel och gör den till en auktoriserad nyckel, och lägg till alla NOPA: er för de kända värdarna enligt nedan.
mkdir tmp_sshcd tmp_ssh ssh -keygen -f./id_rsa
#Tryck på enter två gånger för att ställa in och bekräfta ett tomt lösenord
cp id_rsa.pub autoriserade_nycklar
för i i 'seq 0 24'; gör j = $ (echo $ i | awk '{printf "%02d / n", $ 0}');
ssh-keyscan NOPA $ J >> kända_värdar; Gjort
Steg 17: Installera Sshfs
- Med sshfs kan du dela filer mellan korten i klustret. Kör följande kommando:
$ sudo apt -get install -y sshfs
- Söker efter / skapar säkringsgrupp
Kontrollera om säkringsgruppen finns:
$ cat /etc /group | grep 'säkring'
Om gruppen finns, kör följande kommando
$ bash sudo usermod -a -G säkring parallella
- Om gruppen inte finns, skapa den och lägg till användaren i den
$ sudo groupadd säkring
$ sudo usermod -a -G säkring parallella
- Avmarkera raden user_allow_other i filen fuse.config
$ sudo vim /etc/fuse.conf
Steg 18: Konfigurera NFS -mapp
- Ändra filen /etc /fstab
$ sudo vim /etc /fstab
- Ersätt innehållet med texten som visas nedan
# [filsystem] [monteringspunkt] [typ] [alternativ]
sshfs#parallella@NOPA01:/home/parallella/DEMAC_nfs/home/parallella/DEMAC_nfs fuse comment = sshfs, noauto, users, exec, rw, uid = 1000, gid = 1000, allow_other, reconnect, transform_symlinks, BatchMode = yes, nonempty, _netdev, identityfile =/home/parallella/.ssh/id_rsa, default_permissions 0 0
Steg 19: Anslut kortet till strömbrytaren
Placera omkopplaren under klustret eller någonstans i närheten, använd Ethernet -kablar för att ansluta kortet du redan har konfigurerat till strömställaren. Du kan också ansluta omkopplaren och din dator till routern för att få åtkomst till klustret.
Du bör kunna pinga och ssh in på kortet som nu är anslutet till switch med en statisk IP.
Du kan också lägga till IP och värdnamn till din /etc /hosts -fil. Du kommer att kunna använda värdnamnet för att ansluta istället för att skriva hela IP -adressen.
Steg 20: Upprepa steg 11 till 19 för varje bräda
Följ proceduren för att konfigurera operativsystemet och nätverket för varje kort.
>> Viktig anmärkning: Använd olika värdnamn och IP för varje kort! De ska vara unika genom nätverket! <<<
Steg 21: Anslut kringutrustning
Se till att fläkten fungerar:
Se till att fläkten får ström och att luftflödet går inåt i kortets hölje. Anslutningen ska vara stabil och oberoende av andra element. Kom ihåg att brädorna kan överhettas om de inte kyls korrekt.
Se till att korten är anslutna till strömbrytaren:
Vid denna tidpunkt borde du ha konfigurerat varje kort oberoende av varandra. Korten bör också anslutas till strömställaren. Switchens manual bör ge information som kan användas för att kontrollera att startprocessen har slutförts korrekt, det kan finnas några lysdioder som indikerar status.
Anslut korten till strömförsörjningen:
Använd mikro-USB till USB-A-kabeln för att ansluta alla kort till USB-hubben. Du kan märka portarna eller definiera en order om du behöver koppla bort ett enda kort.
Steg 22: Applicera Power
1. Fläkten ska fungera.
2. Korten ska vara anslutna till Ethernet -switch.
3. Kontrollera att korten är anslutna till USB -hubben.
4. Ge ström till USB -hubben.
5. Aktivera DEMAC!
6. Vinst!
Steg 23: Programvaroresurser
MPI (Message Passing Interface)
MPI är ett kommunikationsprotokoll för programmering av parallella datorer. Både punkt-till-punkt och kollektiv kommunikation stöds.
www.open-mpi.org/
OpenMP (Open Multi-Processing)
Applikationsprogrammeringsgränssnittet (API) OpenMP (Open Multi-Processing) stöder multi-plattformsprogram med delat minne med flera processer i C, C ++ och Fortran, på många plattformar. Den består av en uppsättning kompilatordirektiv, biblioteksrutiner och miljövariabler som påverkar körtidens beteende.
www.openmp.org/
Parallellprogramvara
Utvecklarna tillhandahåller en öppen källkod, inklusive ett SDK för att ansluta till acceleratorn.
www.parallella.org/software/
Du kan också hitta manualer och mer detaljerad information.
De har också GitHub -arkiv:
github.com/parallella
Ladda gärna ner och kör några av exemplen, en av mina favoriter är livets spel baserat på den berömda Conway's Game of Life.
Friskrivningsklausul: Definitioner kan kopieras från wikipedia
Rekommenderad:
Hur man gör ett USB -minne med ett suddgummi - DIY USB Drive -fodral: 4 steg
Hur man gör ett USB -minne med ett suddgummi | DIY USB Drive Case: Den här bloggen handlar om " Hur man gör USB Flash Drive med ett suddgummi | DIY USB Drive Case " jag hoppas du kommer gilla det
Ett modulärt, USB -drivet, Bluetooth -högtalarsystem: 7 steg (med bilder)
Ett modulärt, USB -drivet Bluetooth -högtalarsystem: Vi lär oss hur man bygger ett enkelt men ändå mycket användbart USB -drivet Bluetooth -högtalarsystem som använder ett modulärt hölje. Du kan skala upp detta och lägga till flera högtalare för att skapa en soundbar. Det finns till och med utrymme för att lägga till ett batteri i systemet för att skapa en
Ovanlig anpassad låda/hölje (snabbt, enkelt, modulärt, billigt): 7 steg
Ovanlig anpassad låda/kapsling (snabb, enkel, modulär, billig): Syftet med denna instruktion är att visa dig hur du gör billiga, anpassade, modulära lådor/kapslingar. Jag ska visa dig hur du gör det med begränsad verktyg och budget. Detta är min första instruktionsbok (även engelska är inte mitt första språk), så var snäll
Hur man programmerar ett AVR -kort med ett Arduino -kort: 6 steg
Hur man programmerar ett AVR -kort med ett Arduino -kort: Har du ett AVR -mikrokontrollkort? Är det svårt att programmera det? Tja, du är på rätt ställe. Här kommer jag att visa dig hur du programmerar ett Atmega8a mikrokontrollerkort med ett Arduino Uno -kort som programmerare. Så utan längd
Förvandla valfri hörlur till ett modulärt headset (icke -påträngande) utan att skada hörlurarna: 9 steg
Förvandla alla hörlurar till ett modulärt headset (icke -påträngande) utan att skada hörlurarna.: Det här är en idé jag hade ur det blå efter att en vän gav mig några trasiga superbilliga headset. Det är en modulär mikrofon som kan magnetiskt anslutas till nästan alla hörlurar (jag gillar det här eftersom jag kan spela med högupplösta hörlurar och även