Cuprins:

DEMAC, un cluster modular Beowulf tipărit 3D: 23 de pași (cu imagini)
DEMAC, un cluster modular Beowulf tipărit 3D: 23 de pași (cu imagini)
Anonim
DEMAC, un cluster modular Beowulf tipărit 3D
DEMAC, un cluster modular Beowulf tipărit 3D

Calculul de înaltă performanță (HPC) este capacitatea de a procesa date și de a efectua calcule complexe la viteze mari, este aplicarea „supercomputerelor” la problemele de calcul care sunt fie prea mari pentru calculatoarele standard, fie ar dura prea mult timp pentru a fi finalizate. Top500 este o listă, care este publicată de două ori pe an și clasează unele dintre cele mai rapide și mai puternice computere din lume. Țările și organizațiile mari cheltuiesc milioane de resurse pentru ca aceste sisteme să fie puse în funcțiune pentru ca oamenii de știință să folosească tehnologia de ultimă generație și să rezolve probleme complexe.

Cu ani în urmă, computerele își îmbunătățeau performanțele prin creșterea vitezei procesorului. După ce ne-am confruntat cu o încetinire a acestui tip de abordare, dezvoltatorii au decis că pentru a continua să crească performanța computerelor, mai multe nuclee (sau unități de calcul) ar trebui să fie împachetate împreună. Agregarea mai multor resurse de calcul și mecanismele de control al acestor resurse este ceea ce numim „paralelism” în informatică. A avea mai multe nuclee care fac mai multe sarcini sună ca o abordare bună pentru a îmbunătăți performanțele unui computer … dar, aceasta ne deschide o mare întrebare: cum folosim aceste resurse mai eficient?

Aceste întrebări au ținut informaticii ocupați, există mai multe moduri de a spune unui computer cum să facă lucrurile, există și mai multe modalități de a spune mai multor computere cum să facă lucruri. Acest proiect își propune să dezvolte o platformă accesibilă în care toată lumea să poată experimenta cu o mașină extrem de paralelă, să testeze modele existente pentru a aplica în propriile proiecte, să dezvolte modalități noi și creative de a rezolva probleme de calcul sau doar să o folosească ca o modalitate de a învăța pe ceilalți despre computere. Sperăm că vă puteți bucura să lucrați cu DEMAC la fel de mult ca noi.

DEMAC

Clusterul de asamblare modular Delaware (DEMAC) este o gamă extensibilă de sisteme încorporate (calculatoare cu dimensiuni de card) și un set de cadre tipărite 3D pentru a încadra plăcile și hardware-ul suplimentar care asigură alimentare, răcire și acces la rețea.

Fiecare dispozitiv sau sistem încorporat este un computer mic, o placă Parallella care combină resursele unui procesor ARM dual core, un coprocesor cu 16 nuclee numit Epiphany și un FPGA încorporat, cu flexibilitatea unui stack open-source complet. Suportul este un cadru tipărit 3D de casă, care permite o implementare cu costuri reduse și o structură escalabilă. Acesta este conceput pentru a se potrivi cu 4 unități dintr-un rack de dimensiuni standard (precum cele pe care le găsiți în camerele serverelor de calculatoare).

Acest instructable include:

- O listă de materiale necesare

- Instrucțiuni pentru imprimarea 3D a cadrelor

- Instrucțiuni pentru asamblarea și conectarea pieselor

- Un ghid pentru descărcarea și instalarea software-ului necesar

- O descriere a modului de conectare și interacțiune cu clusterul

- Un "De ce facem asta?" secțiune

Cine suntem noi?

Suntem CAPSL (Computer Architecture and Parallel Laboratory), de la Universitatea din Delaware. Credem că viitorul calculului ar trebui să aibă o bază puternică în teoria fluxului de date (pe care îl vom explica mai târziu în acest instructable dacă sunteți interesat).

Provizii

Această listă descrie materialele necesare construirii unui cluster cu 4 plăci

- 4 plăci Parallella (le puteți obține de la DigiKey sau de la alți furnizori, puteți găsi mai multe informații pe site-ul lor

- 4 carduri micro-SD cu cel puțin 16 GB (aici este un pachet de 10 foarte ieftin sau ceva de genul acestor combinații mai flexibile)

- 4 cabluri micro-USB lungime min 30 cm (1 ft) (le recomand)

- Încărcător USB [cu cel puțin 4 porturi tip A] (îl recomand pe acesta cu 6 porturi sau unul cu același factor de formă, deoarece carcasa de alimentare este concepută pentru acesta)

- Ventilator de răcire [dimensiune maximă 100 mm x 100 mm x 15 mm] (îl recomand pe acesta deoarece este ieftin și funcționează, dar funcționează altele cu dimensiuni similare și configurație cablu)

- Alimentare pentru ventilatorul de răcire (Dacă configurația dvs. este pentru mai mult de 8 plăci, vă recomand aceasta sau ceva similar [AC 100 V / 240 V la DC 12 V 10 A 120 W] care are o carcasă metalică frumoasă și poate fi atașat, de asemenea, la comutator) (Dacă intenționați să conectați doar două ventilatoare sau mai puțin, puteți utiliza orice 12 V cu o sursă de alimentare de cel puțin 1 A pe care s-ar putea să o aveți în jur)

- 5 cabluri Ethernet (4 pot fi scurte ca acestea, în funcție de distanța de la comutator la plăci și unul ar trebui să fie suficient de lung pentru a conecta comutatorul fie la computer, fie la modem pentru a accesa rețeaua cluster)

>> Notă importantă: Este necesar un sistem de răcire, altfel plăcile se pot supraîncălzi! <<<

Piese imprimate 3D

- 4 tăvi de bord (Frame_01)

- 1 carcasă de bord (Frame_02)

- 1 carcasă ventilator (Frame_03_B & Frame_03_T)

- 1 carcasă de alimentare (Frame_04)

Pasul 1: Despre DEMAC

Despre DEMAC
Despre DEMAC

DEMAC face parte dintr-o imagine mai largă, o platformă flexibilă și escalabilă care ne permite să dezvoltăm și să testăm noi modele de execuție a programării (PXM) pentru calcul paralel. Un PXM este mai mult decât o modalitate de a descrie calculul, reprezintă coloana vertebrală care oferă un acord între modul în care este exprimat un program și modul în care este tradus într-un limbaj comun care poate fi executat de mașină. Descriem un set de elemente care permite utilizatorului să genereze programe și o modalitate de a organiza execuția programului. Programul poate fi optimizat pentru a viza o arhitectură specifică de către utilizator sau un instrument automat bazat pe acest fundal comun.

Puteți afla mai multe despre acest proiect la sfârșitul acestui instructable, puteți face clic aici pentru a obține mai multe informații despre DEMAC sau aici pentru a obține mai multe informații despre CAPSL)

Pasul 2: Imprimare 3D DEMAC

Imprimare 3D DEMAC!
Imprimare 3D DEMAC!
Imprimare 3D DEMAC!
Imprimare 3D DEMAC!
Imprimare 3D DEMAC!
Imprimare 3D DEMAC!

În această secțiune puteți găsi un ghid pentru imprimarea 3D a cadrelor care încadrează celelalte componente și oferă suport structural. Chiar dacă sunteți un maestru de imprimare 3D, iată câteva sfaturi pe care le puteți lua în considerare în timp ce imprimați aceste cadre. Toate cadrele pot fi imprimate folosind o duză de 0,4 mm cu o înălțime de 0,3 sau 0,2 straturi (ați putea folosi și adaptativ). Am imprimat totul folosind PLA, dar nu contează cu adevărat dacă doriți să utilizați alte materiale (atâta timp cât acestea oferă stabilitate structurală și pot tolera temperaturi mai ridicate sau egale decât PLA).

Fișiere STL:

www.thingiverse.com/thing:4493780

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

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

Tava de bord (Frame_01)

Nu sunt necesare suporturi suplimentare. Acesta este destul de simplu, așezați-l doar cu suprafața plană orientată spre suprafața de imprimare.

Carcasa plăcii (Frame_02)

Acesta poate necesita un anumit sprijin în grinzile medii. Puteți susține că o mașină / feliată bine reglată poate imprima acele poduri fără suport suplimentar. Vă rugăm să încercați mai întâi câteva teste de rezistență la punte dacă doriți să imprimați fără suporturi, deoarece ideea a fost că nu le va necesita. Pe de altă parte, coloanele laterale și pereții asigură suficient suport pentru ca acestea să poată fi imprimate fără structuri de sprijin suplimentare.

Carcasa ventilatorului (Frame_03_B & Frame_03_T)

Nu sunt necesare suporturi suplimentare. Așezați ambele părți cu suprafața plană orientată spre suprafața de imprimare.

Carcasa de alimentare (Frame_04)

Similar cu Frame_02, acesta poate necesita un anumit sprijin în grinzile medii. Puteți încerca, de asemenea, să o imprimați fără material de suport suplimentar (așa cum a fost intenționat). Coloanele laterale și pereții asigură suficient suport pentru ca acestea să poată fi tipărite fără structuri suplimentare de susținere.

Carcasă de răcire a ieșirii (Frame_05_B & Frame_05_T)

Nu sunt necesare suporturi suplimentare. Așezați ambele părți cu suprafața plană orientată spre suprafața de imprimare.

Pasul 3: Asamblați DEMAC

Asamblează DEMAC!
Asamblează DEMAC!

Acum, că aveți toate piesele necesare, este timpul să începeți asamblarea clusterului.

Nu uitați să eliminați materialul de susținere pe care l-ați putea avea pe rame.

Pasul 4: Așezați ventilatorul pe carcasă

Așezați ventilatorul pe carcasă
Așezați ventilatorul pe carcasă
Așezați ventilatorul pe carcasă
Așezați ventilatorul pe carcasă

Pur și simplu glisați ventilatorul în interiorul Frame_03_B (cu cablul în colțul din dreapta jos), partea de jos ar trebui să se potrivească în interiorul micilor pereți curbați care țin ventilatorul în poziție.

Așezați Frame_03_T cu micii pereți curbați orientați în jos în partea de sus a Frame_03_B (cu ventilatorul deja în poziție). Aveți grijă să așezați cel mai larg capac al Frame_03_T orientat spre fața mai largă (posterioară) a Frame_03_B. Cadrele ar trebui să facă clic, iar capacele să le mențină în poziție.

Pasul 5: Alăturați-vă carcasei plăcii cu carcasa electrică

Alăturați-vă carcasei de bord cu carcasa de alimentare
Alăturați-vă carcasei de bord cu carcasa de alimentare
Alăturați-vă carcasei cu carcasa electrică
Alăturați-vă carcasei cu carcasa electrică

Așezați Frame_02 deasupra Frame_04, aceste două sunt concepute pentru a se fixa împreună. Există o mică adâncitură în partea de jos a Frame_02 care se potrivește conectorilor din partea de sus a Frame_04. Aplicați o forță ușoară pentru a le conecta.

Pasul 6: Instalați unitatea de răcire

Instalați unitatea de răcire
Instalați unitatea de răcire

Frame_03 (B&T) sunt concepute pentru a se fixa împreună cu Frame_02, așezați ventilatorul cu fața către plăci (fluxul de aer ar trebui să meargă spre interior Frame_02). Există colțuri mici pe coloanele lui Frame_02 care ar trebui să se potrivească cu marcajele din Frame_03_B. Aplicați o presiune ușoară pe fețele laterale ale structurii până când cadrele fac clic.

Pasul 7: Așezați panourile pe tăvile de bord

Așezați panourile pe tăvile de bord
Așezați panourile pe tăvile de bord

Frame_01 are 4 pini care se potrivesc cu găurile din placa Parallella. Placa ar trebui să se potrivească cu ușurință în tavă. În funcție de calibrarea imprimantei 3D, acestea ar putea fi prea mari sau prea mici, puteți utiliza un pic de lipici siliconic lichid pentru a le menține în poziție sau apăsați-le puțin cu niște clești pentru a reduce diametrul.

>> Notă importantă: nu uitați să plasați radiatoarele pe tablă <<<

Pasul 8: Glisați tăvile plăcii în carcasa plăcii

Glisați tăvile plăcii în carcasa plăcii
Glisați tăvile plăcii în carcasa plăcii

Frame_01 oferă sloturi care se încadrează în șinele Frame_02 pentru fiecare nivel. Rețineți că există o singură latură deschisă pentru a primi tava plăcii. Există, de asemenea, o mică umflătură care ajută la menținerea Frame_01 la locul său (sincer, acestea ar putea folosi unele îmbunătățiri într-o versiune viitoare).

Glisați toate cele 4 tăvi de placă cu plăcile deja în poziție, câte 1 pe fiecare nivel.

Pasul 9: Plasați sursa de alimentare în interiorul carcasei de alimentare

Așezați sursa de alimentare în interiorul carcasei de alimentare
Așezați sursa de alimentare în interiorul carcasei de alimentare

Plasați sursa de alimentare USB în cadrul Frame_04 cu porturile USB orientate spre exterior. Există o mică deschidere pe cealaltă parte pentru cablul de alimentare care alimentează butucul.

Pasul 10: Conectați ventilatorul la sursa de alimentare cu răcire

Ventilatorul ar trebui să fie acum conectat la sursa de alimentare de 12 V care furnizează energie unității de răcire.

>> Notă importantă: mențineți sistemul de răcire funcțional tot timpul în timp ce plăcile sunt conectate la sursa de alimentare <<<

Pasul 11: Configurați sistemul de operare

1. Descărcați sistemul de operare recomandat (Parabuntu) aici

Există două revizuiri ale cipurilor (z7010 [P1600 / P1601] și z7020 [P1602 / A101040] care necesită fișiere diferite.

Pentru ambele revizuiri, există o versiune fără cap (fără interfață grafică pentru utilizator) și o versiune care oferă suport HDMI și o interfață grafică pentru utilizator)

Dacă doriți să utilizați ieșirea HDMI, nu uitați să obțineți un cablu mini-HDMI.

Puteți interfața cu versiunea fără cap prin rețea.

Mai multe informații și explicații detaliate pot fi găsite aici pe site-ul oficial.

Iată pașii pentru instalarea sistemului de operare utilizând o distribuție bazată pe Linux. Puteți utiliza comenzi în terminal (fără simbolul $) pentru pașii următori sau puteți verifica alte proceduri de pe site.

2. Instalați

- Introduceți cardul micro-SD în computerul obișnuit - Dezarhivați imaginea Ubuntu. Schimbați [releasename] pentru numele imaginii.

$ gunzip -d [releasename].img.gz

3. Verificați calea dispozitivului cardului SD

Calea exactă a dispozitivului către cardul dvs. SD depinde de distribuția Linux și de configurarea computerului. Folosind comanda de mai jos pentru a obține calea corectă. Dacă din ieșire nu este clar care cale este cea corectă, încercați comanda cu și fără cardul SD introdus. În Ubuntu, calea returnată ar putea fi ceva de genul „/ dev / mmcblk0p1”.

$ df -h

4. Demontați cardul SD Va trebui să demontați toate partițiile de pe cardurile SD înainte de a arde cardul. [Sd-partition-path] provine de la comanda ‘df’ din pasul 3.

$ umount [sd-partition-path]

5. Ardeți imaginea discului Ubuntu pe cardul micro-SD

Ardeți imaginea pe cardul SD utilizând utilitarul „dd” prezentat în exemplul de comandă de mai jos. Vă rugăm să fiți atenți și asigurați-vă că specificați corect calea, deoarece această comandă este ireversibilă și va suprascrie orice din cale! Un exemplu de comandă în Ubuntu ar fi: ‘sudo dd bs = 4M if = my_release.img of = / dev / mmcblk0’. Vă rugăm să aveți răbdare, aceasta poate dura ceva timp (multe minute), în funcție de computer și de cardul SD utilizat.

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

6. Asigurați-vă că toate scrisurile pe cardul SD s-au finalizat

$ sincronizare

7. Introduceți cardul SD în slotul cardului SD de pe placă

Pasul 12: Conectați placa la sursa de alimentare

Utilizați cablul miniUSB la USB-A pentru a conecta una dintre plăci la hub-ul USB. Puteți eticheta porturile și cablurile sau defini o comandă a conexiunilor în cazul în care trebuie să deconectați o placă mai târziu.

Pasul 13: Configurarea routerului

Configurarea routerului
Configurarea routerului

Dacă instalați sistemul de operare fără cap în timp ce vă aflați într-o rețea mare, va trebui să utilizați un router și să îl conectați la internet, plăcile Parallella și computerul personal.

Dacă nu vă puteți conecta la router, puteți conecta placa direct la computer utilizând cablul Ethernet, această procedură poate fi puțin mai complicată și nu ar fi acoperită în acest instructable.

După ce totul este conectat, deschideți interfața routerului pentru a afla ce adresă IP i se oferă în mod implicit Parallella. Căutați o filă care spune Rețea. Apoi găsiți o secțiune denumită Listă de clienți DHCP. Acolo ar trebui să vă vedeți placa Parallella și adresa IP a acesteia.

Cu această adresă IP, puteți SSH în Parallella și puteți configura o adresă IP statică.

Pasul 14: Conectarea la placa Parallella cu SSH

Notă: Pentru această secțiune, [default_IP] este adresa IP dinamică pe care ați găsit-o în Lista de clienți DHCP.

Verificați conexiunea la placă

$ ping [default_IP]

SSH în bord pentru prima dată (parola implicită este paralelă)

$ ssh parallella @ [default_IP]

Pasul 15: Configurarea rețelei

- Schimbați numele gazdei: editați / etc / hostname

Aici puteți atribui orice nume doriți, vă recomandăm să utilizați NOPA ##

Unde ## identifică numărul forumului (adică 01, 02, …)

- Setați alte plăci Adrese IP: editați / etc / hosts

Setați adresa IP statică: adăugați textul de mai jos pentru /etc/network/interfaces.d/eth0

# Interfața de rețea principalăeauto eth0

iface eth0 inet static

adresa 192.168.10.101 #IP ar trebui să fie în raza de acțiune a routerului

netmask 255.255.255.0

gateway 192.168.10.1 # Aceasta ar trebui să fie adresa routerului

server de nume 8.8.8.8

server de nume 8.8.4.4

Odată ce ați atribuit adresa IP la bord, puteți reporni conexiunea cu comanda

$ ifdown eth0; ifup eth0

sau reporniți placa

Pasul 16: Configurarea accesului Keygen și fără parolă pe plăci

Configurați o pereche de chei publice private pe fiecare nod (inclusiv nodul principal). Creați un folder temporar, generați o nouă cheie și transformați-o într-o cheie autorizată și adăugați toate NOPA-urile la gazdele cunoscute, după cum se arată mai jos.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

# Apăsați Enter de două ori pentru a seta și confirma o parolă goală

cp id_rsa.pub chei_autorizate

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

ssh-keyscan NOPA $ J >> cunoscut_hosts; Terminat

Pasul 17: Instalarea Sshfs

- Utilizarea sshfs permite partajarea fișierelor între plăcile din cluster. Rulați următoarea comandă:

$ sudo apt-get install -y sshfs

- Verificarea / crearea grupului de siguranțe

Verificați dacă există grupul de siguranțe:

$ cat / etc / group | grep "siguranță"

Dacă grupul există, executați următoarea comandă

$ bash sudo usermod -a -G fuse parallella

- Dacă grupul nu există, creați-l și adăugați utilizatorul la acesta

$ sudo groupadd fuse

$ sudo usermod -a -G fuse parallella

- Decomentați linia user_allow_other în fișierul fuse.config

$ sudo vim /etc/fuse.conf

Pasul 18: Configurați folderul NFS

- Modificați fișierul / etc / fstab

$ sudo vim / etc / fstab

- Înlocuiți conținutul cu textul de mai jos

# [sistem de fișiere] [punct de montare] [tip] [opțiuni]

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

Pasul 19: Conectați placa la comutator

Plasați comutatorul sub cluster sau undeva în apropiere, utilizați cabluri Ethernet pentru a conecta placa pe care ați configurat-o deja la comutator. De asemenea, puteți conecta comutatorul și computerul la router pentru a obține acces la cluster.

Ar trebui să puteți face ping și ssh pe placa care este acum conectată la comutator cu un IP static.

De asemenea, puteți adăuga adresa IP și numele gazdei în fișierul dvs. / etc / hosts. Veți putea utiliza numele de gazdă pentru a vă conecta în loc să tastați întreaga adresă IP.

Pasul 20: Repetați pașii de la 11 la 19 pentru fiecare tablă

Urmați procedura pentru a configura sistemul de operare și rețeaua pentru fiecare placă.

>> Notă importantă: Utilizați nume de gazdă și IP diferite pentru fiecare placă! Ar trebui să fie unice prin rețea! <<<

Pasul 21: Conectați periferice

Conectați periferice!
Conectați periferice!

Asigurați-vă că ventilatorul funcționează:

Asigurați-vă că ventilatorul primește putere și fluxul de aer se îndreaptă spre interior în carcasa plăcii. Conexiunea trebuie să fie stabilă și independentă de alte elemente. Amintiți-vă că plăcile se pot supraîncălzi dacă nu sunt răcite corect.

Asigurați-vă că plăcile sunt conectate la comutator:

În acest moment ar fi trebuit să configurați fiecare placă independent. Plăcile ar trebui, de asemenea, să fie conectate la comutator. Manualul comutatorului ar trebui să furnizeze informații care pot fi utilizate pentru a verifica dacă procesul de pornire este finalizat corect, ar putea exista unele LED-uri care indică starea.

Conectați plăcile la sursa de alimentare:

Utilizați cablul micro-USB la USB-A pentru a conecta fiecare placă la hub-ul USB. Puteți eticheta porturile sau defini o comandă în cazul în care trebuie să deconectați o singură placă.

Pasul 22: Aplicați puterea

1. Ventilatorul ar trebui să funcționeze.

2. Plăcile trebuie conectate la comutatorul Ethernet.

3. Verificați dacă plăcile sunt conectate la hub-ul USB.

4. Furnizați alimentare hub-ului USB.

5. Activați DEMAC!

6. Profit!

Pasul 23: Resurse software

MPI (Message Passing Interface)

MPI este un protocol de comunicare pentru programarea calculatoarelor paralele. Sunt acceptate atât comunicarea punct-la-punct, cât și comunicarea colectivă.

www.open-mpi.org/

OpenMP (Deschidere multiprocesare)

Interfața de programare a aplicațiilor (API) OpenMP (Open Multi-Processing) acceptă programare multiprocesare multipartimentată cu memorie partajată în C, C ++ și Fortran, pe multe platforme. Acesta constă dintr-un set de directive de compilare, rutine de bibliotecă și variabile de mediu care influențează comportamentul în timpul rulării.

www.openmp.org/

Software Parallella

Dezvoltatorii oferă un stack de software open-source, inclusiv un SDK pentru interfață cu acceleratorul.

www.parallella.org/software/

De asemenea, puteți găsi manuale și informații mai detaliate.

De asemenea, au depozite GitHub:

github.com/parallella

Simțiți-vă liber să descărcați și să rulați câteva dintre exemple, unul dintre preferatele mele este jocul vieții bazat pe celebrul Conway's Game of Life.

Disclaimer: Definițiile pot fi copiate de pe Wikipedia

Recomandat: