Sommario:

DEMAC, un cluster Beowulf modulare stampato in 3D: 23 passaggi (con immagini)
DEMAC, un cluster Beowulf modulare stampato in 3D: 23 passaggi (con immagini)

Video: DEMAC, un cluster Beowulf modulare stampato in 3D: 23 passaggi (con immagini)

Video: DEMAC, un cluster Beowulf modulare stampato in 3D: 23 passaggi (con immagini)
Video: Tom Demac - Serenade 2024, Novembre
Anonim
DEMAC, un cluster Beowulf modulare stampato in 3D
DEMAC, un cluster Beowulf modulare stampato in 3D

High Performance Computation (HPC) è la capacità di elaborare dati ed eseguire calcoli complessi ad alta velocità, è l'applicazione di "Supercomputer" a problemi computazionali che sono troppo grandi per i computer standard o richiederebbero troppo tempo per essere completati. La Top500 è una lista, pubblicata due volte l'anno, e classifica alcuni dei computer più veloci e potenti al mondo. I paesi e le grandi organizzazioni spendono milioni in risorse per avere questo sistema attivo e funzionante affinché gli scienziati possano sfruttare la tecnologia all'avanguardia e risolvere problemi complessi.

Anni fa, i computer erano soliti migliorare le proprie prestazioni aumentando la velocità del processore. Dopo aver affrontato un rallentamento in questo tipo di approccio, gli sviluppatori hanno deciso che per continuare ad aumentare le prestazioni dei computer, più core (o unità computazionali) dovevano essere assemblati insieme. L'aggregazione di più risorse computazionali e dei meccanismi per controllare queste risorse è ciò che chiamiamo "parallelismo" in informatica. Avere più core che svolgono più attività sembra un buon approccio per migliorare le prestazioni di un computer … ma questo apre una grande domanda: come utilizziamo queste risorse in modo più efficiente?

Queste domande hanno tenuto occupato lo scienziato informatico, ci sono molti modi per dire a un computer come fare le cose, ci sono ancora più modi per dire a più computer come fare le cose. Questo progetto mira a sviluppare una piattaforma conveniente in cui tutti possano sperimentare una macchina altamente parallela, testare modelli esistenti da applicare nei propri progetti, sviluppare modi nuovi e creativi per risolvere problemi computazionali o semplicemente usarla come un modo per insegnare agli altri i computer. Ci auguriamo che tu possa divertirti a lavorare con DEMAC tanto quanto noi.

DEMAC

Il Delaware Modular Assembly Cluster (DEMAC) è una gamma estendibile di sistemi embedded (computer delle dimensioni di una scheda) e un set di frame stampati in 3D per racchiudere le schede e l'hardware aggiuntivo che fornisce alimentazione, raffreddamento e accesso alla rete.

Ogni dispositivo o sistema embedded è un piccolo computer, una Parallella Board che combina le risorse di un processore ARM dual core, un coprocessore a 16 core chiamato Epiphany e un FPGA embedded con la flessibilità di uno stack open source completo. Il supporto è un telaio stampato in 3D fatto in casa che consente un'implementazione a basso costo e una struttura scalabile. È progettato per ospitare 4 unità di un rack di dimensioni standard (come quelli che si trovano nelle stanze dei server dei computer).

Questo istruibile include:

- Un elenco dei materiali richiesti

- Istruzioni per stampare in 3D le cornici

- Istruzioni per assemblare e collegare le parti

- Una guida per scaricare e installare il software richiesto

- Una descrizione di come connettersi e interagire con il cluster

- A "Perché lo stiamo facendo?" sezione

Chi siamo noi?

Siamo CAPSL (Computer Architecture and Parallel Laboratory), dell'Università del Delaware. Crediamo che il futuro del calcolo dovrebbe avere una solida base nella teoria del flusso di dati (che spiegheremo più avanti in questo tutorial se sei interessato).

Forniture

Questo elenco descrive i materiali necessari per costruire un cluster a 4 schede

- 4 schede Parallella (puoi acquistarle da DigiKey o da altri fornitori, puoi trovare maggiori informazioni nel loro sito web

- 4 schede micro-SD con almeno 16 Gb (qui c'è un pacchetto da 10 molto economico o qualcosa di simile a queste combo più flessibili)

- 4 cavi micro-USB lunghezza minima 30 cm (1 ft) (li consiglio)

- Caricatore USB [con almeno 4 porte di tipo A] (consiglio questo con 6 porte o uno con lo stesso fattore di forma, poiché la custodia di alimentazione è progettata per questo)

- Ventola di raffreddamento [dimensioni massime 100 mm x 100 mm x 15 mm] (consiglio questa perché è economica e funziona, ma altre con dimensioni e configurazione dei cavi simili funzionano)

- Alimentatore per ventola di raffreddamento (se la tua configurazione prevede più di 8 schede ti consiglio questa o qualcosa di simile [AC 100 V/ 240 V a DC 12 V 10 A 120 W] che ha un bel involucro di metallo e può anche essere collegato all'interruttore) (se si collegano solo due ventole o meno, è possibile utilizzare qualsiasi alimentatore da 12 V con almeno 1 A di uscita che potresti avere in giro)

- 5 cavi Ethernet (4 possono essere corti come questi, a seconda della distanza dallo switch alle schede, e uno dovrebbe essere abbastanza lungo da collegare lo switch al computer o al modem per accedere alla rete del cluster)

>> Nota importante: è necessario un sistema di raffreddamento, altrimenti le schede potrebbero surriscaldarsi! <<<

Parti stampate in 3D

- 4 vassoi per cartone (Frame_01)

- 1 Involucro Scheda (Frame_02)

- 1 Involucro ventola (Frame_03_B & Frame_03_T)

- 1 involucro di alimentazione (Frame_04)

Passaggio 1: informazioni su DEMAC

Informazioni su DEMAC
Informazioni su DEMAC

DEMAC fa parte di un quadro più ampio, una piattaforma flessibile e scalabile che ci consente di sviluppare e testare nuovi modelli di esecuzione della programmazione (PXM) per il calcolo parallelo. Un PXM è più di un modo per descrivere il calcolo, rappresenta la spina dorsale che fornisce un accordo tra il modo in cui un programma viene espresso e come viene tradotto in un linguaggio comune che può essere eseguito dalla macchina. Descriviamo un insieme di elementi che consente all'utente di generare programmi e un modo per organizzare l'esecuzione del programma. Il programma può essere ottimizzato per indirizzare un'architettura specifica dall'utente o uno strumento automatizzato basato su questo sfondo comune.

Puoi saperne di più su questo progetto alla fine di questo tutorial, puoi anche fare clic qui per ottenere maggiori informazioni su DEMAC o qui per ottenere maggiori informazioni su CAPSL)

Passaggio 2: stampa 3D DEMAC

Stampa 3D DEMAC!
Stampa 3D DEMAC!
Stampa 3D DEMAC!
Stampa 3D DEMAC!
Stampa 3D DEMAC!
Stampa 3D DEMAC!

In questa sezione puoi trovare una guida alla stampa 3D dei telai che racchiudono gli altri componenti e forniscono supporto strutturale. Anche se sei un maestro della stampa 3D, ecco alcuni suggerimenti che puoi prendere in considerazione durante la stampa di questi fotogrammi. Tutti i telai possono essere stampati utilizzando un ugello da 0,4 mm con un'altezza di 0,3 o 0,2 strati (si potrebbe anche utilizzare l'adattativo). Ho stampato tutto utilizzando il PLA, ma non importa se si desidera utilizzare altri materiali (a patto che forniscano stabilità strutturale e possano tollerare temperature superiori o uguali rispetto al PLA).

File STL:

www.thingiverse.com/thing:4493780

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

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

Vassoio di cartone (Frame_01)

Nessun supporto aggiuntivo richiesto. Questo è piuttosto semplice, basta posizionarlo con la superficie piana rivolta verso la superficie di stampa.

Involucro della scheda (Frame_02)

Questo potrebbe richiedere un supporto nelle travi centrali. Puoi sostenere che una macchina/affettatrice ben sintonizzata può stampare quei bridge senza supporto aggiuntivo. Si prega di provare prima alcuni stress test del ponte se si desidera stampare senza supporti poiché l'idea era che non li richiedessero. D'altra parte, le colonne laterali e le pareti forniscono un supporto sufficiente per poter essere stampate senza strutture di supporto aggiuntive.

Involucro ventola (Frame_03_B e Frame_03_T)

Nessun supporto aggiuntivo richiesto. Basta posizionare entrambe le parti con la superficie piana rivolta verso la superficie di stampa.

Involucro di alimentazione (Frame_04)

Simile a Frame_02, questo potrebbe richiedere un supporto nelle travi centrali. Puoi anche provare a stampare questo senza materiale di supporto aggiuntivo (come previsto). Le colonne laterali e le pareti forniscono un supporto sufficiente per la stampa senza ulteriori strutture di supporto.

Involucro di raffreddamento in uscita (Frame_05_B e Frame_05_T)

Nessun supporto aggiuntivo richiesto. Basta posizionare entrambe le parti con la superficie piana rivolta verso la superficie di stampa.

Passaggio 3: assemblare DEMAC

Assemblare DEMAC!
Assemblare DEMAC!

Ora che hai tutte le parti necessarie è il momento di iniziare ad assemblare il cluster.

Ricordati di rimuovere il materiale di supporto che potresti avere sui telai.

Passaggio 4: posizionare la ventola sull'involucro

Posiziona la ventola sull'involucro
Posiziona la ventola sull'involucro
Posiziona la ventola sull'involucro
Posiziona la ventola sull'involucro

Basta far scorrere la ventola all'interno del Frame_03_B (con il cavo nell'angolo in basso a destra), la parte inferiore dovrebbe adattarsi alle piccole pareti curve che tengono in posizione la ventola.

Posizionare Frame_03_T con le piccole pareti curve rivolte verso il basso sopra Frame_03_B (con la ventola già in posizione). Fare attenzione a posizionare il coperchio più largo di Frame_03_T rivolto verso la faccia più ampia (posteriore) di Frame_03_B. I telai dovrebbero scattare e i coperchi dovrebbero tenerli in posizione.

Passaggio 5: unire l'involucro della scheda con l'involucro di alimentazione

Unisciti all'involucro della scheda con l'involucro di alimentazione
Unisciti all'involucro della scheda con l'involucro di alimentazione
Unisciti all'involucro della scheda con l'involucro di alimentazione
Unisciti all'involucro della scheda con l'involucro di alimentazione

Posiziona Frame_02 sopra Frame_04, questi due sono progettati per agganciarsi insieme. C'è una piccola ammaccatura sulla parte inferiore di Frame_02 che si adatta ai connettori sopra Frame_04. Applicare una forza delicata per collegarli.

Passaggio 6: installare l'unità di raffreddamento

Installare l'unità di raffreddamento
Installare l'unità di raffreddamento

Frame_03 (B&T) sono progettati per incastrarsi con Frame_02, posizionare la ventola di fronte alle schede (il flusso d'aria deve andare verso l'interno Frame_02). Ci sono piccole ammaccature sulle colonne di Frame_02 che dovrebbero corrispondere ai segni in Frame_03_B. Applicare una leggera pressione sulle facce laterali della struttura fino allo scatto dei telai.

Passaggio 7: posizionare le schede sui vassoi delle schede

Posiziona le tavole sui vassoi di cartone
Posiziona le tavole sui vassoi di cartone

Frame_01 ha 4 pin che corrispondono ai fori nella scheda Parallella. La scheda dovrebbe adattarsi facilmente al vassoio. A seconda della calibrazione della stampante 3D, potrebbero essere troppo grandi o troppo piccoli, puoi usare un po' di colla siliconica liquida per tenerli in posizione o premerli un po' con delle pinze per ridurne il diametro.

>> Nota importante: ricordarsi di posizionare i dissipatori di calore sulla scheda <<<

Passaggio 8: inserire i vassoi della scheda nell'involucro della scheda

Far scorrere i vassoi del cartone nell'involucro del cartone
Far scorrere i vassoi del cartone nell'involucro del cartone

Frame_01 fornisce slot che si adattano alle guide Frame_02 per ogni livello. Nota che c'è solo un lato aperto per ricevere il vassoio del cartone. C'è anche un piccolo rigonfiamento che aiuta a mantenere Frame_01 in posizione (onestamente, questi potrebbero utilizzare alcuni miglioramenti in una versione futura).

Fai scorrere tutti e 4 i vassoi delle tavole con le tavole già in posizione, 1 per ogni livello.

Passaggio 9: posizionare l'alimentatore all'interno dell'involucro dell'alimentatore

Posizionare l'alimentatore all'interno dell'involucro dell'alimentatore
Posizionare l'alimentatore all'interno dell'involucro dell'alimentatore

Posiziona l'alimentatore USB all'interno del Frame_04 con le porte USB rivolte verso l'esterno. C'è una piccola apertura sull'altro lato per il cavo di alimentazione che alimenta l'hub.

Passaggio 10: collegare la ventola all'alimentatore di raffreddamento

La ventola dovrebbe ora essere collegata all'alimentatore da 12 V che fornisce energia all'unità di raffreddamento.

>> Nota importante: mantenere il sistema di raffreddamento sempre funzionante mentre le schede sono collegate all'alimentazione <<<

Passaggio 11: configurare il sistema operativo

1. Scarica il sistema operativo consigliato (Parabuntu) qui

Esistono due revisioni dei chip (z7010 [P1600/P1601] e z7020 [P1602/A101040] che richiedono file diversi.

Per entrambe le revisioni, esiste una versione headless (nessuna interfaccia utente grafica) e una versione che fornisce supporto HDMI e un'interfaccia utente grafica)

Se vuoi usare l'uscita HDMI ricordati di procurarti un cavo mini-HDMI.

Puoi interfacciarti con la versione headless attraverso la rete.

Maggiori informazioni e spiegazioni dettagliate possono essere trovate qui nel sito ufficiale.

Ecco i passaggi per installare il sistema operativo utilizzando una distribuzione basata su Linux. Puoi utilizzare i comandi nel terminale (senza il simbolo $) per i passaggi successivi o controllare altre procedure nel sito web.

2. Installa

- Inserisci la scheda micro-SD nel tuo normale computer - Decomprimi l'immagine di Ubuntu. Cambia [releasename] per il nome dell'immagine.

$ gunzip -d [nome rilascio].img.gz

3. Verifica il percorso del dispositivo della tua scheda SD

Il percorso esatto del dispositivo sulla scheda SD dipende dalla distribuzione Linux e dalla configurazione del computer. Usando il comando qui sotto per ottenere il percorso giusto. Se dall'output non è chiaro quale sia il percorso giusto, prova il comando con e senza la scheda SD inserita. In Ubuntu, il percorso restituito potrebbe essere qualcosa come "/dev/mmcblk0p1".

$ df -h

4. Smontare la scheda SD Sarà necessario smontare tutte le partizioni sulle schede SD prima di masterizzare la scheda. Il [sd-partition-path] deriva dal comando 'df' nel passaggio 3.

$ umount [percorso-partizione-sd]

5. Masterizza l'immagine del disco Ubuntu sulla scheda micro-SD

Masterizza l'immagine sulla scheda SD utilizzando l'utilità "dd" mostrata nell'esempio di comando seguente. Fai attenzione e assicurati di specificare il percorso correttamente poiché questo comando è irreversibile e sovrascriverà qualsiasi cosa nel percorso! Un comando di esempio in Ubuntu sarebbe: 'sudo dd bs=4M if=my_release.img of=/dev/mmcblk0'. Si prega di pazientare, l'operazione potrebbe richiedere del tempo (molti minuti) a seconda del computer e della scheda SD utilizzati.

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

6. Assicurati che tutte le scritture sulla scheda SD siano state completate

$ sincronizzazione

7. Inserire la scheda SD nello slot per schede SD nella scheda

Passaggio 12: collegare la scheda all'alimentatore

Utilizzare il cavo da miniUSB a USB-A per collegare una delle schede all'hub USB. È possibile etichettare le porte e i cavi o definire un ordine per le connessioni nel caso in cui sia necessario scollegare una scheda in un secondo momento.

Passaggio 13: configurazione del router

Configurazione del router
Configurazione del router

Se stai eseguendo l'installazione del sistema operativo headless mentre sei su una rete di grandi dimensioni, dovrai utilizzare un router e collegarlo a Internet, alle schede Parallella e al tuo personal computer.

Se non sei in grado di connetterti al router, puoi anche connettere la scheda direttamente al tuo computer usando il cavo Ethernet, questa procedura può essere un po' più complicata e non sarebbe trattata in questo tutorial.

Una volta che tutto è connesso, apri l'interfaccia del tuo router per scoprire quale indirizzo IP viene assegnato a Parallella per impostazione predefinita. Cerca una scheda che dice Rete. Quindi trova una sezione denominata Elenco client DHCP. Lì dovresti vedere la tua scheda Parallella e il suo indirizzo IP.

Con questo indirizzo IP, puoi SSH in Parallella e impostare un indirizzo IP statico.

Passaggio 14: connessione alla scheda Parallella con SSH

Nota: per questa sezione, [default_IP] è l'indirizzo IP dinamico che hai trovato nell'elenco dei client DHCP.

Verifica connessione alla scheda

$ping [IP_predefinito]

SSH nella scheda per la prima volta (la password predefinita è parallella)

$ ssh parallella@[IP_predefinito]

Passaggio 15: configurazione della rete

- Cambia nome host: modifica /etc/hostname

Qui puoi assegnare qualsiasi nome desideri, ti consigliamo di utilizzare NOPA##

Dove ## identifica il numero della scheda (es. 01, 02, …)

- Imposta gli indirizzi IP delle altre schede: modifica /etc/hosts

Imposta indirizzo IP statico: aggiungi il testo sottostante per /etc/network/interfaces.d/eth0

#L'interfaccia di rete primariaauto eth0

iface eth0 inet statico

indirizzo 192.168.10.101 #IP dovrebbe essere all'interno dell'intervallo del router

maschera di rete 255.255.255.0

gateway 192.168.10.1 #Questo dovrebbe essere l'indirizzo del router

server dei nomi 8.8.8.8

server dei nomi 8.8.4.4

Una volta assegnato l'IP alla scheda è possibile riavviare la connessione con il comando

$ ifdown eth0; ifup eth0

o riavviare la scheda

Passaggio 16: configurazione dell'accesso Keygen e senza password sulle schede

Imposta una coppia di chiavi pubbliche private su ogni nodo (incluso il nodo principale). Crea una cartella temporanea, genera una nuova chiave e rendila una chiave autorizzata e aggiungi tutti i NOPA agli host noti come mostrato di seguito.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

#Premi due volte invio per impostare e confermare una password vuota

cp id_rsa.pub chiavi_autorizzate

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

ssh-keyscan NOPA$J >> host_noti; fatto

Passaggio 17: installazione di Sshfs

- L'utilizzo di sshfs consente la condivisione di file tra le schede del cluster. Esegui il seguente comando:

$ sudo apt-get install -y sshfs

- Verifica/creazione di gruppi di fusibili

Verificare se esiste il gruppo fusibili:

$ cat /etc/group | grep 'fusibile'

Se il gruppo esiste, esegui il seguente comando

$ bash sudo usermod -a -G fuse parallella

- Se il gruppo non esiste, crealo e aggiungici l'utente

$ sudo groupadd fuse

$ sudo usermod -a -G fuse parallella

- Decommenta la riga user_allow_other nel file fuse.config

$ sudo vim /etc/fuse.conf

Passaggio 18: Configura cartella NFS

- Modifica il file /etc/fstab

$ sudo vim /etc/fstab

- Sostituisci il contenuto con il testo mostrato di seguito

# [file system] [punto di montaggio] [tipo] [opzioni]

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

Passaggio 19: collegare la scheda allo switch

Posiziona lo switch sotto il cluster o da qualche parte nelle vicinanze, usa i cavi Ethernet per collegare la scheda che hai già configurato allo switch. Puoi anche connettere lo switch e il tuo computer al router per ottenere l'accesso al cluster.

Dovresti essere in grado di eseguire il ping e ssh nella scheda che ora è collegata allo switch con un IP statico.

Puoi anche aggiungere l'IP e il nome host al tuo file /etc/hosts. Sarai in grado di utilizzare il nome host per connetterti invece di digitare l'intero indirizzo IP.

Passaggio 20: ripeti i passaggi da 11 a 19 per ogni tavola

Seguire la procedura per configurare il sistema operativo e la rete per ciascuna scheda.

>> Nota importante: usa hostame e IP diversi per ogni board! Dovrebbero essere unici attraverso la rete! <<<

Passaggio 21: collega le periferiche

Connetti le periferiche!
Connetti le periferiche!

Assicurati che la ventola funzioni:

Assicurati che la ventola sia alimentata e che il flusso d'aria vada verso l'interno nell'involucro della scheda. La connessione dovrebbe essere stabile e indipendente da altri elementi. Ricorda che le schede possono surriscaldarsi se non vengono raffreddate correttamente.

Assicurati che le schede siano collegate allo switch:

A questo punto dovresti aver configurato ogni scheda in modo indipendente. Le schede dovrebbero essere collegate anche allo switch. Il manuale dello switch dovrebbe fornire informazioni che possono essere utilizzate per verificare che il processo di avvio sia stato completato correttamente, potrebbero essere presenti alcuni LED che indicano lo stato.

Collegare le schede all'alimentatore:

Utilizzare il cavo da micro-USB a USB-A per collegare ciascuna delle schede all'hub USB. È possibile etichettare le porte o definire un ordine nel caso in cui sia necessario disconnettere una singola scheda.

Passaggio 22: applica il potere

1. La ventola dovrebbe funzionare.

2. Le schede devono essere collegate allo switch Ethernet.

3. Verificare che le schede siano collegate all'hub USB.

4. Fornire alimentazione all'hub USB.

5. Abilita DEMAC!

6. Profitto!

Passaggio 23: risorse software

MPI (Interfaccia per il passaggio dei messaggi)

MPI è un protocollo di comunicazione per la programmazione di computer paralleli. Sono supportate sia la comunicazione punto-punto che quella collettiva.

www.open-mpi.org/

OpenMP (multiprocesso aperto)

L'interfaccia di programmazione dell'applicazione (API) OpenMP (Open Multi-Processing) supporta la programmazione multiprocessore a memoria condivisa multipiattaforma in C, C++ e Fortran, su molte piattaforme. Consiste in un insieme di direttive del compilatore, routine di libreria e variabili di ambiente che influenzano il comportamento in fase di esecuzione.

www.openmp.org/

Software Parallella

Gli sviluppatori forniscono uno stack software open source, incluso un SDK per interfacciarsi con l'acceleratore.

www.parallella.org/software/

Puoi anche trovare manuali e informazioni più dettagliate.

Hanno anche repository GitHub:

github.com/parallella

Sentiti libero di scaricare ed eseguire alcuni degli esempi, uno dei miei preferiti è Game of Life basato sul famoso Game of Life di Conway.

Dichiarazione di non responsabilità: le definizioni potrebbero essere copiate da wikipedia

Consigliato: