Servers in a data center

4 cose che i manager dei data center possono imparare dai computer superveloci

Se doveste chiedere una persona qualunque cosa ne pensa dei supercomputer, con tutta probabilità la risposta nella maggior parte dei casi sarebbe un richiamo a film famosi e, normalmente, con una caratterizzazione negativa. Da HAL 9000 (2001: Odissea nello spazio), a VIKI di iRobot, passando per la Skynet del film “Terminator”, la cultura popolare spesso associa i supercomputer a sistemi dotati di intelligenza e coscienza, la cui evoluzione ne ha fatto dei nemici per l'umanità.

Ma provate a esporre questa vostra teoria ai ricercatori del Lawrence Livermore National Laboratory o al personale del National Weather Service. Con tutta probabilità, vi rideranno in faccia, per poi cacciarvi via dall'edificio. La realtà è che i supercomputer oggi sono ben lontani dal raggiungere uno stato di consapevolezza e anche il concetto di IA allo stato attuale non è che una barra di ricerca dal nome pretenzioso che non fa altro che analizzare enormi dataset.

Attualmente, i supercomputer vengono utilizzati per numerose applicazioni che svolgono funzioni critiche per il progresso scientifico. Dal settore dell'esplorazione petrolifera e del gas alle previsioni meteorologiche, fino ai mercati finanziari e allo sviluppo di nuove tecnologie. I supercomputer sono le Lamborghini o le Bugatti del mondo informatico. E Kingston pone grande attenzione verso gli sviluppi che stanno spingendo in avanti i confini delle scienze informatiche e di elaborazione. Dall’utilizzo e l’ottimizzazione delle DRAM, fino allo sviluppo di firmware avanzati per la gestione degli array di storage e all’enfasi sulla coerenza di trasferimento e delle velocità di latenza piuttosto che dei valori di picco, le nostre tecnologie sono profondamente influenzate dalle funzioni avanzate del supercomputing.

In maniera analoga, i responsabili dei data center su cloud e locali possono imparare tante cose dal supercomputing, sotto il profilo del design e della gestione delle infrastrutture, nonché su come selezionare i migliori componenti più adatti per supportare le tecnologie e le esigenze future senza richiedere aggiornamenti di ampia portata.

Server con linee fluorescenti, a rappresentare una rete
1. I supercomputer sono progettati appositamente per garantire la massima coerenza e uniformità di funzionamento

A differenza delle piattaforme di cloud computing, come Amazon Web Services o Microsoft Azure, realizzate per poter gestire numerose applicazioni di tipo differente e in grado di utilizzare risorse e infrastrutture condivise, la maggior parte dei supercomputer sono progettati appositamente per soddisfare esigenze specifiche. Il più recente aggiornamento della lista TOP500, relativa ai supercomputer più veloci al mondo (nota e desecretato), riporta non solo le località e le velocità di installazione, ma anche i settori di applicazione primari.

Undici dei dodici principali supercomputer sono dedicati alla ricerca nel settore energetico, in quello nucleare e per applicazioni destinate al settore della difesa. L’unica eccezione è Frontera, un nuovo sistema di elaborazione petascale finanziato dall’NSF e installato presso il Texas Advanced Computing Center dell’University of Texas, che fornisce risorse accademiche per i partner del settore della ricerca in ambito scientifico e ingegneristico. Tra i successivi 20 supercomputer presenti nella lista TOP500, quasi tutti sono dedicati a impieghi nel settore della difesa e dell’intelligence. I sistemi che occupano la fascia compresa tra la trentesima e la cinquantesima posizione nella lista sono perlopiù dedicate alle previsioni meteorologiche. Gli ultimi 50 sistemi che occupano le prime 100 posizioni della lista sono utilizzati per svariate applicazioni di elaborazione aziendale (NVIDIA, Facebook, ecc.), previsioni meteorologiche con un livello di complessità intermedio, programmi spaziali, esplorazione petrolifera e del settore del gas, e impieghi specifici in ambito accademico e governativo.

Queste macchine non rappresentano un gruppo uniforme. Si tratta di macchine personalizzate sviluppate in collaborazione con produttori come Intel, Cray, HP, Toshiba e IBM, per eseguire specifiche tipologie di calcoli su dataset molto specifici, sia in tempo reale che per applicazioni di elaborazione asincrona.

Questi sistemi sono caratterizzati da soglie di latenza accettabili:

  • Risorse di elaborazione predefinite in grado di utilizzare milioni di core di elaborazione
  • Velocità di clock comprese tra 18.000 e 200.000 teraflop.

Le capacità di elaborazione di questi dispositivi sono misurate in exabyte, una misura notevolmente superiore ai petabyte che caratterizzano i moderni data warehouse.

I sistemi come Frontera non solo garantiscono le prestazioni necessarie a garantire i picchi di elaborazione con carichi estremi, ma sono anche in grado di elaborare enormi quantità di dati operando costantemente su livelli prestazionali elevatissimi al fine di garantire risultati più rapidi. I picchi di elaborazione in realtà possono creare errori nei risultati. Pertanto, in questi casi, uniformità e costanza di funzionamento costituiscono elementi prioritari.

I manager dei moderni data center devono chiedersi quali sono gli ambiti di applicazione dei sistemi, al fine di architettare, gestire le risorse e realizzare misure di sicurezza prevedibili. La gestione di un data center che esegue svariati desktop virtuali è molto differente rispetto a un call center di un centro di emergenza, come 113 o 118, oppure a quelli di un sistema di controllo del traffico aereo. Ciascuna di tali organizzazioni ha le sue esigenze, richieste, accordi sul livello del servizio e budget, che richiedono la progettazione di sistemi personalizzati.

In maniera analoga, è necessario tenere in considerazione in che modo è possibile realizzare soluzioni caratterizzate da prestazioni coerenti e uniformi senza alcuna necessità di ricorrere a soluzioni altamente personalizzate. Aziende come Amazon, Google e Microsoft, dispongono dei budget necessari a progettare soluzioni di storage e infrastrutture di elaborazione dedicate. Ma la maggior parte dei provider di servizi opera sulla base di un bacino di scelte più limitate, normalmente sul mercato dell’hardware commerciale di larga diffusione.

Pertanto, un numero maggiore di manager dei data center necessita di stabilire dei criteri più rigidi per i benchmark prestazionali che consentono di soddisfare i requisiti QoS, assicurandosi di enfatizzare maggiormente non solo velocità di elaborazione e latenza, ma anche la coerenza delle prestazioni.

Server con linee fluorescenti, a rappresentare una rete
2. Il concetto di “tempo reale” non è uguale per tutti

Nel caso delle applicazioni di supercomputing, nella maggior parte dei casi, i dati in tempo reale hanno numerose implicazioni. Dalla necessità di bloccare una reazione nucleare, fino ai dati telemetrici per il lancio di missili, la latenza di elaborazione può sortire effetti catastrofici; e i volumi di dati da elaborare sono enormi. Questi flussi di dati non provengono da una singola sorgente, ma spesso sono generati da una rete di nodi di reporting.

Ma tali dati hanno vita breve. Quando si opera con feed in tempo reale, la maggior parte dei dati non viene ritenuta in eterno. I dati vengono scritti e quindi sovrascritti, con una durata limitata in termini di scritture sequenziali e sovrascritture. I dati in tempo reale cambiano costantemente, e solo pochissime applicazioni necessitano di disporre di ogni singolo bit archiviato in maniera permanente. I dati vengono elaborati in batch, e calcolati, per generare un risultato (indipendentemente dal fatto che si tratti di medie, modelli statistici o algoritmi), e il risultato è ciò che viene preservato.

Si prenda il supercomputer del NOAA (National Oceanographic and Atmospheric Administration), per esempio. I parametri meteorologici sono in costante cambiamento, indipendentemente dal fatto che si tratti di precipitazioni, temperatura dell'aria o al suolo, pressione barometrica, ora del giorno, effetti solari, venti e anche il modo in cui i flussi d'aria attraversano la superficie terrestre. Tali parametri cambiano ogni secondo e devono essere registrati con un flusso di informazioni in tempo reale. Ma il National Weather Service (NWS) del NOAA non necessita dei dati grezzi per sempre. Ciò che è necessario sono i modelli previsionali. Con la graduale creazione del modello del sistema di previsioni globale (GFS), i nuovi dati vengono inviati al sistema, generano previsioni più accurate e aggiornate.

Inoltre, i meteorologi locali che condividono e ricevono dati dall’NWS non necessitano di un accesso all’intero dataset meteorologico globale. Le loro esigenze si limitano ai modelli per le aree locali. Ciò consente loro di integrare i dati dell’NWS con quelli delle stazioni meteorologiche locali, fornendo utili informazioni sul microclima e accelerando la creazione di previsioni locali più accurate, attraverso la creazione di batch, elaborati per creare un risultato, in termini di valori medi, medie, modelli statistici o algoritmi, preservando solo il risultato.

Lo stesso vale anche per i modelli utilizzati per la borsa e il mercato azionario o per i modelli finanziari, basati su medie variabili, ciascuna delle quali con indicatori specifici e trigger integrati e basati su parametri specifici calibrati sulla base delle soglie comportamentali di tolleranza dei mercati di riferimento. La progettazione di un sistema che utilizza dati in “tempo reale”, non richiede l’archiviazione di tutti i dati immessi nel sistema, ma dovrebbe utilizzare memorie di accesso casuale non volatili (NVRAM) e memorie dinamiche ad accesso casuale (DRAM), per l’elaborazione in tempo reale per la cache e l’elaborazione in dei dati in transito in tempo reale, per poi inviare il risultato così elaborato allo storage.

Immagine di un chip di memoria Flash con percorsi di circuito fluorescenti
3. Soglie di latenza, NAND Flash e ottimizzazione della DRAM

La maggior parte delle soglie di latenza vengono impostate a causa delle dei requisiti delle applicazioni. Nel settore delle transazioni di borsa, pochi secondi significano milioni, se non miliardi di dollari. Nel caso delle previsioni meteorologiche e del monitoraggio degli uragani, tale intervallo di tempo può rappresentare il fattore chiave nelle decisioni di evacuare New Orleans o Houston.

I supercomputer operano sulla base di un livello del servizio caratterizzato da limitazioni imposte a priori , indipendentemente dal fatto che si tratti di latenze, risorse informatiche, storage o larghezza di banda. La maggior parte dei sistemi utilizza metodi di elaborazione fail-aware, in cui il sistema può reindirizzare i flussi di dati in modo tale da garantire sempre condizioni di latenza ottimali (calcolate sulla base del 𝛱+Δ di clock massimo), passando a modelli di elaborazione asincroni, oppure prioritizzando le risorse informatiche al fine di garantire una potenza di elaborazione o una larghezza di banda sufficienti per l’esecuzione delle operazioni richieste.

Indipendentemente dal fatto che si tratti di workstation ad alte prestazioni, server iron, o di applicazioni HPC per carichi di lavoro scientifici, i computer di grandi dimensioni e i big data richiedono l’uso di grandi quantità di DRAM. I supercomputer come il Tianhe-2 utilizzano enormi carichi di lavoro combinati con schede di accelerazione dedicate. Il modo in cui il supercomputing ottimizza l’hardware e i framework dei controller è unico e basato sul design dell'applicazione. Spesso, le attività di elaborazione in cui i dischi creano enormi colli di bottiglia in contrasto con i requisiti RAM, rendono le DRAM poco pratiche, ma sono sufficientemente compatti da poter essere ospitati in una memoria NAND Flash. I cluster FPGA sono ulteriormente ottimizzati per ciascun carico di lavoro specifico, al fine garantire che i set dati di grandi dimensioni siano gestiti con prestazioni ottimali quando il reperimento dei dati è affidato a strumenti tradizionali.

I team che collaborano la University of Utah, il Lawrence Berkeley Lab, l’University of Southern California, e l’Argonne National Lab, hanno dimostrato nuovi modelli di ottimizzazione automatica delle prestazioni (auto-tuning), come metodo efficace per garantire una trasferibilità delle prestazioni tra architetture differenti. Anziché fare affidamento su un compilatore, che consente di garantire prestazioni ottimali su architetture multicore più recenti, i kernel e le applicazioni dotate di funzioni di ottimizzazione automatica sono in grado di auto-ottimizzarsi in base ai requisiti delle CPU, delle reti e dei modelli di programmazione dei sistemi di destinazione.

Immagine di un operatore IT con elmetto di protezione posto davanti all’immagine di un display heads-up
4. Livelli multipli di sicurezza contro gli errori

La distribuzione energetica all’interno dei data center HPC costituisce un fattore sempre più complesso; specialmente quando le infrastrutture sono utilizzate come risorse condivise. Sia nel caso delle infrastrutture dedicate, che in quelle strutturate some servizio, i data center necessitano di garantire un funzionamento continuo, riducendo i rischi di danneggiamento per i fragili componenti hardware in caso di interruzioni energetiche, picchi di corrente o variazioni dei picchi di domanda.

Gli architetti utilizzano un misto di trasformatori a distribuzione di perdita:

  • Distribuzione di potenza CC e unità di backup UPS,
  • Trigenerazione (creazione di energia elettrica mediante riscaldamento per la conservazione sui dispositivi di backup)
  • Monitoraggio attivo
“Salvataggi constanti e frequenti” rappresenta il motto fondamentale di qualunque applicazione. E la stessa regola vale per i data center, in cui tale attività assume la definizione tecnica di “backup”.

Attualmente, la maggior parte dei data center funziona con una struttura RAID di alto livello, al fine di garantire la continuità di funzionamento e la corretta esecuzione delle attività di scrittura quasi simultanea su array di storage differenti. Inoltre, le infrastrutture HPC sono dotate di grandi quantità di NVRAM, per la cache dei dati in elaborazione, che includono flussi di dati in tempo reale che non passano attraverso gli array di storage, oppure flussi di informazioni elaborate parallelamente, creando pattern di scratch simili a quelli dei dischi, al fine di liberare ulteriori risorse di elaborazione. Il sistema Frontera, già citato in precedenza, utilizza 50 PB di capacità di scratch totale. Gli utenti che necessitano di larghezza di banda o IOPS estremamente elevati, saranno in grado di richiedere l’allocazione di un file system all-NVMe (non-Volatile Memory Express), con una capacità approssimativa pari a 3 PB e una larghezza di banda pari a ~1,2 TB/s.

Questa capacità di backup RAID costante dedicata allo storage, unitamente alla costanza e uniformità dei buffer NVMe, dipendono interamente dalle soglie I/O dei controller dei dispositivi e dalla disponibilità totale delle larghezze di banda allocate per il backup/storage remoto.

La maggior parte delle infrastrutture HPC sta anche eliminando il rischio di guasti hardware causati dai tradizionali hard drive a dischi rotanti, passando a soluzioni interamente basate su array a stato solido e blocchi di storage flash. Queste soluzioni di storage garantiscono IOPS costanti e offrono latenze prevedibili, i cui parametri rientrano nelle soglie di latenza specifiche delle applicazioni. Numerosi supercomputer utilizzano anche librerie a nastri multiple (con capacità che partono da un esabyte in su), come soluzione di archiviazione dati affidabile per ciascun bit elaborato e archiviato.

Molti si stanno anche assicurando che, in caso di guasti estesi dei sistemi, sia possibile disporre di condensatori (P-Cap) power-fail (PFail), denominati anche “Sistemi delle interruzioni dell'alimentazione” (PLP), installati su SSD e DRAM. P-Caps consente ai drive indipendenti e sottoforma di array, di completare i processi di scrittura in esecuzione, riducendo la quantità di dati che potrebbero andare persi in caso di interruzioni catastrofiche.

Conclusione

È importante sottolineare ancora una volta che la personalizzazione svolge un ruolo determinante nel mondo del supercomputing. Tuttavia, essere consapevoli delle proprie esigenze rappresenta il primo passo durante la realizzazione di un data center, seguito dalla capacità di capire in che modo ottenere il livello di prestazioni costanti desiderato. Indipendentemente dalla dimensione del data center, è importante considerare tali strutture come importanti, o in termini di supercomputer, quando si tratta di relazionarli alla generazione, archiviazione o condivisione dei dati. Attraverso la valutazione di tali fattori, gli architetti possono progettare infrastrutture ad alte prestazioni, predisposte per le esigenze future, anche in presenza di componenti di classe commerciale.

#KingstonIsWithYou

Articoli correlati