Taula de continguts:

DEMAC, un clúster modular Beowulf imprès en 3D: 23 passos (amb imatges)
DEMAC, un clúster modular Beowulf imprès en 3D: 23 passos (amb imatges)

Vídeo: DEMAC, un clúster modular Beowulf imprès en 3D: 23 passos (amb imatges)

Vídeo: DEMAC, un clúster modular Beowulf imprès en 3D: 23 passos (amb imatges)
Vídeo: Кластер Raspberry Pi CM4 под управлением Kubernetes — Turing Pi 2 2024, Desembre
Anonim
DEMAC, un clúster modular Beowulf imprès en 3D
DEMAC, un clúster modular Beowulf imprès en 3D

La computació d’alt rendiment (HPC) és la capacitat de processar dades i realitzar càlculs complexos a gran velocitat, és l’aplicació de "superordinadors" a problemes computacionals que són massa grans per a ordinadors estàndard o trigarien massa a completar-se. El Top500 és una llista que es publica dues vegades a l’any i que inclou alguns dels equips més ràpids i potents del món. Els països i les grans organitzacions gasten milions de recursos per fer funcionar aquest sistema perquè el científic aprofiti la tecnologia més avançada i resolgui problemes complexos.

Fa anys, els ordinadors solien millorar el seu rendiment augmentant la velocitat del processador. Després d’afrontar una desacceleració d’aquest tipus d’enfocament, els desenvolupadors van decidir que per continuar augmentant el rendiment dels ordinadors, s’haurien d’empaquetar múltiples nuclis (o unitats computacionals). L'agregació de múltiples recursos computacionals i els mecanismes per controlar aquests recursos és el que anomenem "paral·lelisme" en informàtica. Tenir diversos nuclis fent diverses tasques sona com un bon enfocament per millorar el rendiment d’un ordinador … però, això obre una gran pregunta: com fem servir aquests recursos de manera més eficient?

Aquestes preguntes han mantingut ocupats els informàtics, hi ha diverses maneres d’explicar a l’ordinador com fer les coses, hi ha encara més maneres d’explicar a diversos ordinadors com fer coses. Aquest projecte té com a objectiu desenvolupar una plataforma assequible on tothom pugui experimentar amb una màquina altament paral·lela, provar models existents per aplicar-los als vostres propis projectes, desenvolupar formes noves i creatives per resoldre problemes computacionals o simplement utilitzar-la com una manera d’ensenyar als altres sobre ordinadors. Esperem que gaudiu treballant amb DEMAC tant com nosaltres.

DEMAC

El Delaware Modular Assembly Cluster (DEMAC) és un conjunt extensible de sistemes incrustats (ordinadors amb mida de targeta) i un conjunt de marcs impresos en 3D per encapsular les plaques i el maquinari addicional que proporcionen alimentació, refrigeració i accés a la xarxa.

Cada dispositiu o sistema incrustat és un petit equip, una placa Parallella que combina els recursos d’un processador ARM de doble nucli, un coprocessador de 16 nuclis anomenat Epiphany i un FPGA incrustat amb la flexibilitat d’una pila de codi obert completa. El suport és un marc imprès en 3D fet a casa que permet una implementació de baix cost i una estructura escalable. Està dissenyat per adaptar-se a 4 unitats d’un bastidor de mida estàndard (com les que es troben a les sales de servidors d’ordinadors).

Aquesta instrucció inclou:

- Una llista de materials necessaris

- Instruccions per imprimir en 3D els marcs

- Instruccions per muntar i connectar les peces

- Una guia per descarregar i instal·lar el programari requerit

- Una descripció de com connectar-se i interactuar amb el clúster

- A "Per què ho fem?" secció

Qui sóm?

Som CAPSL (Computer Architecture and Parallel Laboratory), de la Universitat de Delaware. Creiem que el futur de la computació hauria de tenir una base sòlida en la teoria del flux de dades (que explicarem més endavant en aquest instructiu si us interessa).

Subministraments

Aquesta llista descriu els materials necessaris per construir un clúster de 4 taules

- 4 taulers Parallella (els podeu obtenir de DigiKey o d'altres proveïdors, podeu trobar més informació al seu lloc web

- 4 targetes micro-SD amb 16 GB com a mínim (aquí teniu un paquet de 10 molt econòmic o alguna cosa així com aquests combos més flexibles)

- 4 cables micro-USB de longitud mínima de 30 cm (els recomano)

- Carregador USB [amb almenys 4 ports tipus A] (el recomano amb 6 ports o un amb el mateix factor de forma, ja que la funda d'alimentació està dissenyada per a ell)

- Ventilador de refrigeració [mida màxima 100 mm x 100 mm x 15 mm] (el recomano perquè és econòmic i funciona, però altres amb configuració de cable i mida similar funcionen)

- Font d'alimentació per a ventilador de refrigeració (si la vostra configuració és per a més de 8 plaques, us recomano aquesta o alguna cosa similar [CA 100 V / 240 V a CC 12 V 10 A 120 W] que té una bonica carcassa metàl·lica i que també es pot connectar al commutador) (Si connecteu només dos ventiladors o menys, podeu utilitzar qualsevol 12 V amb una font d'alimentació de sortida d'almenys 1 A que pugueu tenir al voltant)

- 5 cables Ethernet (4 poden ser curts com aquests, depenent de la distància del commutador a les plaques, i un ha de ser prou llarg per connectar el commutador amb l'ordinador o el mòdem per accedir a la xarxa del clúster)

>> Nota important: cal un sistema de refrigeració, en cas contrari les taules es poden escalfar. <<<

Parts impreses en 3D

- 4 safates de tauler (Frame_01)

- 1 carcassa del tauler (Frame_02)

- 1 carcassa del ventilador (Frame_03_B i Frame_03_T)

- 1 carcassa de potència (Frame_04)

Pas 1: Quant a DEMAC

Quant a DEMAC
Quant a DEMAC

DEMAC forma part d’una imatge més gran, una plataforma flexible i escalable que ens permet desenvolupar i provar nous models d’execució de programació (PXM) per a càlcul paral·lel. Un PXM és més que una manera de descriure el càlcul, representa la columna vertebral que proporciona un acord entre la forma en què s’expressa un programa i com es tradueix a un llenguatge comú que la màquina pot executar. Descrivim un conjunt d'elements que permeten a l'usuari generar programes i una manera d'organitzar l'execució del programa. El programa es pot optimitzar per orientar una arquitectura específica a l'usuari o una eina automatitzada basada en aquest fons comú.

Podeu obtenir més informació sobre aquest projecte al final d’aquest instructiu, també podeu fer clic aquí per obtenir més informació sobre DEMAC o aquí per obtenir més informació sobre CAPSL)

Pas 2: Impressió 3D DEMAC

Impressió 3D DEMAC!
Impressió 3D DEMAC!
Impressió 3D DEMAC!
Impressió 3D DEMAC!
Impressió 3D DEMAC!
Impressió 3D DEMAC!

En aquesta secció podeu trobar una guia per imprimir en 3D els marcs que contenen els altres components i que proporcionen suport estructural. Fins i tot si sou un mestre d’impressió 3D, aquí teniu alguns consells que podeu tenir en compte a l’hora d’imprimir aquests marcs. Tots els marcs es poden imprimir mitjançant un broquet de 0,4 mm amb una alçada de capa de 0,3 o 0,2 (també podeu utilitzar adaptatiu). Ho he imprès tot amb PLA, però realment no importa si voleu utilitzar altres materials (sempre que proporcionin estabilitat estructural i puguin tolerar temperatures més altes o iguals que les PLA).

Fitxers STL:

www.thingiverse.com/thing:4493780

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

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

Safata de tauler (Frame_01)

No es requereixen suports addicionals. Aquest és bastant senzill, simplement col·loqueu-lo amb la superfície plana cap a la superfície d'impressió.

Carcassa del tauler (Frame_02)

Aquest pot requerir un cert suport a les bigues mitjanes. Podeu argumentar que una màquina / talladora ben sintonitzada pot imprimir aquests ponts sense suport addicional. Proveu primer algunes proves d'estrès de pont si voleu imprimir sense suports, ja que la idea era que no les requeriria. D'altra banda, les columnes laterals i les parets proporcionen el suport suficient per imprimir-les sense estructures de suport addicionals.

Carcassa del ventilador (Frame_03_B i Frame_03_T)

No es requereixen suports addicionals. Simplement col·loqueu les dues parts amb la superfície plana cap a la superfície d'impressió.

Carcassa de potència (Frame_04)

De manera similar a Frame_02, aquest pot requerir un cert suport a les bigues mitjanes. També podeu provar d'imprimir-lo sense material de suport addicional (tal com estava previst). Les columnes laterals i les parets proporcionen el suport suficient per imprimir-les sense estructures de suport addicionals.

Carcassa de refrigeració de sortida (Frame_05_B i Frame_05_T)

No es requereixen suports addicionals. Simplement col·loqueu les dues parts amb la superfície plana cap a la superfície d'impressió.

Pas 3: muntar DEMAC

Muntar DEMAC!
Muntar DEMAC!

Ara que teniu totes les parts necessàries, és hora de començar a muntar el clúster.

Recordeu eliminar el material de suport que pugueu tenir als marcs.

Pas 4: col·loqueu el ventilador a la carcassa

Col·loqueu el ventilador a la carcassa
Col·loqueu el ventilador a la carcassa
Col·loqueu el ventilador a la carcassa
Col·loqueu el ventilador a la carcassa

Simplement feu lliscar el ventilador dins del Frame_03_B (amb el cable a la cantonada inferior dreta), la part inferior hauria de cabre dins de les petites parets corbes que mantenen el ventilador al seu lloc.

Col·loqueu Frame_03_T amb les petites parets corbes orientades cap avall a la part superior del Frame_03_B (amb el ventilador ja col·locat). Aneu amb compte de col·locar la tapa més ampla del marc_03_T mirant cap a la cara més ampla (posterior) del marc_03_B. Els marcs han de fer clic i les tapes els han de mantenir al seu lloc.

Pas 5: uniu-vos a la carcassa del tauler amb la carcassa de potència

Uniu-vos a la carcassa del tauler amb la carcassa elèctrica
Uniu-vos a la carcassa del tauler amb la carcassa elèctrica
Uniu-vos a la carcassa del tauler amb la carcassa elèctrica
Uniu-vos a la carcassa del tauler amb la carcassa elèctrica

Col·loqueu Frame_02 a sobre de Frame_04, aquests dos estan dissenyats per combinar-se. Hi ha una petita dentada a la part inferior de Frame_02 que s’adapta als connectors de la part superior de Frame_04. Apliqueu una força suau per connectar-los.

Pas 6: instal·leu la unitat de refrigeració

Instal·leu la unitat de refrigeració
Instal·leu la unitat de refrigeració

Frame_03 (B&T) estan dissenyats per combinar-se amb Frame_02, col·loqueu el ventilador cap a les taules (el flux d’aire hauria d’anar cap a dins Frame_02). Hi ha petites marques a les columnes de Frame_02 que haurien de coincidir amb les marques de Frame_03_B. Apliqueu una pressió suau a les cares laterals de l'estructura fins que els marcs facin clic.

Pas 7: Col·loqueu els taulers a les safates del tauler

Col·loqueu els taulers a les safates del tauler
Col·loqueu els taulers a les safates del tauler

Frame_01 té 4 pins que coincideixen amb els forats del tauler Parallella. El tauler hauria de cabre fàcilment a la safata. Segons el calibratge de la impressora 3D, pot ser que sigui massa gran o massa petit, podeu utilitzar una mica de cola de silicona líquida per mantenir-les al seu lloc o prémer-les una mica amb unes alicates per reduir el diàmetre.

>> Nota important: recordeu de col·locar els dissipadors de calor al tauler <<<

Pas 8: Feu lliscar les safates del tauler a la carcassa del tauler

Feu lliscar les safates del tauler a la carcassa del tauler
Feu lliscar les safates del tauler a la carcassa del tauler

Frame_01 proporciona ranures que s’adapten als rails Frame_02 per a cada nivell. Tingueu en compte que només hi ha un costat obert per rebre la safata del tauler. També hi ha una petita protuberància que ajuda a mantenir Frame_01 al seu lloc (sincerament, aquests podrien utilitzar alguna millora en una versió futura).

Feu lliscar les 4 safates de tauler amb les taules ja col·locades, 1 per cada nivell.

Pas 9: col·loqueu la font d'alimentació a l'interior de la carcassa d'alimentació

Col·loqueu la font d'alimentació a l'interior de la carcassa d'alimentació
Col·loqueu la font d'alimentació a l'interior de la carcassa d'alimentació

Col·loqueu la font d'alimentació USB a Frame_04 amb els ports USB cap a l'exterior. Hi ha una petita obertura a l'altre costat per al cable d'alimentació que alimenta el concentrador.

Pas 10: connecteu el ventilador a la font d'alimentació de refrigeració

Ara el ventilador hauria d’estar connectat a la font d’alimentació de 12 V que proporciona energia a la unitat de refrigeració.

>> Nota important: Mantingueu el sistema de refrigeració en funcionament sempre que tingueu les plaques connectades a la font d'alimentació <<<

Pas 11: configureu el sistema operatiu

1. Descarregueu el sistema operatiu recomanat (Parabuntu) aquí

Hi ha dues versions dels xips (z7010 [P1600 / P1601] i z7020 [P1602 / A101040] que requereixen fitxers diferents.

Per a les dues versions, hi ha una versió sense cap (sense interfície gràfica d’usuari) i una versió que proporciona suport HDMI i una interfície gràfica d’usuari).

Si voleu utilitzar la sortida HDMI, recordeu-vos d’obtenir un cable mini-HDMI.

Podeu interactuar amb la versió sense cap a través de la xarxa.

Podeu trobar més informació i explicacions detallades aquí al lloc web oficial.

Aquests són els passos per instal·lar el sistema operatiu mitjançant una distribució basada en Linux. Podeu utilitzar ordres al terminal (sense el símbol $) per als passos següents o consultar altres procediments al lloc web.

2. Instal·leu

- Inseriu la targeta micro-SD a l'ordinador normal - Descomprimiu la imatge d'Ubuntu. Canvieu [releasename] pel nom de la imatge.

$ gunzip -d [releasename].img.gz

3. Verifiqueu la ruta del dispositiu de la vostra targeta SD

La ruta exacta del dispositiu a la targeta SD depèn de la distribució de Linux i de la configuració de l'ordinador. Utilitzeu l'ordre següent per obtenir el camí correcte. Si de la sortida no queda clar quin camí és el correcte, proveu l’ordre amb i sense inserir la targeta SD. A Ubuntu, el camí retornat pot ser una cosa així com '/ dev / mmcblk0p1'.

$ df -h

4. Desmunteu la targeta SD Cal que desmunteu totes les particions de les targetes SD abans de gravar-la. El [sd-partition-path] prové de l’ordre ‘df’ del pas 3.

$ umount [sd-partition-path]

5. Grabeu la imatge del disc Ubuntu a la targeta micro-SD

Grabeu la imatge a la targeta SD mitjançant la utilitat "dd" que es mostra a l'exemple següent. Tingueu cura i assegureu-vos que especifiqueu el camí correctament, ja que aquesta ordre és irreversible i sobreescriurà qualsevol cosa del camí. Un exemple d’ordre a l’Ubuntu seria: ‘sudo dd bs = 4M if = my_release.img of = / dev / mmcblk0’. Tingueu paciència, pot trigar una estona (molts minuts) en funció de l’ordinador i la targeta SD que s’utilitzin.

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

6. Assegureu-vos que s'han completat totes les escriptures a la targeta SD

$ sincronització

7. Introduïu la targeta SD a la ranura de la targeta SD de la placa

Pas 12: connecteu la placa a la font d'alimentació

Utilitzeu el cable miniUSB a USB-A per connectar una de les plaques al concentrador USB. Podeu etiquetar els ports i els cables o definir un ordre a les connexions per si cal desconnectar una placa més endavant.

Pas 13: Configuració del router

Configuració del router
Configuració del router

Si feu la instal·lació del sistema operatiu sense cap mentre esteu en una xarxa gran, haureu d’utilitzar un enrutador i connectar-lo a Internet, a les plaques Parallella i a l’ordinador personal.

Si no podeu connectar-vos al router, també podeu connectar la placa directament a l'ordinador mitjançant el cable Ethernet, aquest procediment pot ser una mica més complicat i no es descriurà en aquest instructiu.

Un cop tot estigui connectat, obriu la interfície del router per esbrinar quina adreça IP s’està donant per defecte al vostre Parallella. Cerqueu una pestanya que digui Xarxa. A continuació, cerqueu una secció anomenada Llista de clients DHCP. Allà hauríeu de veure la vostra placa Parallella i la seva adreça IP.

Amb aquesta adreça IP, podeu SSH a Parallella i configurar una adreça IP estàtica.

Pas 14: Connexió a la placa Parallella amb SSH

Nota: per a aquesta secció, [default_IP] és l'adreça IP dinàmica que heu trobat a la llista de clients DHCP.

Comproveu la connexió al tauler

$ ping [default_IP]

SSH al tauler per primera vegada (la contrasenya per defecte és paral·lela)

$ ssh parallella @ [default_IP]

Pas 15: Configuració de la xarxa

- Canvia el nom de l’amfitrió: edita / etc / hostname

Aquí podeu assignar qualsevol nom que vulgueu, us recomanem que utilitzeu NOPA ##

On ## identifica el número del tauler (és a dir, 01, 02, …)

- Estableix altres taules adreces IP: edit / etc / hosts

Definiu l'adreça IP estàtica: afegiu el text següent per a /etc/network/interfaces.d/eth0

#La interfície de xarxa principal eth0

iface eth0 inet static

l'adreça 192.168.10.101 #IP ha d'estar dins del rang del router

màscara de xarxa 255.255.255.0

passarel·la 192.168.10.1 # Aquesta hauria de ser l'adreça del router

servidor de noms 8.8.8.8

servidor de noms 8.8.4.4

Un cop assignada la IP a la placa, podeu reiniciar la connexió amb l'ordre

$ ifdown eth0; ifup eth0

o reinicieu el tauler

Pas 16: Configuració de l'accés Keygen i sense contrasenya a les plaques

Configureu un parell de claus públiques privades a tots els nodes (inclòs el node principal). Feu una carpeta temporal, creeu una clau nova i convertiu-la en una clau autoritzada i afegiu totes les NOPA als hosts coneguts, tal com es mostra a continuació.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

#Premeu Enter dues vegades per configurar i confirmar una contrasenya buida

cp id_rsa.pub tecles_autoritzades

per a i a la "seq 0 24"; fer j = $ (eco $ i | awk '{printf "% 02d / n", $ 0}');

ssh-keyscan NOPA $ J >> hostes_ coneguts; fet

Pas 17: Instal·lació de Sshfs

- L’ús de sshfs permet compartir fitxers entre les taules del clúster. Executeu l'ordre següent:

$ sudo apt-get install -y sshfs

- Comprovació / creació de grup de fusibles

Comproveu si el grup de fusibles existeix:

$ cat / etc / group | grep "fusible"

Si el grup existeix, executeu l'ordre següent

$ bash sudo usermod -a -G fusible parallella

- Si el grup no existeix, creeu-lo i afegiu-hi l'usuari

$ sudo groupadd fusible

$ sudo usermod -a -G fusible parallella

- Descomenteu la línia user_allow_other al fitxer fuse.config

$ sudo vim /etc/fuse.conf

Pas 18: configureu la carpeta NFS

- Modifiqueu el fitxer / etc / fstab

$ sudo vim / etc / fstab

- Substituïu el contingut pel text que es mostra a continuació

# [sistema de fitxers] [punt de muntatge] [tipus] [opcions]

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, fitxer d'identitat = / home / parallella /.ssh / id_rsa, default_permissions 0 0

Pas 19: connecteu la placa al commutador

Col·loqueu el commutador a sota del clúster o en algun lloc proper, utilitzeu cables Ethernet per connectar la placa que ja heu configurat al commutador. També podeu connectar l'interruptor i l'ordinador al router per obtenir accés al clúster.

Hauríeu de poder fer ping i ssh a la placa que ara està connectada al commutador amb una IP estàtica.

També podeu afegir la IP i el nom d’amfitrió al fitxer / etc / hosts. Podreu utilitzar el nom d’amfitrió per connectar-vos en lloc d’escriure tota l’adreça IP.

Pas 20: repetiu els passos 11 a 19 per a cada tauler

Seguiu el procediment per configurar el sistema operatiu i la xarxa per a cada placa.

>> Nota important: utilitzeu diferents noms d’amfitrió i IP per a cada tauler. Haurien de ser únics a través de la xarxa. <<<

Pas 21: connecteu els perifèrics

Connecteu perifèrics!
Connecteu perifèrics!

Assegureu-vos que el ventilador funcioni:

Assegureu-vos que el ventilador aconsegueix energia i que el flux d’aire s’endinsa cap a la carcassa del tauler. La connexió ha de ser estable i independent d’altres elements. Recordeu que les taules es poden escalfar si no es refreden correctament.

Assegureu-vos que les taules estiguin connectades al commutador:

En aquest moment hauríeu d'haver configurat cada placa de forma independent. Les plaques també haurien d’estar connectades a l’interruptor. El manual del commutador hauria de proporcionar informació que es pugui utilitzar per comprovar que el procés d’inici s’hagi completat correctament. Hi pot haver alguns LED que indiquin l’estat.

Connecteu les plaques a la font d'alimentació:

Utilitzeu el cable micro-USB a USB-A per connectar cadascuna de les plaques al concentrador USB. Podeu etiquetar els ports o definir una comanda en cas que necessiteu desconnectar una sola placa.

Pas 22: apliqueu energia

1. El ventilador hauria de funcionar.

2. Les plaques s'han de connectar al commutador Ethernet.

3. Comproveu que les plaques estiguin connectades al concentrador USB.

4. Proporcionar alimentació al concentrador USB.

5. Activeu DEMAC.

6. Benefici!

Pas 23: Recursos de programari

MPI (Message Passing Interface)

MPI és un protocol de comunicació per programar ordinadors paral·lels. Es dóna suport tant a la comunicació punt a punt com a la col·lectiva.

www.open-mpi.org/

OpenMP (Open Multi-Processing)

La interfície de programació d'aplicacions (API) OpenMP (Open Multi-Processing) admet programació multiprocessament de memòria compartida multiplataforma en C, C ++ i Fortran, en moltes plataformes. Consisteix en un conjunt de directrius de compilador, rutines de biblioteca i variables d'entorn que influeixen en el comportament en temps d'execució.

www.openmp.org/

Programari Parallella

Els desenvolupadors proporcionen una pila de programari de codi obert, inclòs un SDK per a la interfície amb l'accelerador.

www.parallella.org/software/

També podeu trobar manuals i informació més detallada.

També tenen repositoris GitHub:

github.com/parallella

Siéntase lliure de descarregar i executar alguns exemples, un dels meus preferits és el joc de la vida basat en el famós Joc de la vida de Conway.

Exempció de responsabilitat: les definicions es poden copiar de la wikipedia

Recomanat: