Hai bisogno di una macchina che possa effettuare centinaia di milioni di milioni di calcoli a virgola mobile al secondo?
Oppure hai bisogno di una storia da raccontare agli amici di come il supercomputer che hai in cantina ha fatto saltare la corrente in tutto il quartiere? Costruire il tuo High Performance Computer Cluster, meglio conosciuto come supercomputer, è una sfida che tutti gli smanettoni esperti con un fine settimana di tempo libero e del denaro da spendere possono affrontare. Parlando in termini tecnici, un supercomputer moderno multiprocessore è una rete di computer che lavorano in parallelo per risolvere un problema. Questo articolo descriverà brevemente ogni passo del processo, concentrandosi su hardware e software.
Per prima cosa determina i componenti hardware e le risorse che ti servono.
Avrai bisogno di almeno un nodo principale, almeno dodici nodi computazionali identici, uno switch Ethernet, un’unità di distribuzione dell’energia e un rack. Determina il dispendio energetico, il raffreddamento e lo spazio necessari. Decidi anche che indirizzo IP vuoi assegnare alla tua rete privata, che nomi dare ai nodi, che pacchetti software installare e quale tecnologia adottare per consentire la computazione parallela. Anche se l’hardware è costoso, tutti i software riportati in questa guida sono gratuiti, e la maggior parte di essi sono open source.
Se vuoi calcolare la velocità teorica del tuo supercomputer, usa questo strumento: http://hpl-calculator.sourceforge.net/
Costruisci i nodi computazionali. Dovrai assemblare i nodi o acquistare dei server precostruiti.
Scegli un telaio per server che sfrutti al massimo spazio, raffreddamento ed energia.
Oppure puoi utilizzare una decina circa di server usati e vecchi – in questo modo potrai risparmiare molto. Tutti i processori, gli adattatori di rete e le schede madri dovrebbero essere identici perché il sistema funzioni bene. Naturalmente, non dimenticare RAM e spazio di archiviazione per ogni nodo e almeno un’unità ottica per il nodo principale.
Prova a usare la Rocks Cluster Distribution. Oltre a installare tutti gli strumenti necessari al funzionamento di un cluster di computazione, Rocks utilizza un ottimo metodo per “distribuire” molte istanze di se stesso ai nodi molto rapidamente usando PXE boot e la procedura “Kick Start” di Red Hat.
Installa l’interfaccia di passaggio dei messaggi, il gestore delle risorse e le altre librerie necessarie. Se non hai installato Rocks nel passaggio precedente, dovrai configurare manualmente i software necessari per abilitare il meccanismo di computazione parallela.
Per prima cosa ti servirà un sistema di gestione bash, come Torque Resource Manager, che ti permette di suddividere e distribuire i compiti a più processori.
Accoppia Torque con Maui Cluster Scheduler per completare la configurazione.
Come prossimo passo dovrai installare l’interfaccia di passaggio dei messaggi, necessaria per condividere i dati tra i singoli processi dei diversi nodi computazionali. OpenMP è la scelta migliore.
Non dimenticare le librerie matematiche di multi-threading e i compiler per creare i programmi di computazione parallela.
Installando Rocks questo processo sarebbe molto più semplice.
Crea una rete con i nodi computazionali. Il nodo principale invia le attività ai nodi computazionali, che dovranno rispondere con i risultati e mandare messaggi tra di loro. Più queste operazioni saranno veloci, più potente sarà il supercomputer. Usa una rete ethernet privata per connettere tutti i nodi del cluster.
Il nodo principale può anche agire come NFS, PXE, DHCP, TFTP e server NTP sulla rete Ethernet.
Dovrai separare questa rete dalla rete pubblica, per assicurarti che i pacchetti inviati in broadcast non interferiscano con le altre reti nella tua LAN.
Prova il cluster. L’ultima cosa da fare prima di utilizzare tutta la potenza del tuo supercomputer è testarne le prestazioni. Il benchmark HPL (High Performance Lynpack) è una scelta comune per misurare la velocità computazionale del cluster. Dovrai compilarlo dal file sorgente con tutte le ottimizzazioni offerte dal tuo computer per la tua architettura.
Ad esempio, se stai usando CPU AMD, compila con Open64 con livello di ottimizzazione -0fast.
Confronta i tuoi risultati su quelli su TOP500.org per paragonare il tuo cluster ai 500 supercomputer più veloci del mondo.