Come Costruire un Supercomputer

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 Compute 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.

Passaggi

  1. 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 (più informazioni su questo aspetto in seguito).
    • 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/
  2. 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.
  3. Installa i server sul rack. Inizia dal basso, così da non sbilanciare verso l'alto il peso del rack. Ti dovrai far aiutare da un amico in questa fase - i server possono essere molto pesanti e inserirli sui binari che li fisseranno al rack è difficile.
  4. Installa lo switch Ethernet sopra il telaio del server. Configura lo switch: consenti dimensioni dei frame di 9000 bytes, imposta l'indirizzo IP all'indirizzo statico che hai deciso nel passaggio 1, e disattiva i protocolli di routing non necessari come SMTP Snooping.
  5. Installa la PDU (Power Distribution Unit, Unità di Distribuzione dell'Energia). Secondo la corrente necessaria ai nodi al massimo carico, potrebbe essere necessaria una PDU a 220 volt per la computazione ad alte prestazioni.
  6. Dopo aver installato tutto, puoi iniziare il processo di configurazione. Linux è il sistema operativo più usato per i cluster HPC - si tratta non solo dell'ambiente ideale per la computazione scientifica, ma installarlo su centinaia o persino migliaia di nodi è completamente gratuito. Immagina quanto costerebbe installare Windows su tutti questi nodi?
    • Inizia installando l'ultima versione del BIOS e del firmware della scheda madre, che dovrebbe essere la stessa per tutti i nodi.
    • Installa la tua distribuzione di Linux preferita su ogni nodo, con un'interfaccia grafica per il nodo principale. Le scelte più popolari includono CentOS, OpenSuse, Scientific Linux, RedHat e SLES.
    • 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.
  7. 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.
  8. 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.
  9. 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.

Consigli

  • IPMI può rendere l'amministrazione di un grande cluster molto facile offrendo KVM-over-IP, reset da remoto e altro.
  • Per reti a velocità davvero molto alte, prova le interfacce di rete InfiniBand. Preparati a spendere molto però.
  • Usa Ganglia per monitorare il carico computazionale sui nodi.

Avvertenze

  • Assicurati che la tua infrastruttura possa gestire il carico.
Information
Users of Guests are not allowed to comment this publication.