DEMAC, 3D -trükitud modulaarne Beowulfi klaster: 23 sammu (piltidega)
DEMAC, 3D -trükitud modulaarne Beowulfi klaster: 23 sammu (piltidega)
Anonim
DEMAC, 3D -trükitud modulaarne Beowulfi klaster
DEMAC, 3D -trükitud modulaarne Beowulfi klaster

Kõrge jõudlusega arvutus (HPC) on võime töödelda andmeid ja teha keerukaid arvutusi suurel kiirusel, see on "superarvutite" rakendamine arvutusprobleemidele, mis on standardarvutite jaoks liiga suured või mille valmimine võtaks liiga kaua aega. Top500 on kaks korda aastas avaldatav nimekiri, mis on maailma kiireimate ja võimsamate arvutite hulgas. Riigid ja suured organisatsioonid kulutavad miljoneid ressursse selle süsteemi käivitamiseks, et teadlased saaksid kasutada uusimat tehnoloogiat ja lahendada keerukaid probleeme.

Aastaid tagasi parandasid arvutid oma jõudlust protsessori kiiruse suurendamisega. Olles silmitsi sellise lähenemise aeglustumisega, otsustasid arendajad, et arvutite jõudluse suurendamise jätkamiseks tuleks mitu südamikku (või arvutusüksust) kokku pakkida. Mitmete arvutusressursside ja nende ressursside kontrollimise mehhanismide koondamist nimetatakse arvutiteaduses paralleelsuseks. Mitme südamiku mitme ülesande täitmine tundub hea lähenemisviis arvuti jõudluse parandamiseks … kuid see avab suure küsimuse: kuidas me neid ressursse tõhusamalt kasutame?

Need küsimused on hoidnud arvutiteadlast hõivatud, on mitmeid viise, kuidas öelda arvutile, kuidas asju teha, veelgi enam on võimalik öelda mitmele arvutile, kuidas asju teha. Selle projekti eesmärk on välja töötada taskukohane platvorm, kus igaüks saab eksperimenteerida väga paralleelse masinaga, katsetada olemasolevaid mudeleid, mida oma projektides rakendada, arendada uusi ja loomingulisi viise arvutusprobleemide lahendamiseks või kasutada seda lihtsalt teiste arvutite õpetamiseks. Loodame, et saate nautida koostööd DEMACiga sama palju kui meil.

DEMAC

Delaware Modular Assembly Cluster (DEMAC) on laiendatav sisseehitatud süsteemide (kaardisuuruses arvutid) ja 3D -trükitud raamide komplekt, mis ümbritseb tahvleid ja täiendavat riistvara, mis tagavad toite, jahutuse ja võrgule juurdepääsu.

Iga seade või manussüsteem on väike arvuti, Parallella Board, mis ühendab kahetuumalise ARM-protsessori ressursid, 16-tuumalise kaasprotsessori nimega Epiphany ja sisseehitatud FPGA koos avatud lähtekoodiga virna paindlikkusega. Kinnitus on kodus valmistatud 3D-trükitud raam, mis võimaldab teostada odavalt ja laiendada struktuuri. See on mõeldud mahutama 4 ühikut standardsuurusega riiulit (nagu need, mida leiate arvutiserverite ruumidest).

See juhend sisaldab:

- vajalike materjalide loend

- Juhised raamide 3D printimiseks

- Juhised osade kokkupanekuks ja ühendamiseks

- Juhend vajaliku tarkvara allalaadimiseks ja installimiseks

- Kirjeldus selle kohta, kuidas klastriga ühendust luua ja sellega suhelda

- "Miks me seda teeme?" jagu

Kes me oleme?

Oleme CAPSL (arvutiarhitektuur ja paralleellabor) Delaware'i ülikoolist. Usume, et arvutuste tulevikul peaks olema tugev andmevoo teooria alus (mida selgitame hiljem selles juhendis, kui olete huvitatud).

Tarvikud

See loend kirjeldab 4-tahvlilise klastri ehitamiseks vajalikke materjale

- 4 Parallella tahvlit (neid saate DigiKey'lt või teistelt müüjatelt, lisateavet leiate nende veebisaidilt

-4 vähemalt 16 Gb micro-SD-kaarti (siin on väga odav 10-pakend või midagi sellist paindlikumat kombinatsiooni)

- 4 mikro-USB-kaablit, pikkusega vähemalt 30 cm (1 jalga) (soovitan neid)

- USB-laadija [vähemalt 4 A-tüüpi pordiga] (soovitan seda 6-pordilist või sama vorminguteguriga, kuna toitekapp on selleks mõeldud)

- Jahutusventilaator [max suurus 100 mm x 100 mm x 15 mm] (soovitan seda, kuna see on odav ja töötab, kuid teised sarnase suuruse ja kaabli konfiguratsiooniga töötavad)

- Jahutusventilaatori toiteallikas (kui teie konfiguratsioon on rohkem kui 8 plaati, soovitan seda või midagi sarnast [vahelduvvool 100 V/ 240 V kuni DC 12 V 10 A 120 W], millel on kena metallist korpus ja mida saab ka kinnitada (kui kavatsete ühendada ainult kaks või vähem ventilaatorit, võite kasutada mis tahes 12 V ja vähemalt 1 A väljundtoiteallikat)

- 5 Etherneti kaablit (4 võivad olla lühikesed, sõltuvalt kaugusest lülitist tahvliteni ja üks peaks olema piisavalt pikk, et lüliti ühendada kas arvuti või modemiga, et pääseda klastrivõrku)

>> Oluline märkus: Vajalik on jahutussüsteem, vastasel juhul võivad plaadid üle kuumeneda! <<<

3D-prinditud osad

- 4 lauaplaati (Frame_01)

- 1 parda korpus (Frame_02)

- 1 ventilaatori korpus (Frame_03_B & Frame_03_T)

- 1 toite korpus (Frame_04)

Samm: teave DEMACi kohta

Teave DEMACi kohta
Teave DEMACi kohta

DEMAC on osa suuremast pildist, paindlikust ja laiendatavast platvormist, mis võimaldab meil paralleelseks arvutamiseks välja töötada ja katsetada uusi programmeerimise täitmise mudeleid (PXM). PXM on rohkem kui viis arvutuste kirjeldamiseks, see kujutab endast selgroogu, mis annab kokkuleppe programmi väljendusviisi ja selle tõlkimise vahel ühisesse keelde, mida masin saab täita. Kirjeldame elementide komplekti, mis võimaldab kasutajal programme genereerida ja programmi täitmise korraldamise viisi. Programmi saab optimeerida konkreetse arhitektuuri sihtimiseks kasutaja või selle ühise tausta põhjal automatiseeritud tööriista abil.

Selle projekti kohta saate lisateavet selle juhendi lõpus, samuti klõpsake siin, et saada lisateavet DEMACi kohta, või siin, et saada lisateavet CAPSL -i kohta)

Samm: 3D -printimine DEMAC

3D printimine DEMAC!
3D printimine DEMAC!
3D printimine DEMAC!
3D printimine DEMAC!
3D printimine DEMAC!
3D printimine DEMAC!

Sellest jaotisest leiate juhendi raamide 3D -printimiseks, mis ümbritsevad teisi komponente ja pakuvad struktuurilist tuge. Isegi kui olete 3D -printimise meister, on siin mõned näpunäited, mida saate nende kaadrite printimisel arvestada. Kõiki raame saab printida 0,4 mm otsikuga, mille kihi kõrgus on 0,3 või 0,2 (võite kasutada ka kohandavat). Trükkisin kõik PLA abil, kuid pole tegelikult vahet, kas soovite kasutada muid materjale (kui need tagavad struktuurilise stabiilsuse ja taluvad kõrgemaid või võrdseid temperatuure kui PLA).

STL -failid:

www.thingiverse.com/thing:4493780

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

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

Lauaalus (Frame_01)

Täiendavaid tuge pole vaja. See on üsna lihtne, lihtsalt asetage see tasase pinnaga prindipinna poole.

Tahvli korpus (Frame_02)

See võib keskmistele taladele vajada teatud tuge. Võite väita, et hästi häälestatud masin/viilutaja suudab need sillad ilma täiendava toeta printida. Kui soovite ilma toeta printida, proovige esmalt mõningaid sillastestide teste, kuna mõte oli, et neid pole vaja. Teisest küljest pakuvad külgmised veerud ja seinad piisavalt toetust nende trükkimiseks ilma täiendavate tugistruktuurideta.

Ventilaatori korpus (Frame_03_B & Frame_03_T)

Täiendavaid tuge pole vaja. Lihtsalt asetage mõlemad osad tasase pinnaga prindipinna poole.

Toite korpus (Frame_04)

Sarnaselt Frame_02 -ga võib ka see vajada keskmistel taladel tuge. Võite proovida seda ka ilma lisamaterjalita printida (nagu see oli ette nähtud). Külgmised veerud ja seinad pakuvad piisavalt toetust nende trükkimiseks ilma täiendavate tugistruktuurideta.

Väljundi jahutuskorpus (Frame_05_B & Frame_05_T)

Täiendavaid tuge pole vaja. Lihtsalt asetage mõlemad osad tasase pinnaga prindipinna poole.

Samm: pange DEMAC kokku

Pange DEMAC kokku!
Pange DEMAC kokku!

Nüüd, kui teil on kõik vajalikud osad olemas, on aeg hakata klastrit kokku panema.

Ärge unustage eemaldada raamidel olevat tugimaterjali.

Samm: asetage ventilaator korpusele

Asetage ventilaator korpusele
Asetage ventilaator korpusele
Asetage ventilaator korpusele
Asetage ventilaator korpusele

Lihtsalt libistage ventilaator raami_03_B sisse (kaabel paremas alanurgas), alumine osa peaks mahtuma väikeste kõverate seinte sisse, mis hoiavad ventilaatorit paigal.

Asetage Frame_03_T nii, et väikesed kumerad seinad oleksid allapoole, Frame_03_B peal (ventilaator juba paigas). Olge ettevaatlik, kui asetate Frame_03_T kõige laiema kaane raami_03_B laiema (tagumise) poole. Raamid peaksid klõpsama ja kaaned peaksid neid paigal hoidma.

5. samm: ühendage plaadi korpus toiteümbrisega

Ühendage pardakarp toitekorpusega
Ühendage pardakarp toitekorpusega
Ühendage pardakarp toitekorpusega
Ühendage pardakarp toitekorpusega

Asetage Frame_02 Frame_04 peale, need kaks on mõeldud kokku klõpsamiseks. Frame_02 alumises osas on väike mõlk, mis sobib Frame_04 peal asuvate pistikutega. Nende ühendamiseks rakendage õrna jõudu.

Samm: paigaldage jahutusseade

Paigaldage jahutusseade
Paigaldage jahutusseade

Frame_03 (B&T) on loodud kokku klõpsama koos Frame_02 -ga, asetage ventilaator laudade poole (õhuvool peaks suunduma Frame_02 sissepoole). Frame_02 veergudel on väikesed mõlgid, mis peaksid vastama kaadri Frame_03_B märkidele. Vajutage õrnalt konstruktsiooni külgpindadele, kuni raamid klõpsatavad.

7. samm: asetage lauad lauaalustele

Asetage lauad lauaalustele
Asetage lauad lauaalustele

Frame_01 -l on 4 tihvti, mis sobivad Parallella tahvli aukudega. Tahvel peaks kergesti salve mahtuma. Sõltuvalt teie 3D-printeri kalibreerimisest võivad need olla suured või liiga väikesed, võite nende hoidmiseks kasutada natuke vedelat silikoonliimi või vajutada neid mõne tangiga, et vähendada läbimõõtu.

>> Tähtis märkus: pidage meeles, et asetate jahutusradiaatorid tahvlile <<<

8. samm: libistage lauaplaadid plaadi korpuses

Lükake lauaplaate plaadi korpuses
Lükake lauaplaate plaadi korpuses

Frame_01 pakub iga taseme jaoks pilusid, mis sobivad Frame_02 rööpadesse. Pange tähele, et plaadisalve vastuvõtmiseks on avatud ainult üks külg. Samuti on väike muhk, mis aitab Frame_01 paigal hoida (ausalt, need võiksid tulevases versioonis mõningast täiustust kasutada).

Lükake kõik 4 lauaalust nii, et lauad on juba paigas, 1 iga taseme kohta.

9. samm: asetage toiteplokk toiteümbrise sisse

Asetage toiteplokk toiteümbrise sisse
Asetage toiteplokk toiteümbrise sisse

Asetage USB toiteallikas Frame_04 sisse nii, et USB -pordid oleksid väljapoole suunatud. Teisel pool on väike ava rummu toitva toitekaabli jaoks.

Samm: ühendage ventilaator jahutusvõrguga

Ventilaator tuleks nüüd ühendada 12 V toiteallikaga, mis annab jahutusseadmele energiat.

>> Tähtis märkus: Hoidke jahutussüsteem kogu aeg töökorras, kui plaadid on ühendatud toiteallikaga <<<

Samm: konfigureerige OS

1. Laadige soovitatud OS (Parabuntu) alla siit

Kiipidel on kaks versiooni (z7010 [P1600/P1601] ja z7020 [P1602/A101040], mis nõuavad erinevaid faile.

Mõlema versiooni jaoks on olemas peata versioon (puudub graafiline kasutajaliides) ja versioon, mis pakub HDMI -tuge ja graafilist kasutajaliidest)

Kui soovite HDMI-väljundit kasutada, pidage kindlasti meeles mini-HDMI-kaablit.

Peata versiooniga saate liidestuda võrgu kaudu.

Lisateavet ja üksikasjalikku selgitust leiate siit ametlikult veebisaidilt.

Siin on sammud operatsioonisüsteemi installimiseks Linuxi-põhise levitamise abil. Järgmiste sammude jaoks saate kasutada terminalis olevaid käske (ilma sümbolita $) või vaadata veebisaidil muid protseduure.

2. Paigaldage

- Sisestage mikro-SD-kaart tavalisse arvutisse- Pakkige Ubuntu pilt lahti. Muutke pildi nime [releasename].

$ gunzip -d [vabastamisnimi].img.gz

3. Kontrollige oma SD -kaardi seadme teed

Seadme täpne tee teie SD -kaardile sõltub teie Linuxi levitamisest ja arvuti seadistusest. Õige tee saamiseks kasutage allolevat käsku. Kui väljundist ei selgu, milline tee on õige, proovige käsku koos sisestatud SD -kaardiga ja ilma. Ubuntus võib tagastatud tee olla midagi sellist nagu "/dev/mmcblk0p1".

$ df -h

4. SD -kaardi lahtiühendamine Enne kaardi põletamist peate lahti ühendama kõik SD -kaartide partitsioonid. [Sd-partition-path] pärineb 3. sammu käsust „df”.

$ umount [sd-partition-path]

5. Põletage Ubuntu ketta pilt mikro-SD-kaardile

Põletage pilt SD -kaardile, kasutades alltoodud käsunäites näidatud utiliiti „dd”. Palun olge ettevaatlik ja veenduge, et määrate tee õigesti, kuna see käsk on pöördumatu ja kirjutab tee peal kõik üle! Näide Ubuntu käsust oleks järgmine: "sudo dd bs = 4M if = my_release.img of//dev/mmcblk0". Palun olge kannatlik, see võib võtta aega (mitu minutit) sõltuvalt kasutatavast arvutist ja SD -kaardist.

$ sudo dd bs = 4 miljonit, kui = [vabastamisnimi].img / = [sd-partitsioonitee]

6. Veenduge, et kõik SD -kaardile kirjutamised on lõpule viidud

$ sync

7. Sisestage SD -kaart plaadi SD -kaardi pesasse

12. samm: ühendage plaat toiteallikaga

Kasutage miniUSB-USB-A kaablit, et ühendada üks plaat USB-jaoturiga. Võite sildistada pordid ja kaablid või määrata ühenduste järjekorra juhuks, kui peate plaadi hiljem lahti ühendama.

13. samm: ruuteri seadistamine

Ruuteri seadistamine
Ruuteri seadistamine

Kui installite peata operatsioonisüsteemi, kui olete suures võrgus, peate kasutama ruuterit ja ühendama selle Interneti, Parallella tahvlite ja personaalarvutiga.

Kui te ei saa ruuteriga ühendust luua, saate tahvli Etherneti kaabli abil ka otse arvutiga ühendada, see protseduur võib olla pisut keerulisem ja seda juhend ei hõlma.

Kui kõik on ühendatud, avage ruuteri liides, et teada saada, milline IP -aadress teie Parallellale vaikimisi antakse. Otsige sakki Võrk. Seejärel leidke jaotis nimega DHCP klientide loend. Seal peaksite nägema oma Parallella tahvlit ja selle IP -aadressi.

Selle IP -aadressi abil saate SSH -i Parallella sisse lülitada ja seadistada staatilise IP -aadressi.

14. samm: SSH abil Parallella Boardiga ühendamine

Märkus. Selles jaotises on [default_IP] DHCP klientide loendist leitud dünaamiline IP -aadress.

Kontrollige ühendust plaadiga

$ ping [vaikimisi_IP]

SSH esmakordselt tahvlile (vaikimisi parool on paralleelne)

$ ssh parallella@[vaikimisi_IP]

Samm: võrgu seadistamine

- Muuda hostinime: redigeeri /etc /hostname

Siin saate määrata mis tahes soovitud nime, soovitame kasutada NOPA ##

Kus ## tähistab tahvli numbrit (st 01, 02,…)

- Määra teiste tahvlite IP -aadressid: redigeeri /etc /hosts

Staatilise IP -aadressi määramine: lisage järgmine tekst saidile /etc/network/interfaces.d/eth0

#Peamine võrguliidesautoet0

iface eth0 inet staatiline

aadress 192.168.10.101 #IP peaks olema ruuteri levialas

võrgumask 255.255.255.0

lüüs 192.168.10.1 #See peaks olema ruuteri aadress

nimeserver 8.8.8.8

nimeserver 8.8.4.4

Kui olete tahvlile IP määranud, saate käsuga ühenduse uuesti käivitada

$ ifdown eth0; ifup eth0

või taaskäivitage plaat

16. samm: võtmegeeni ja paroolivaba juurdepääsu seadistamine tahvlitel

Seadistage privaatne avaliku võtme paar igas sõlmes (kaasa arvatud peasõlm). Tehke ajutine kaust, looge uus võti ja tehke sellest volitatud võti ning lisage kõik NOPA -d teadaolevatele hostidele, nagu allpool näidatud.

mkdir tmp_sshcd tmp_ssh ssh -keygen -f./id_rsa

#Tühja parooli määramiseks ja kinnitamiseks vajutage kaks korda sisestusklahvi

cp id_rsa.pub volitatud_võtmed

i jaoks "järjestuses 0 24"; do j = $ (echo $ i | awk '{printf "%02d / n", $ 0}');

ssh-keyscan NOPA $ J >> teadaolevad_hosts; tehtud

Samm 17: Sshfsi installimine

- sshfsi kasutamine võimaldab failide jagamist klastri tahvlite vahel. Käivitage järgmine käsk:

$ sudo apt -get install -y sshfs

- Kaitserühma kontrollimine / loomine

Kontrollige, kas kaitsmerühm on olemas:

$ cat /etc /group | grep 'kaitse'

Kui rühm on olemas, täitke järgmine käsk

$ bash sudo usermod -a -G kaitsme paralleel

- Kui gruppi pole olemas, looge see ja lisage kasutaja sellesse

$ sudo group lisage kaitse

$ sudo usermod -a -G kaitsme paralleel

- Tühjendage failis fuse.config rida user_allow_other

$ sudo vim /etc/fuse.conf

Samm: konfigureerige NFS -kaust

- Muutke faili /etc /fstab

$ sudo vim /etc /fstab

- Asendage sisu allpool näidatud tekstiga

# [failisüsteem] [kinnituspunkt] [tüüp] [valikud]

sshfs#parallella@NOPA01:/home/parallella/DEMAC_nfs/home/parallella/DEMAC_nfs fuse comment = sshfs, noauto, users, exec, rw, uid = 1000, gid = 1000, allow_other, connect, transform_symlinks, BatchMode = jah, tühi, _netdev, identityfile =/home/parallella/.ssh/id_rsa, default_permissions 0 0

Samm: ühendage tahvel lülitiga

Asetage lüliti klastri alla või kuhugi lähedale, ühendage Etherneti kaablitega juba konfigureeritud plaat lülitiga. Samuti saate klastrile juurdepääsu saamiseks lüliti ja arvuti ruuteriga ühendada.

Peaksite saama pingida ja ssh sisestada tahvlisse, mis on nüüd staatilise IP -ga lülitiga ühendatud.

IP -aadressi ja hostinime saate lisada ka oma failile /etc /hosts. Kogu IP -aadressi sisestamise asemel saate ühenduse loomiseks kasutada hostinime.

20. samm: korrake samme 11 kuni 19 iga laua puhul

Järgige iga tahvli OS -i ja võrgu konfigureerimise protseduuri.

>> Oluline märkus: kasutage iga tahvli jaoks erinevaid hostinimesid ja IP -sid! Need peaksid olema võrgu kaudu ainulaadsed! <<<

Samm: ühendage välisseadmed

Ühendage välisseadmed!
Ühendage välisseadmed!

Veenduge, et ventilaator töötab:

Veenduge, et ventilaator saab voolu ja õhuvool siseneb plaadi korpusesse sissepoole. Ühendus peaks olema stabiilne ja teistest elementidest sõltumatu. Pidage meeles, et plaadid võivad ülekuumeneda, kui neid ei jahutata õigesti.

Veenduge, et lauad on lülitiga ühendatud:

Sel hetkel oleksite pidanud iga tahvli iseseisvalt konfigureerima. Lauad tuleks samuti lülitiga ühendada. Lüliti kasutusjuhend peaks sisaldama teavet, mille abil saab kontrollida, kas käivitusprotsess on õigesti lõpule viidud, võib olla mõni LED, mis näitab olekut.

Ühendage plaadid toiteallikaga:

Kasutage mikro-USB-USB-A kaablit, et ühendada kõik plaadid USB-jaoturiga. Saate pordid sildistada või määrata järjekorra juhuks, kui peate ühe plaadi lahti ühendama.

22. samm: rakendage energiat

1. Ventilaator peaks töötama.

2. Plaadid tuleb ühendada Etherneti lülitiga.

3. Kontrollige, kas plaadid on USB -jaoturiga ühendatud.

4. Andke USB -jaoturile toide.

5. Luba DEMAC!

6. Kasum!

Samm 23: Tarkvararessursid

MPI (sõnumite edastamise liides)

MPI on sideprotokoll paralleelsete arvutite programmeerimiseks. Toetatakse nii punkt-punkti kui ka kollektiivset suhtlust.

www.open-mpi.org/

OpenMP (avatud mitme töötlemisega)

Rakenduste programmeerimisliides (API) OpenMP (Open Multi-Processing) toetab mitme platvormi jagatud mäluga mitmeprotsessilist programmeerimist C, C ++ ja Fortranis paljudel platvormidel. See koosneb kogujadirektiivide komplektist, raamatukogurutiinidest ja keskkonnamuutujatest, mis mõjutavad käitusaja käitumist.

www.openmp.org/

Parallella tarkvara

Arendajad pakuvad avatud lähtekoodiga tarkvarapakki, sealhulgas SDK kiirendiga liidestamiseks.

www.parallella.org/software/

Siit leiate ka käsiraamatuid ja üksikasjalikumat teavet.

Neil on ka GitHubi hoidlad:

github.com/parallella

Laadige mõned näidised julgelt alla ja käivitage, üks mu lemmikuid on elumäng, mis põhineb kuulsal Conway elumängul.

Vastutusest loobumine: definitsioonid võidakse kopeerida Vikipeediast

Soovitan: