Indholdsfortegnelse:

DEMAC, en 3Dprintet modulær Beowulf -klynge: 23 trin (med billeder)
DEMAC, en 3Dprintet modulær Beowulf -klynge: 23 trin (med billeder)

Video: DEMAC, en 3Dprintet modulær Beowulf -klynge: 23 trin (med billeder)

Video: DEMAC, en 3Dprintet modulær Beowulf -klynge: 23 trin (med billeder)
Video: Заволжский завод гусеничных тягачей / GAZ - "ZZGT" AATV premium 2024, November
Anonim
DEMAC, en 3Dprintet modulær Beowulf -klynge
DEMAC, en 3Dprintet modulær Beowulf -klynge

High Performance Computation (HPC) er evnen til at behandle data og udføre komplekse beregninger ved høje hastigheder, det er anvendelsen af "Supercomputere" til beregningsproblemer, der enten er for store for standardcomputere eller ville tage for lang tid at blive afsluttet. Top500 er en liste, der udgives to gange om året og rangerer nogle af de hurtigste og mest kraftfulde computere i verden. Lande og store organisationer bruger millioner af ressourcer på at få disse systemer til at fungere for forskere til at udnytte den nyeste teknologi og løse komplekse problemer.

For mange år siden plejede computere at forbedre deres ydeevne ved at øge processorens hastighed. Efter at vi stod over for en afmatning i denne form for tilgang, besluttede udviklere, at flere kerner (eller beregningsenheder) skulle pakkes sammen for at fortsætte med at øge computerens ydeevne. Sammenlægningen af flere beregningsressourcer og mekanismerne til at kontrollere disse ressourcer er det, vi kalder "parallelisme" i datalogi. At have flere kerner til at udføre flere opgaver lyder som en god tilgang til at forbedre computerens ydeevne … men det åbner et stort spørgsmål: Hvordan bruger vi disse ressourcer mere effektivt?

Disse spørgsmål har holdt computerforsker optaget, der er flere måder at fortælle en computer, hvordan man gør tingene, der er endnu flere måder at fortælle flere computere, hvordan man gør ting. Dette projekt har til formål at udvikle en overkommelig platform, hvor alle kan eksperimentere med en meget parallel maskine, teste eksisterende modeller til at anvende i dine egne projekter, udvikle nye og kreative måder at løse beregningsproblemer eller bare bruge den som en måde at lære andre om computere. Vi håber, at du kan nyde at arbejde med DEMAC lige så meget som vi har.

DEMAC

Delaware Modular Assembly Cluster (DEMAC) er et udvideligt udvalg af integrerede systemer (computere i kortstørrelse) og et sæt 3Dprintede rammer til at omslutte kortene og yderligere hardware, der giver strøm, køling og netværksadgang.

Hver enhed eller integreret system er en lille computer, et Parallella Board, der kombinerer ressourcerne fra en dual-core ARM-processor, en 16-core coprocessor kaldet Epiphany og en integreret FPGA med fleksibiliteten i en komplet open source-stak. Monteringen er en hjemmelavet 3D-printet ramme, der muliggør en billig implementering og en eskalerbar struktur. Det er designet til at passe til 4 enheder i et standardstativ (som dem, du finder i computerserverrum).

Denne instruktive omfatter:

- En liste over nødvendige materialer

- Instruktioner til 3D -udskrivning af rammerne

- Instruktioner til montering og tilslutning af delene

- En guide til download og installation af den nødvendige software

- En beskrivelse af, hvordan man forbinder og interagerer med klyngen

- A "Hvorfor gør vi det her?" afsnit

Hvem er vi?

Vi er CAPSL (Computer Architecture and Parallel Laboratory) fra University of Delaware. Vi mener, at beregningens fremtid bør have en stærk base i Dataflow -teorien (som vi vil forklare senere i denne instruktive, hvis du er interesseret).

Forbrugsvarer

Denne liste beskriver de materialer, der kræves for at bygge en 4-board-klynge

- 4 Parallella -tavler (du kan få dem fra DigiKey eller andre leverandører, du kan finde flere oplysninger på deres websted

-4 mikro-SD-kort med mindst 16 Gb (her er en meget billig 10-pakning eller noget lignende disse mere fleksible kombinationer)

- 4 mikro-USB-kabler min. Længde 30 cm (1 fod) (jeg anbefaler disse)

- USB-oplader [med mindst 4 type A-porte] (jeg anbefaler denne med 6-porte eller en med samme formfaktor, da strømkassen er designet til den)

- Køleventilator [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 kabelkonfiguration fungerer)

- Strømforsyning til køleventilator (Hvis din konfiguration er til mere end 8 tavler, anbefaler jeg denne eller noget lignende [AC 100 V/ 240 V til DC 12 V 10 A 120 W], der har et flot metalhus og også kan sættes på til kontakten) (Hvis du kun tilslutter to blæsere eller mindre, kan du bruge en hvilken som helst 12 V med mindst 1 A udgangseffekt, du måske har liggende)

- 5 Ethernet -kabler (4 kan være korte som disse, afhængigt af afstanden fra switchen til kortene, og en skal være lang nok til at forbinde switchen med enten din computer eller modemet for at få adgang til klynge -netværket)

>> Vigtig note: Et kølesystem er påkrævet, ellers kan pladerne blive overophedede! <<<

3D-trykte dele

- 4 tavler (Frame_01)

- 1 Board -kabinet (Frame_02)

- 1 blæserhus (Frame_03_B & Frame_03_T)

- 1 strømkabinet (Frame_04)

Trin 1: Om DEMAC

Om DEMAC
Om DEMAC

DEMAC er en del af et større billede, en fleksibel og eskalerbar platform, der giver os mulighed for at udvikle og teste nye programmeringsudførelsesmodeller (PXM) til parallel beregning. En PXM er mere end en måde at beskrive beregning på, den repræsenterer rygraden, der giver en overensstemmelse mellem den måde, et program udtrykkes på, og hvordan det oversættes til et fælles sprog, der kan eksekveres af maskinen. Vi beskriver et sæt elementer, der gør det muligt for brugeren at generere programmer og en måde at organisere udførelsen af programmet på. Programmet kan optimeres til at målrette mod en bestemt arkitektur af brugeren eller et automatiseret værktøj baseret på denne fælles baggrund.

Du kan lære mere om dette projekt i slutningen af denne instruktive, du kan også klikke her for at få flere oplysninger om DEMAC eller her for at få mere information om CAPSL)

Trin 2: 3D Print DEMAC

3D Print DEMAC!
3D Print DEMAC!
3D Print DEMAC!
3D Print DEMAC!
3D Print DEMAC!
3D Print DEMAC!

I dette afsnit kan du finde en guide til 3D -udskrivning af de rammer, der omslutter de andre komponenter og giver strukturel støtte. Selvom du er en 3D -printmester, er der nogle tips, du kan overveje, når du udskriver disse rammer. Alle rammer kan udskrives ved hjælp af en 0,4 mm dyse med 0,3 eller 0,2 laghøjde (du kan også bruge adaptiv). Jeg printede alt ved hjælp af PLA, men det er ikke ligegyldigt, om du vil bruge andre materialer (så længe de giver strukturel stabilitet og kan tåle højere eller lige temperaturer end PLA).

STL filer:

www.thingiverse.com/thing:4493780

cults3d.com/en/3d-model/various/demac-a-mo…

www.myminifactory.com/object/3d-print-dema…

Board Tray (Frame_01)

Der kræves ingen yderligere understøttelser. Denne er ret ligetil, bare placer den med den flade overflade mod udskrivningsoverfladen.

Board Casing (Frame_02)

Denne kan kræve en vis støtte i midterbjælkerne. Du kan argumentere for, at en velindstillet maskine/skiver kan udskrive disse broer uden yderligere støtte. Prøv nogle brostresstest først, hvis du vil udskrive uden understøtninger, da tanken var, at det ikke ville kræve dem. På den anden side giver søjlerne sideværts og vægge tilstrækkelig støtte til, at disse kan udskrives uden yderligere understøtningsstrukturer.

Ventilatorhus (Frame_03_B & Frame_03_T)

Der kræves ikke yderligere understøttelser. Placer bare begge dele med den flade overflade vendt mod trykfladen.

Power Casing (Frame_04)

I lighed med Frame_02 kan denne kræve en vis støtte i midterbjælkerne. Du kan også prøve at udskrive dette uden yderligere understøttelsesmateriale (som det var beregnet). Kolonnerne sideværts og vægge giver tilstrækkelig støtte til, at disse kan udskrives uden yderligere understøtningsstrukturer.

Output køling hus (Frame_05_B & Frame_05_T)

Der kræves ikke yderligere understøttelser. Placer bare begge dele med den flade overflade mod udskrivningsoverfladen.

Trin 3: Saml DEMAC

Saml DEMAC!
Saml DEMAC!

Nu hvor du har alle de nødvendige dele, er det tid til at begynde at samle klyngen.

Husk at fjerne det understøtningsmateriale, du måtte have på rammerne.

Trin 4: Placer blæseren på kabinettet

Placer blæseren på kabinettet
Placer blæseren på kabinettet
Placer blæseren på kabinettet
Placer blæseren på kabinettet

Skub blæseren inde i Frame_03_B (med kablet i højre nederste hjørne), den nederste del skal passe ind i de små buede vægge, der holder blæseren på plads.

Placer Frame_03_T med de små buede vægge nedad oven på Frame_03_B (med ventilatoren allerede på plads). Vær omhyggelig med at placere det bredeste låg på Frame_03_T mod Frame_03_B's bredere (bageste) flade. Rammerne skal klikke, og lågene skal holde dem på plads.

Trin 5: Deltag i Board Casing With Power Casing

Deltag i Board Casing Med Power Casing
Deltag i Board Casing Med Power Casing
Deltag i Board Casing Med Power Casing
Deltag i Board Casing Med Power Casing

Placer Frame_02 oven på Frame_04, disse to er designet til at snappe sammen. Der er en lille bule på den nederste del af Frame_02, der passer til konnektorerne oven på Frame_04. Anvend blid kraft for at forbinde dem.

Trin 6: Installer køleenheden

Installer køleenheden
Installer køleenheden

Frame_03 (B&T) er designet til at snappe sammen med Frame_02, placere ventilatoren mod brædderne (luftstrømmen skal gå indad Frame_02). Der er små buler på Frame_02s kolonner, der skal matche mærkerne i Frame_03_B. Påfør let tryk i strukturens sideflader, indtil rammerne klikker.

Trin 7: Læg tavlerne på tavlerne

Læg tavlerne på tavlerne
Læg tavlerne på tavlerne

Frame_01 har 4 ben, der matcher hullerne i Parallella -kortet. Pladen skal let passe ind i bakken. Afhængigt af din 3D-printer kalibrering kan de være for store eller for små, du kan bruge en smule flydende silikone lim til at holde dem på plads eller trykke dem lidt med en tang for at reducere diameteren.

>> Vigtig note: Husk at placere kølelegemerne på tavlen <<<

Trin 8: Skub tavlebakkerne i tavlehuset

Skub tavlebakkerne i tavlehuset
Skub tavlebakkerne i tavlehuset

Frame_01 giver slots, der passer ind i Frame_02 -skinner for hvert niveau. Bemærk, at der kun er en side åben for at modtage brætbakken. Der er også en lille bump, der hjælper med at holde Frame_01 på plads (ærligt talt, disse kan bruge en vis forbedring i en fremtidig version).

Skub alle 4 brætbakker med brædderne allerede på plads, 1 pr. Hvert niveau.

Trin 9: Placer strømforsyningen i strømkabinettet

Placer strømforsyningen inde i strømkabinettet
Placer strømforsyningen inde i strømkabinettet

Placer USB -strømforsyningen inde i Frame_04 med USB -portene vendt udad. Der er en lille åbning på den anden side til strømkablet, der føder navet.

Trin 10: Tilslut blæseren til køleeffekten

Ventilatoren skal nu tilsluttes den 12 V strømforsyning, der leverer energi til køleenheden.

>> Vigtig bemærkning: Lad kølesystemet fungere hele tiden, mens du har kortene tilsluttet strømforsyningen <<<

Trin 11: Konfigurer operativsystemet

1. Download anbefalet OS (Parabuntu) her

Der er to revisioner af chipsene (z7010 [P1600/P1601] og z7020 [P1602/A101040], som kræver forskellige filer.

For begge versioner er der en hovedløs version (Ingen grafisk brugerinterface) og en version, der giver HDMI -understøttelse og en grafisk brugergrænseflade)

Hvis du vil bruge HDMI-udgangen, skal du huske at få et mini-HDMI-kabel.

Du kan kommunikere med hovedløs version via netværket.

Flere oplysninger og detaljeret forklaring findes her på det officielle websted.

Her er trinene til at installere operativsystemet ved hjælp af en Linux-baseret distribution. Du kan bruge kommandoer i terminalen (uden $ -symbolet) til de næste trin eller kontrollere andre procedurer på webstedet.

2. Installer

- Indsæt mikro-SD-kortet i din almindelige computer.- Pak Ubuntu-billedet ud. Skift [udgivelsesnavn] for billednavnet.

$ gunzip -d [udgivelsesnavn].img.gz

3. Bekræft enhedens sti til dit SD -kort

Den nøjagtige enhedssti til dit SD -kort afhænger af din Linux -distribution og computeropsætning. Brug kommandoen herunder for at få den rigtige vej. Hvis det ikke er klart fra output, hvilken sti der er den rigtige, kan du prøve kommandoen med og uden SD -kortet isat. I Ubuntu kan den returnerede sti måske være noget i stil med ‘/dev/mmcblk0p1’.

$ df -h

4. Afmontering af SD -kortet Du skal afmontere alle partitioner på SD -kortene, før du brænder kortet. [Sd-partition-path] kommer fra kommandoen 'df' i trin 3.

$ umount [sd-partition-path]

5. Brænd Ubuntu-diskbilledet på micro-SD-kortet

Brænd billedet på SD -kortet ved hjælp af 'dd' -værktøjet vist i kommandoeksemplet herunder. Vær forsigtig, og sørg for at angive stien korrekt, da denne kommando er irreversibel og vil overskrive alt i stien! En eksempelkommando i Ubuntu ville være: 'sudo dd bs = 4M if = my_release.img of =/dev/mmcblk0'. Vær tålmodig, dette kan tage et stykke tid (mange minutter) afhængigt af computeren og SD -kortet, der bruges.

$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]

6. Sørg for, at alle skrivninger til SD -kortet er fuldført

$ synk

7. Indsæt SD -kort i SD -kortstikket i kortet

Trin 12: Tilslut kortet til strømforsyningen

Brug miniUSB til USB-A-kablet til at slutte et af kortene til USB-hubben. Du kan mærke portene og kablerne eller definere en rækkefølge for forbindelserne, hvis du senere skal afbryde et kort.

Trin 13: Opsætning af router

Opsætning af router
Opsætning af router

Hvis du foretager den hovedløse OS -installation, mens du er på et stort netværk, skal du bruge en router og slutte den til internettet, Parallella -kortene og din personlige computer.

Hvis du ikke kan oprette forbindelse til routeren, kan du også slutte kortet direkte til din computer ved hjælp af Ethernet -kablet, denne procedure kan være lidt vanskeligere og ville ikke blive dækket af denne instruks.

Når alt er tilsluttet, skal du åbne din routers grænseflade for at finde ud af, hvilken IP -adresse som standard bliver givet din Parallella. Se efter en fane, der siger Netværk. Find derefter et afsnit mærket DHCP Client List. Der skal du se dit Parallella -bord og dets IP -adresse.

Med denne IP -adresse kan du SSH ind i Parallella og oprette en statisk IP -adresse.

Trin 14: Tilslutning til Parallella Board med SSH

Bemærk: I dette afsnit er [default_IP] den dynamiske IP -adresse, du fandt på DHCP -klientlisten.

Kontroller forbindelsen til kortet

$ ping [default_IP]

SSH ind i tavlen for første gang (standardadgangskode er parallella)

$ ssh parallella@[default_IP]

Trin 15: Opsætning af netværk

- Skift værtsnavn: rediger /etc /hostname

Her kan du tildele ethvert navn, du ønsker, vi anbefaler at bruge NOPA ##

Hvor ## identificerer tavlenummeret (dvs. 01, 02, …)

- Indstil andre tavler IP -adresser: edit /etc /hosts

Indstil statisk IP -adresse: tilføj nedenstående tekst til /etc/network/interfaces.d/eth0

#Det primære netværksgrænseflade auto eth0

iface eth0 inet statisk

adresse 192.168.10.101 #IP skal være inden for routerens rækkevidde

netmaske 255.255.255.0

gateway 192.168.10.1 #Dette skal være routerens adresse

navneserver 8.8.8.8

navneserver 8.8.4.4

Når du har tildelt IP'en til kortet, kan du genstarte forbindelsen med kommandoen

$ ifdown eth0; ifup eth0

eller genstart tavlen

Trin 16: Opsætning af Keygen og adgangskodefri adgang på tavler

Opret et privat offentligt nøglepar på hver node (inklusive hovednoden). Opret en midlertidig mappe, generer en ny nøgle og gør den til en autoriseret nøgle, og tilføj alle NOPA'er til de kendte værter som vist nedenfor.

mkdir tmp_sshcd tmp_ssh ssh -keygen -f./id_rsa

#Tryk på enter to gange for at indstille og bekræfte en tom adgangskode

cp id_rsa.pub autoriserede_nøgler

for i i 'seq 0 24'; do j = $ (ekko $ i | awk '{printf "%02d / n", $ 0}');

ssh-keyscan NOPA $ J >> kendt_værter; Færdig

Trin 17: Installation af Sshfs

- Brug af sshfs tillader deling af filer mellem bestyrelserne på klyngen. Kør følgende kommando:

$ sudo apt -get install -y sshfs

- Kontrollerer / opretter sikringsgruppe

Kontroller, om sikringsgruppen findes:

$ kat /etc /group | grep 'sikring'

Hvis gruppen findes, skal du udføre følgende kommando

$ bash sudo usermod -a -G fuse parallella

- Hvis gruppen ikke findes, skal du oprette den og tilføje brugeren til den

$ sudo group tilføj sikring

$ sudo usermod -a -G fuse parallella

- Fjern kommentaren fra linjen user_allow_other i filen fuse.config

$ sudo vim /etc/fuse.conf

Trin 18: Konfigurer NFS -mappe

- Rediger filen /etc /fstab

$ sudo vim /etc /fstab

- Erstat indholdet med teksten vist nedenfor

# [filsystem] [monteringspunkt] [type] [valgmuligheder]

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

Trin 19: Tilslut kortet til kontakten

Placer kontakten under klyngen eller et eller andet sted i nærheden, brug Ethernet -kabler til at forbinde det kort, du allerede har konfigureret, til kontakten. Du kan også slutte kontakten og din computer til routeren for at få adgang til klyngen.

Du bør være i stand til at pinge og ssh ind i kortet, der nu er tilsluttet kontakten med en statisk IP.

Du kan også tilføje IP og værtsnavn til din /etc /hosts -fil. Du vil kunne bruge værtsnavnet til at oprette forbindelse i stedet for at skrive hele IP -adressen.

Trin 20: Gentag trin 11 til 19 for hvert bord

Følg proceduren for at konfigurere OS og netværk for hvert kort.

>> Vigtig note: Brug forskellige værtsnavne og IP for hvert bord! De skal være unikke gennem netværket! <<<

Trin 21: Tilslut periferiudstyr

Tilslut periferiudstyr!
Tilslut periferiudstyr!

Sørg for, at blæseren fungerer:

Sørg for, at blæseren får strøm, og luftstrømmen går indad i brættet. Forbindelsen skal være stabil og uafhængig af andre elementer. Husk, at brædderne kan overophedes, hvis de ikke afkøles korrekt.

Sørg for, at kortene er tilsluttet kontakten:

På dette tidspunkt skulle du have konfigureret hvert bord uafhængigt. Kortene skal også tilsluttes kontakten. Omskifterens manual bør give oplysninger, der kan bruges til at kontrollere, at opstartsprocessen er gennemført korrekt, der kan være nogle lysdioder, der angiver status.

Tilslut kortene til strømforsyningen:

Brug mikro-USB til USB-A-kablet til at slutte hvert kort til USB-hubben. Du kan mærke portene eller definere en ordre, hvis du skal afbryde et enkelt kort.

Trin 22: Anvend strøm

1. Ventilatoren skal fungere.

2. Kortene skal tilsluttes Ethernet -switchen.

3. Kontroller, at kortene er tilsluttet USB -hubben.

4. Giv strøm til USB -hubben.

5. Aktiver DEMAC!

6. Overskud!

Trin 23: Softwareressourcer

MPI (Message Passing Interface)

MPI er en kommunikationsprotokol til programmering af parallelle computere. Både punkt-til-punkt og kollektiv kommunikation understøttes.

www.open-mpi.org/

OpenMP (Open Multi-Processing)

Applikationsprogrammeringsgrænsefladen (API) OpenMP (Open Multi-Processing) understøtter multi-platform delt-hukommelse multiprocessing programmering i C, C ++ og Fortran, på mange platforme. Det består af et sæt kompilerdirektiver, biblioteksrutiner og miljøvariabler, der påvirker driftstidens adfærd.

www.openmp.org/

Parallellasoftware

Udviklerne leverer en open-source softwarestak, herunder en SDK til grænseflade med acceleratoren.

www.parallella.org/software/

Du kan også finde vejledninger og mere detaljerede oplysninger.

De har også GitHub -depoter:

github.com/parallella

Du er velkommen til at downloade og køre nogle af eksemplerne, en af mine favoritter er livets spil baseret på den berømte Conway's Game of Life.

Ansvarsfraskrivelse: Definitioner kan blive kopieret fra wikipedia

Anbefalede: