Questo documento illustra le opzioni di archiviazione in Google Cloud per i carichi di lavoro di computing ad alte prestazioni (HPC) e spiega quando utilizzare i file system paralleli per i carichi di lavoro HPC. In un file system parallelo, diversi client utilizzano percorsi I/O paralleli per accedere ai dati condivisi archiviati su più nodi di archiviazione in rete.
Le informazioni contenute in questo documento sono destinate ad architetti e amministratori che progettano, eseguono il provisioning e gestiscono lo spazio di archiviazione per i carichi di lavoro HPC ad alta intensità di dati. Il documento presuppone che tu abbia una conoscenza concettuale dei file system di rete (NFS), file system paralleli, POSIX, e dei requisiti di archiviazione delle applicazioni HPC.
Che cos'è l'HPC?
I sistemi HPC risolvono rapidamente problemi di calcolo di grandi dimensioni aggregando più risorse di calcolo. L'HPC promuove la ricerca e l'innovazione in settori come assistenza sanitaria, scienze biologiche, media, intrattenimento, servizi finanziari ed energia. Ricercatori, scienziati e analisti utilizzano sistemi HPC per eseguire esperimenti, simulazioni e valutare prototipi. I carichi di lavoro HPC come l'elaborazione sismica, il sequenziamento genomico, il rendering multimediale e la modellazione climatica generano e accedono a grandi volumi di dati a velocità sempre maggiori e a latenze sempre inferiori. L'archiviazione e la gestione dei dati ad alte prestazioni sono elementi fondamentali dell'infrastruttura HPC.
Opzioni di archiviazione per i carichi di lavoro HPC in Google Cloud
La configurazione e il funzionamento dell'infrastruttura HPC on-premise sono costosi e l'infrastruttura richiede una manutenzione continua. Inoltre, l'infrastruttura on-premise in genere non può essere scalata rapidamente in base alle variazioni della domanda. La pianificazione, l'acquisto, il deployment e il ritiro dell'hardware on-premise richiedono molto tempo, con conseguente aggiunta ritardata delle risorse HPC o sottoutilizzazione della capacità. Nel cloud, puoi eseguire il provisioning in modo efficiente dell'infrastruttura HPC che utilizza la tecnologia più recente e puoi scalare la capacità on demand.
Google Cloud e i nostri partner tecnologici offrono opzioni di archiviazione convenienti, flessibili e scalabili per il deployment dell'infrastruttura HPC nel cloud e per l'aumento dell'infrastruttura HPC on-premise. Scienziati, ricercatori e analisti possono accedere rapidamente a una maggiore capacità HPC per i loro progetti quando ne hanno bisogno.
Per eseguire il deployment di un carico di lavoro HPC in Google Cloud, puoi scegliere tra i seguenti servizi e prodotti di archiviazione, a seconda dei requisiti del carico di lavoro:
Tipo di workload | Prodotti e servizi di archiviazione consigliati |
---|---|
Carichi di lavoro che richiedono l'accesso ai dati a bassa latenza, ma non richiedono I/O estreme per i set di dati condivisi e che hanno una condivisione dei dati limitata tra i client. | Utilizza lo spazio di archiviazione NFS. Scegli una delle seguenti opzioni: |
Carichi di lavoro che generano I/O complessi, interdipendenti e su larga scala, come le applicazioni HPC strettamente collegate che utilizzano la Message-Passing Interface (MPI) per una comunicazione tra processi affidabile. | Utilizza un file system parallelo. Scegli una delle seguenti opzioni:
|
Quando utilizzare i file system paralleli
In un file system parallelo, più client archiviano e accedono ai dati condivisi su più nodi di archiviazione in rete utilizzando percorsi I/O paralleli. I file system paralleli sono ideali per carichi di lavoro HPC strettamente accoppiati, come i carichi di lavoro di analisi dei dati e di intelligenza artificiale (AI) che utilizzano applicazioni SAS. Valuta la possibilità di utilizzare un file system parallelo come Lustre per i carichi di lavoro HPC sensibili alla latenza che presentano uno dei seguenti requisiti:
- Elaborazione dei dati strettamente accoppiata: i carichi di lavoro HPC come la simulazione del clima e l'esplorazione sismica devono elaborare i dati in modo ripetitivo utilizzando molti job interdipendenti che vengono eseguiti contemporaneamente su più server. Queste operazioni in genere utilizzano MPI per scambiare dati a intervalli regolari e impiegano il controllo dei punti di controllo per recuperare rapidamente dagli errori. I file system paralleli consentono ai clienti interdipendenti di archiviare e accedere contemporaneamente a grandi volumi di dati condivisi su una rete a bassa latenza.
- Supporto per l'API I/O POSIX e per la semantica: i file system paralleli come Lustre sono ideali per i carichi di lavoro che richiedono sia l'API POSIX che la semantica. L'API e la semantica di un file system sono funzionalità indipendenti. Ad esempio, NFS supporta l'API POSIX, che consente alle applicazioni di leggere e scrivere dati utilizzando funzioni come
open()
,read()
ewrite()
. Tuttavia, il modo in cui NFS coordina l'accesso ai dati tra diversi client non è uguale alla semantica POSIX per il coordinamento dell'accesso ai dati tra thread diversi su una macchina. Ad esempio, NFS non supporta la coerenza della cache di lettura dopo scrittura POSIX tra i client; si basa sulla coerenza debole in NFSv3 e sulla coerenza quasi aperta in NFSv4. - Petabyte di capacità: i file system paralleli possono essere scalati fino a diversi petabyte di capacità in un unico spazio dei nomi del file system. NetApp Volumes e Filestore Zonal supportano fino a 100 TiB per set di dati. Cloud Storage offre una capacità affidabile e a basso costo che si espande automaticamente, ma potrebbe non soddisfare la semantica della condivisione dei dati e i requisiti di bassa latenza dei carichi di lavoro HPC.
- Bassa latenza e larghezza di banda elevata: per i carichi di lavoro HPC che richiedono accesso ad alta velocità a file di grandi dimensioni o a milioni di file di piccole dimensioni, i file system paralleli possono superare NFS e lo storage oggetti. La latenza offerta dai sistemi di file paralleli (da 0,5 a 10 ms) è notevolmente inferiore rispetto allo spazio di archiviazione oggetti, il che può influire sulle IOPS massime. Inoltre, la larghezza di banda massima supportata dai file system paralleli può essere di diversi ordini di grandezza superiore rispetto ai sistemi basati su NFS. Ad esempio, DDN EXAScaler su Google Cloud ha dimostrato una larghezza di banda in lettura di oltre 10 Tbps, una larghezza di banda in scrittura superiore a 700 GBps e 1, 9 milioni di chiamate
stat()
al file al secondo utilizzando il benchmark IO500. - Scalabilità client estrema: mentre lo spazio di archiviazione NFS può supportare migliaia di client, i sistemi di file paralleli possono essere scalati per supportare l'accesso simultaneo ai dati condivisi da oltre 10.000 client.
Esempi di applicazioni HPC strettamente collegate
Questa sezione descrive esempi di applicazioni HPC strettamente collegate che richiedono lo spazio di archiviazione a bassa latenza e ad alta velocità effettiva fornito dai file system paralleli.
Modellazione molecolare basata sull'AI
La ricerca farmaceutica è un processo costoso e che richiede molti dati. Le moderne organizzazioni di ricerca farmaceutica si basano sull'AI per ridurre il costo della ricerca e dello sviluppo, scalare le operazioni in modo efficiente e accelerare la ricerca scientifica. Ad esempio, i ricercatori utilizzano applicazioni basate sull'IA per simulare le interazioni tra le molecole di un farmaco e per prevedere l'effetto delle modifiche ai composti del farmaco. Queste applicazioni vengono eseguite su potenti processori GPU parallelizzati che caricano, organizzano e analizzano una quantità estrema di dati per completare rapidamente le simulazioni. I file system paralleli forniscono le IOPS e il throughput dello spazio di archiviazione necessari per massimizzare le prestazioni delle applicazioni di AI.
Analisi del rischio di credito mediante applicazioni SAS
Gli istituti di servizi finanziari, come le banche di credito fondiario e le banche di investimento, devono analizzare e monitorare costantemente l'affidabilità creditizia dei propri clienti e dei loro portafogli di investimento. Ad esempio, i grandi istituti di credito che erogano mutui raccolgono ogni giorno dati correlati al rischio su migliaia di potenziali clienti. I team di analisti del credito utilizzano applicazioni di analisi per esaminare in collaborazione diverse parti dei dati di ciascun cliente, come reddito, storia creditizia e schemi di spesa. Le informazioni di questa analisi aiutano gli analisti del credito a fornire consigli accurati e tempestivi sui prestiti.
Per accelerare e scalare le analisi per set di dati di grandi dimensioni, gli istituti finanziari utilizzano piattaforme di calcolo distribuito come SAS Grid Manager. File system paralleli come DDN EXAScaler su Google Cloud supportano i requisiti di archiviazione ad alta throughput e bassa latenza delle applicazioni SAS multi-thread.
Previsioni meteo
Per prevedere le condizioni meteorologiche in una determinata regione geografica, i meteorologi dividono la regione in diverse celle e dispongono dispositivi di monitoraggio come radar a terra e palloni meteorologici in ogni cella. Questi dispositivi osservano e misurano le condizioni atmosferiche a intervalli regolari. I dispositivi trasmettono i dati in streaming continuamente a un'applicazione di previsione meteo in esecuzione in un cluster HPC.
L'applicazione di previsione meteo elabora i dati in streaming utilizzando modelli matematici basati su relazioni fisiche note tra i parametri meteorologici misurati. Un job separato elabora i dati di ogni cella della regione. Quando l'applicazione riceve nuove misurazioni, ogni job esegue un'iterazione tra i dati più recenti per la cella assegnata e scambia l'output con i job per le altre celle della regione. Per prevedere in modo affidabile le condizioni meteorologiche, l'applicazione deve archiviare e condividere terabyte di dati a cui accedono e generano migliaia di lavori in esecuzione in parallelo.
CFD per la progettazione di aeromobili
La fluidodinamica computazionale (CFD) prevede l'uso di modelli matematici, legge fisiche e logica di calcolo per simulare il comportamento di un gas o un liquido attorno a un oggetto in movimento. Quando gli ingegneri aeronautici progettano la fusoliera di un aereo, uno dei fattori che prendono in considerazione è l'aerodinamica. La CFD consente ai progettisti di simulare rapidamente l'effetto delle modifiche al design sull'aerodinamica prima di investire tempo e denaro nella costruzione di prototipi costosi. Dopo analizzando i risultati di ogni esecuzione della simulazione, i progettisti ottimizzano gli attributi come il volume e la forma dei singoli componenti della fusoliera dell'aereo e simulano nuovamente l'aerodinamica. Il CFD consente ai progettisti di aeromobili di simulare in modo collaborativo e rapido l'effetto di centinaia di queste modifiche di progettazione.
Per completare le simulazioni di progettazione in modo efficiente, le applicazioni CFD richiedono un accesso ai dati condivisi in meno di un millisecondo e la possibilità di archiviare grandi volumi di dati a velocità fino a 100 Gbps.
Panoramica di Lustre e EXAScaler Cloud
Lustre è un file system parallelo open source che fornisce archiviazione ad alta velocità effettiva e bassa latenza per i carichi di lavoro HPC accoppiati in modo stretto. Oltre ai punti di montaggio POSIX standard in Linux, Lustre supporta librerie di dati e I/O come NetCDF, HDF5 e MPI-IO, consentendo l'I/O parallela per un'ampia gamma di domini di applicazione. Lustre è alla base di molti dei piú grandi implementazioni HPC a livello mondiale. Un file system Lustre ha un'architettura scalabile che contiene i seguenti componenti:
- Un server di gestione (MGS) memorizza e gestisce le informazioni di configurazione di uno o più file system Lustre e le fornisce agli altri componenti.
- I server di metadati (MDS) gestiscono l'accesso dei client allo spazio dei nomi di un file system Lustre utilizzando i metadati (ad esempio la gerarchia delle directory, i nomi file e le autorizzazioni di accesso).
- I server di archiviazione oggetti (OSS) gestiscono l'accesso dei client ai file archiviati in un file system Lustre.
- Il software client Lustre consente ai client di montare il file system Lustre.
In un file system possono esistere più istanze di MDS e OSS. Se necessario, puoi aggiungere nuove istanze MDS e OSS. Per saperne di più sul file system Lustre e sul suo funzionamento, consulta la documentazione di Lustre.
EXAScaler Cloud è una versione enterprise di Lustre offerta da DDN, un partner di Google. EXAScaler Cloud è una soluzione di file condivisi per l'elaborazione di dati ad alte prestazioni e per la gestione dei grandi volumi di dati richiesti per supportare i carichi di lavoro di AI, HPC e analisi. EXAScaler Cloud è ideale per i carichi di lavoro di AI di inferenza e di deep learning in Google Cloud. Puoi eseguirne il deployment in un'architettura cloud ibrido per aumentare la capacità HPC on-premise. EXAScaler Cloud può anche fungere da repository per l'archiviazione di asset a lungo termine da un deployment di EXAScaler on-premise.
Panoramica dello spazio di archiviazione Sycomp basato su IBM Storage Scale
Sycomp Storage alimentato da IBM Storage Scale in Google Cloud Marketplace ti consente di eseguire i tuoi carichi di lavoro di calcolo ad alte prestazioni (HPC), di intelligenza artificiale (AI), di machine learning (ML) e di big data in Google Cloud. Con Sycomp Storage puoi accedere contemporaneamente ai dati di migliaia di VM, ridurre i costi gestendo automaticamente i livelli di archiviazione ed eseguire l'applicazione on-premise o in Google Cloud. Sycomp Storage Fueled by IBM Storage Scale è disponibile nel Cloud Marketplace, può essere implementato rapidamente e supporta l'accesso ai dati tramite NFS e il client IBM Storage Scale.
IBM Storage Scale è un file system parallelo che consente di gestire in modo sicuro grandi volumi (PB) di dati. Sycomp Storage Scale è un file system parallelo ben adatto per HPC, AI, ML, big data e altre applicazioni che richiedono un file system condiviso conforme a POSIX. Con una capacità di archiviazione adattabile e la scalabilità delle prestazioni, Sycomp Storage può supportare carichi di lavoro HPC, AI e ML di piccole e grandi dimensioni.
Dopo aver eseguito il deployment di un cluster in Google Cloud, sei tu a decidere come usarlo. Scegli se utilizzare il cluster solo nel cloud o in modalità ibrida collegandoti a cluster IBM Storage Scale on-premise esistenti, soluzioni NAS NFS di terze parti o altre soluzioni di archiviazione basate su oggetti.
Passaggi successivi
- Scopri di più su DDN EXAScaler Cloud e sulla partnership di DDN con Google.
- Scopri di più sul contributo di Google Cloud che mostra un file system temporaneo basato su Lustre con oltre 10 Tbps nel ranking IO500 dei sistemi di archiviazione HPC.
- Scopri di più su Lustre.
- Scopri di più su Sycomp Storage basato su IBM Spectrum Scale.
Collaboratori
Autore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
Altri collaboratori:
- Barak Epstein | Product Manager
- Carlos Boneti | Senior Staff Software Engineer
- Dean Hildebrand | Technical Director, Office of the CTO
- Sean Derrington | Group Outbound Product Manager, Storage
- Wyatt Gorman | HPC Solutions Manager