Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Om DEMAC
- Trinn 2: 3D -utskrift DEMAC
- Trinn 3: Monter DEMAC
- Trinn 4: Plasser viften på foringsrøret
- Trinn 5: Bli med i styret med strømkassen
- Trinn 6: Installer kjøleenheten
- Trinn 7: Plasser brettene på brettene
- Trinn 8: Skyv brettene i brettet
- Trinn 9: Plasser strømforsyningen inne i strømhuset
- Trinn 10: Koble viften til kjøleeffekten
- Trinn 11: Konfigurer operativsystemet
- Trinn 12: Koble kortet til strømforsyningen
- Trinn 13: Konfigurere ruter
- Trinn 14: Koble til Parallella Board med SSH
- Trinn 15: Konfigurere nettverk
- Trinn 16: Konfigurere Keygen og passordfri tilgang på tavler
- Trinn 17: Installere Sshfs
- Trinn 18: Konfigurer NFS -mappen
- Trinn 19: Koble kortet til bryteren
- Trinn 20: Gjenta trinn 11 til 19 for hvert brett
- Trinn 21: Koble til eksterne enheter
- Trinn 22: Påfør strøm
- Trinn 23: Programvareressurser
Video: DEMAC, en 3Dprintet modulær Beowulf -klynge: 23 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
High Performance Computation (HPC) er evnen til å behandle data og utføre komplekse beregninger ved høye hastigheter, det er anvendelsen av "Superdatamaskiner" til beregningsproblemer som enten er for store for standarddatamaskiner eller som vil ta for lang tid å fullføres. Top500 er en liste som publiseres to ganger i året, og rangerer noen av de raskeste, kraftigste datamaskinene i verden. Land og store organisasjoner bruker millioner av ressurser på å få disse systemene i drift for at forskere kan dra nytte av den nyeste teknologien og løse komplekse problemer.
For mange år siden pleide datamaskiner å forbedre ytelsen ved å øke hastigheten på prosessoren. Etter at vi møtte en nedgang i denne typen tilnærminger, bestemte utviklerne at flere kjerner (eller beregningsenheter) skulle pakkes sammen for å fortsette å øke ytelsen til datamaskiner. Samlingen av flere beregningsressurser og mekanismene for å kontrollere disse ressursene er det vi kaller "parallellitet" i informatikk. Å ha flere kjerner som gjør flere oppgaver høres ut som en god tilnærming for å forbedre ytelsen til en datamaskin … men dette åpner et stort spørsmål: hvordan bruker vi disse ressursene mer effektivt?
Disse spørsmålene har holdt datavitenskapsmannen opptatt. Det er flere måter å fortelle en datamaskin hvordan man gjør ting. Det er enda flere måter å fortelle flere datamaskiner hvordan man gjør ting. Dette prosjektet tar sikte på å utvikle en rimelig plattform der alle kan eksperimentere med en svært parallell maskin, teste eksisterende modeller for å bruke i dine egne prosjekter, utvikle nye og kreative måter å løse beregningsproblemer eller bare bruke den som en måte å lære andre om datamaskiner. Vi håper du kan like godt å jobbe med DEMAC som vi har.
DEMAC
Delaware Modular Assembly Cluster (DEMAC) er et utvidbart utvalg av innebygde systemer (datamaskiner i kortstørrelse) og et sett med 3D -trykte rammer for å omslutte kortene og ekstra maskinvare som gir strøm, kjøling og nettverkstilgang.
Hver enhet eller innebygd system er en liten datamaskin, et Parallella-kort som kombinerer ressursene til en ARM-prosessor med to kjerner, en 16-kjerners prosessor som kalles Epiphany og en innebygd FPGA med fleksibiliteten til en komplett stabel med åpen kildekode. Monteringen er en hjemmelaget 3D-trykt ramme som gir en rimelig implementering og en eskalerbar struktur. Den er designet for å passe 4 enheter av en standardstørrelse (som de du finner i dataserverom).
Denne instruksen inkluderer:
- En liste over nødvendige materialer
- Instruksjoner for 3D -utskrift av rammene
- Instruksjoner for montering og tilkobling av delene
- En guide for å laste ned og installere nødvendig programvare
- En beskrivelse av hvordan du kobler til og samhandler med klyngen
- A "Hvorfor gjør vi dette?" seksjon
Hvem er vi?
Vi er CAPSL (Computer Architecture and Parallel Laboratory), fra University of Delaware. Vi mener fremtiden for beregning bør ha en sterk base i Dataflow -teorien (som vi vil forklare senere i denne instruksjonsboken hvis du er interessert).
Rekvisita
Denne listen beskriver materialene som kreves for å bygge en 4-bordsklynge
- 4 Parallellatavler (du kan få dem fra DigiKey eller andre leverandører, du finner mer informasjon på deres nettsted
-4 mikro-SD-kort med minst 16 GB (her er en veldig billig 10-pakning eller lignende som disse mer fleksible kombinasjonene)
- 4 mikro-USB-kabler min lengde 30 cm (1 fot) (jeg anbefaler disse)
- USB-lader [med minst 4 type A-porter] (jeg anbefaler denne med 6-porter, eller en med samme formfaktor, siden strømkassen er designet for den)
- Kjølevifte [maks størrelse 100 mm x 100 mm x 15 mm] (jeg anbefaler denne fordi den er billig og fungerer, men andre med lignende størrelse og kabelkonfigurasjon fungerer)
- Strømforsyning for kjølevifte (Hvis konfigurasjonen er for mer enn 8 brett, anbefaler jeg denne eller lignende [AC 100 V/ 240 V til DC 12 V 10 A 120 W] som har et fint metallhus og kan også festes til bryteren) (Hvis du skal plugge bare to vifter eller mindre, kan du bruke hvilken som helst 12 V med minst 1 A utgangseffekt du kan ha liggende)
- 5 Ethernet -kabler (4 kan være korte som disse, avhengig av avstanden fra bryteren til kortene, og en bør være lang nok til å koble bryteren til enten datamaskinen eller modemet for å få tilgang til klyngenettverket)
>> Viktig merknad: Et kjølesystem er nødvendig, ellers kan platene overopphetes! <<<
3D-trykte deler
- 4 brett (Frame_01)
- 1 brettkabinett (Frame_02)
- 1 viftehus (Frame_03_B & Frame_03_T)
- 1 strømforsyning (Frame_04)
Trinn 1: Om DEMAC
DEMAC er en del av et større bilde, en fleksibel og eskalerbar plattform som lar oss utvikle og teste nye programmeringsutførelsesmodeller (PXM) for parallellberegning. En PXM er mer enn en måte å beskrive beregning på, den representerer ryggraden som gir en avtale mellom måten et program uttrykkes på og hvordan det blir oversatt til et felles språk som kan utføres av maskinen. Vi beskriver et sett med elementer som lar brukeren generere programmer og en måte å organisere utførelsen av programmet på. Programmet kan optimaliseres for å målrette en bestemt arkitektur av brukeren eller et automatisert verktøy basert på denne vanlige bakgrunnen.
Du kan lære mer om dette prosjektet på slutten av denne instruksjonsboken, du kan også klikke her for å få mer informasjon om DEMAC eller her for å få mer informasjon om CAPSL)
Trinn 2: 3D -utskrift DEMAC
I denne delen kan du finne en guide for 3D -utskrift av rammene som omslutter de andre komponentene og gir strukturell støtte. Selv om du er en 3D -utskriftsmester, er det noen tips du kan vurdere når du skriver ut disse rammene. Alle rammer kan skrives ut med en 0,4 mm dyse med 0,3 eller 0,2 laghøyde (du kan også bruke adaptiv). Jeg skrev ut alt ved hjelp av PLA, men det spiller egentlig ingen rolle om du vil bruke andre materialer (så lenge de gir strukturell stabilitet og tåler høyere eller like temperaturer enn PLA).
STL filer:
www.thingiverse.com/thing:4493780
cults3d.com/en/3d-model/various/demac-a-mo…
www.myminifactory.com/object/3d-print-dema…
Brettbrett (Frame_01)
Ingen ekstra støtte er nødvendig. Denne er ganske grei, bare legg den med den flate overflaten mot utskriftsoverflaten.
Board Casing (Frame_02)
Denne kan kreve litt støtte i midtbjelkene. Du kan argumentere for at en godt innstilt maskin/skiver kan skrive ut disse broene uten ekstra støtte. Prøv noen brostresstester først hvis du vil skrive ut uten støtte, siden tanken var at den ikke ville kreve dem. På den annen side gir søylene og veggene kolonnene nok støtte til at disse kan skrives ut uten ytterligere støttestrukturer.
Viftehus (Frame_03_B & Frame_03_T)
Ingen ekstra støtte er nødvendig. Bare plasser begge delene med den flate overflaten vendt mot utskriftsoverflaten.
Strømhus (Frame_04)
I likhet med Frame_02 kan denne kreve litt støtte i midtbjelkene. Du kan også prøve å skrive ut denne uten ekstra støttemateriale (slik den var ment). Kolonnene lateralt og veggene gir nok støtte til at disse kan skrives ut uten ytterligere støttestrukturer.
Utgangskjøling (Frame_05_B & Frame_05_T)
Ingen ekstra støtte er nødvendig. Bare plasser begge delene med den flate overflaten vendt mot utskriftsoverflaten.
Trinn 3: Monter DEMAC
Nå som du har alle nødvendige deler, er det på tide å begynne å montere klyngen.
Husk å fjerne støttematerialet du kan ha på rammene.
Trinn 4: Plasser viften på foringsrøret
Bare skyv viften inne i Frame_03_B (med kabelen i høyre nedre hjørne), den nedre delen skal passe inne i de små buede veggene som holder viften på plass.
Plasser Frame_03_T med de små buede veggene vendt nedover på toppen av Frame_03_B (med viften allerede på plass). Vær forsiktig med å plassere det bredeste lokket på Frame_03_T mot den bredere (bakre) siden av Frame_03_B. Rammene skal klikke og lokkene skal holde dem på plass.
Trinn 5: Bli med i styret med strømkassen
Plasser Frame_02 på toppen av Frame_04, disse to er designet for å snappe sammen. Det er en liten bulke på den nedre delen av Frame_02 som passer til kontaktene på toppen av Frame_04. Bruk forsiktig kraft for å koble dem.
Trinn 6: Installer kjøleenheten
Frame_03 (B&T) er designet for å snappe sammen med Frame_02, plassere viften mot brettene (luftstrømmen skal gå innover Frame_02). Det er små bulker på Frame_02s kolonner som skal matche merkene i Frame_03_B. Påfør forsiktig trykk i sideflatene på strukturen til rammene klikker.
Trinn 7: Plasser brettene på brettene
Frame_01 har 4 pinner som matcher hullene i Parallella -brettet. Brettet skal lett passe inn i brettet. Avhengig av 3D-skriverens kalibrering kan de være for store eller for små, du kan bruke litt flytende silikonlim for å holde dem på plass eller trykke dem litt med en tang for å redusere diameteren.
>> Viktig merknad: Husk å plassere varmeavlederne på brettet <<<
Trinn 8: Skyv brettene i brettet
Frame_01 gir spor som passer inn i Frame_02 -skinner for hvert nivå. Vær oppmerksom på at det bare er en side åpen for å motta brettbrettet. Det er også en liten bump som hjelper til med å holde Frame_01 på plass (ærlig talt, disse kan bruke noen forbedringer i en fremtidig versjon).
Skyv alle 4 brett med brettene allerede på plass, 1 per hvert nivå.
Trinn 9: Plasser strømforsyningen inne i strømhuset
Plasser USB -strømforsyningen inne i Frame_04 med USB -portene vendt utover. Det er en liten åpning på den andre siden for strømkabelen som mater navet.
Trinn 10: Koble viften til kjøleeffekten
Viften skal nå kobles til 12 V strømforsyningen som gir energi til kjøleenheten.
>> Viktig merknad: La kjølesystemet fungere hele tiden mens kortene er koblet til strømforsyningen <<<
Trinn 11: Konfigurer operativsystemet
1. Last ned anbefalt operativsystem (Parabuntu) her
Det er to revisjoner av sjetongene (z7010 [P1600/P1601] og z7020 [P1602/A101040] som krever forskjellige filer.
For begge versjonene er det en hodeløs versjon (Ingen grafisk brukergrensesnitt) og en versjon som gir HDMI -støtte og et grafisk brukergrensesnitt)
Hvis du vil bruke HDMI-utgangen, husk å kjøpe en mini-HDMI-kabel.
Du kan grensesnittet med den hodeløse versjonen gjennom nettverket.
Mer informasjon og detaljert forklaring finner du her på det offisielle nettstedet.
Her er trinnene for å installere operativsystemet ved hjelp av en Linux-basert distribusjon. Du kan bruke kommandoer i terminalen (uten $ -symbolet) for de neste trinnene eller sjekke andre prosedyrer på nettstedet.
2. Installer
- Sett inn micro-SD-kortet i den vanlige datamaskinen.- Pakk ut Ubuntu-bildet. Endre [utgivelsesnavn] for bildenavnet.
$ gunzip -d [utgivelsesnavn].img.gz
3. Kontroller enhetsbanen til SD -kortet
Den eksakte enhetsbanen til SD -kortet avhenger av Linux -distribusjonen og datamaskinoppsettet. Bruk kommandoen nedenfor for å få riktig vei. Hvis det ikke er klart fra utgangen hvilken bane som er riktig, kan du prøve kommandoen med og uten SD -kortet satt inn. I Ubuntu kan banen som returneres være noe som '/dev/mmcblk0p1'.
$ df -h
4. Avmonter SD -kortet Du må fjerne alle partisjonene på SD -kortene før du brenner kortet. [Sd-partisjon-banen] kommer fra kommandoen 'df' i trinn 3.
$ umount [sd-partition-path]
5. Brenn Ubuntu-diskbildet på mikro-SD-kortet
Brenn bildet på SD -kortet ved hjelp av "dd" -verktøyet som vises i kommandoeksemplet nedenfor. Vær forsiktig og sørg for at du angir banen riktig ettersom denne kommandoen er irreversibel og vil overskrive alt i banen! En eksempelkommando i Ubuntu vil være: 'sudo dd bs = 4M if = my_release.img of =/dev/mmcblk0'. Vær tålmodig, dette kan ta en stund (mange minutter) avhengig av datamaskinen og SD -kortet som brukes.
$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]
6. Kontroller at alle skrivingene til SD -kortet er fullført
$ synkronisering
7. Sett inn SD -kortet i SD -kortsporet i brettet
Trinn 12: Koble kortet til strømforsyningen
Bruk miniUSB til USB-A-kabelen for å koble et av kortene til USB-huben. Du kan merke portene og kablene eller definere en rekkefølge for tilkoblingene i tilfelle du må koble fra et kort senere.
Trinn 13: Konfigurere ruter
Hvis du installerer den hodeløse operativsystemet mens du er på et stort nettverk, må du bruke en ruter og koble den til internett, Parallella -kortene og din personlige datamaskin.
Hvis du ikke kan koble til ruteren, kan du også koble kortet direkte til datamaskinen din med Ethernet -kabelen. Denne prosedyren kan være litt vanskeligere og vil ikke bli dekket i denne instruksen.
Når alt er koblet til, åpner du ruterens grensesnitt for å finne ut hvilken IP -adresse som er gitt til Parallella som standard. Se etter en fane som sier Nettverk. Finn deretter en seksjon merket DHCP Client List. Der bør du se Parallella -kortet og dens IP -adresse.
Med denne IP -adressen kan du SSH inn i Parallella og sette opp en statisk IP -adresse.
Trinn 14: Koble til Parallella Board med SSH
Merk: For denne delen er [default_IP] den dynamiske IP -adressen du fant i DHCP -klientlisten.
Kontroller tilkoblingen til kortet
$ ping [default_IP]
SSH inn i brettet for første gang (standardpassord er parallella)
$ ssh parallella@[default_IP]
Trinn 15: Konfigurere nettverk
- Endre vertsnavn: rediger /etc /hostname
Her kan du tilordne hvilket som helst navn du vil, vi anbefaler å bruke NOPA ##
Hvor ## identifiserer brettnummeret (dvs. 01, 02, …)
- Angi andre tavler IP -adresser: edit /etc /hosts
Angi statisk IP -adresse: legg til teksten nedenfor for /etc/network/interfaces.d/eth0
#Det primære nettverksgrensesnittet eth0
iface eth0 inet statisk
adresse 192.168.10.101 #IP skal ligge innenfor ruterens rekkevidde
nettmaske 255.255.255.0
gateway 192.168.10.1 #Dette bør være adressen til ruteren
navneserver 8.8.8.8
navneserver 8.8.4.4
Når du har tilordnet IP -en til styret, kan du starte tilkoblingen på nytt med kommandoen
$ ifdown eth0; ifup eth0
eller start brettet på nytt
Trinn 16: Konfigurere Keygen og passordfri tilgang på tavler
Sett opp et privat offentlig nøkkelpar på hver node (inkludert hode -noden). Lag en midlertidig mappe, generer en ny nøkkel og gjør den til en autorisert nøkkel, og legg til alle NOPA -er til de kjente vertene som vist nedenfor.
mkdir tmp_sshcd tmp_ssh ssh -keygen -f./id_rsa
#Trykk på enter to ganger for å angi og bekrefte et tomt passord
cp id_rsa.pub autoriserte_nøkler
for i i 'seq 0 24'; do j = $ (echo $ i | awk '{printf "%02d / n", $ 0}');
ssh-keyscan NOPA $ J >> kjent_verter; gjort
Trinn 17: Installere Sshfs
- Ved å bruke sshfs kan du dele filer mellom brettene i klyngen. Kjør følgende kommando:
$ sudo apt -get install -y sshfs
- Søker etter / oppretter sikringsgruppe
Sjekk om sikringsgruppen eksisterer:
$ cat /etc /group | grep 'sikring'
Hvis gruppen eksisterer, utfører du følgende kommando
$ bash sudo usermod -a -G sikring parallella
- Hvis gruppen ikke eksisterer, opprett den og legg til brukeren i den
$ sudo group legge til sikring
$ sudo usermod -a -G sikringsparallella
- Fjern kommentaren til linjen user_allow_other i filen fuse.config
$ sudo vim /etc/fuse.conf
Trinn 18: Konfigurer NFS -mappen
- Endre filen /etc /fstab
$ sudo vim /etc /fstab
- Erstatt innholdet med teksten vist nedenfor
# [filsystem] [festepunkt] [type] [alternativer]
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
Trinn 19: Koble kortet til bryteren
Plasser bryteren under klyngen eller et sted i nærheten, bruk Ethernet -kabler for å koble kortet du allerede har konfigurert til bryteren. Du kan også koble bryteren og datamaskinen til ruteren for å få tilgang til klyngen.
Du bør kunne pinge og ssh inn på kortet som nå er koblet til bryteren med en statisk IP.
Du kan også legge til IP og vertsnavn i filen /etc /hosts. Du vil kunne bruke vertsnavnet til å koble til i stedet for å skrive hele IP -adressen.
Trinn 20: Gjenta trinn 11 til 19 for hvert brett
Følg prosedyren for å konfigurere operativsystemet og nettverket for hvert kort.
>> Viktig merknad: Bruk forskjellige vertsnavn og IP for hvert brett! De skal være unike gjennom nettverket! <<<
Trinn 21: Koble til eksterne enheter
Kontroller at viften fungerer:
Sørg for at viften får strøm og at luftstrømmen går innover i brettet. Tilkoblingen skal være stabil og uavhengig av andre elementer. Husk at platene kan overopphetes hvis de ikke er avkjølt riktig.
Kontroller at kortene er koblet til bryteren:
På dette tidspunktet burde du ha konfigurert hvert brett uavhengig. Kortene bør også kobles til bryteren. Bryterens håndbok bør gi informasjon som kan brukes til å kontrollere at oppstartsprosessen er fullført, det kan være noen lysdioder som indikerer status.
Koble kortene til strømforsyningen:
Bruk mikro-USB til USB-A-kabelen for å koble hvert av kortene til USB-huben. Du kan merke portene eller definere en ordre i tilfelle du må koble fra et enkelt kort.
Trinn 22: Påfør strøm
1. Viften skal fungere.
2. Kortene skal kobles til Ethernet -bryteren.
3. Kontroller at kortene er koblet til USB -huben.
4. Gi strøm til USB -huben.
5. Aktiver DEMAC!
6. Fortjeneste!
Trinn 23: Programvareressurser
MPI (Message Passing Interface)
MPI er en kommunikasjonsprotokoll for programmering av parallelle datamaskiner. Både punkt-til-punkt og kollektiv kommunikasjon støttes.
www.open-mpi.org/
OpenMP (Open Multi-Processing)
Applikasjonsprogrammeringsgrensesnittet (API) OpenMP (Open Multi-Processing) støtter multi-platform multi-prosessering programmering med delt minne i C, C ++ og Fortran, på mange plattformer. Den består av et sett med kompilerdirektiver, biblioteksrutiner og miljøvariabler som påvirker driftstid.
www.openmp.org/
Parallellaprogramvare
Utviklerne tilbyr en programvarestabel med åpen kildekode, inkludert en SDK for grensesnitt med akseleratoren.
www.parallella.org/software/
Du kan også finne håndbøker og mer detaljert informasjon.
De har også GitHub -lagre:
github.com/parallella
Last ned og kjør noen av eksemplene. En av mine favoritter er livsspill basert på den berømte Conway's Game of Life.
Ansvarsfraskrivelse: Definisjoner kan bli kopiert fra wikipedia
Anbefalt:
MutantC V3 - modulær og kraftig håndholdt PC: 9 trinn (med bilder)
MutantC V3 - modulær og kraftig håndholdt PC: En bringebær -pi håndholdt plattform med et fysisk tastatur, display- og ekspansjonsoverskrift for tilpassede brett (som Arduino Shield) .mutantC_V3 er etterfølgeren til mutantC_V1 og V2. Sjekk ut mutantC_V1 og mutantC_V2.https: //mutantc.gitlab.io/https: // gitla
Modulær solværsstasjon: 5 trinn (med bilder)
Modular Solar Weather Station: Et av prosjektene jeg ønsket å bygge en stund var en modulær værstasjon. Modulær i den forstand at vi kan legge til sensorene vi ønsker bare ved å endre programvaren. Modular Weather Station er delt i tre deler. Hovedstyret har W
MOLBED - Modulær lavpris elektronisk blindeskrift: 5 trinn (med bilder)
MOLBED - Modular Low Cost Braille Electronic Display: Beskrivelse Målet med dette prosjektet er å lage et elektronisk punktskriftssystem som er rimelig og kan gjøre denne teknologien tilgjengelig for alle. Etter den første evalueringen var det klart at utformingen av den enkelte karakteren
3D -trykt modulær LED -vegg: 6 trinn (med bilder)
3D-trykt modulær LED-vegg: Slik kan du enkelt lage en LED-vegg ved hjelp av 3D-trykte moduler, 12 mm WS2812 led-lamper og 38 mm ping-pongkuler. Men den mekaniske konstruksjonen var veldig komplisert. I stedet designet jeg et 3D modulsystem. Hver modul er 30x30 cm og
DIY 3d -trykt modulær drone: 16 trinn (med bilder)
DIY 3d -trykt modulær drone: Hei alle, og velkommen til min aller første instruktive. Jeg har alltid elsket rc, og de siste årene har jeg utviklet mine egne prosjekter, generelt fra bunnen av, inkludert en båt, biler og et fly (som fløy alle på to sekunder!). Jeg har alltid hatt en spesiell