Introduzione

Leonardo è lo strumento che consente di fare un passo avanti verso la fornitura di capacità di calcolo exascale ai ricercatori italiani ed europei.

Leonardo punta alle massime prestazioni e può essere classificato come un sistema di supercalcolo di alto livello in Europa.

Il sistema combina componenti avanzati di elaborazione  per affrontare flussi di lavoro computazionali più complessi, che combinano applicazioni HPC, AI, high-throughput e visualizzazione.

Il sistema Leonardo ha una potenza computazionale di quasi 250 PFlops e dotato di oltre 100 PB di capacità di storage. Leonardo fornisce 10 volte la potenza di calcolo dell’attuale sistema di punta Cineca Marconi100.

52527061026 8eb46b8fc1 o scaled

In questo video, prodotto da Cineca e realizzato con software Blender, usando i modelli 3D ad alto dettaglio forniti da Eviden, viene presentata l’architettura di Leonardo.

Panoramica hardware

architettura scaled
Una panoramica dell'architettura di Leonardo

Partizioni di calcolo

Leonardo mette a disposizione degli utenti due principali moduli di calcolo:

  • Un modulo Booster, il cui scopo è massimizzare la capacità computazionale. È stato progettato per soddisfare i requisiti più impegnativi in ​​termini di time-to-solution, ottimizzando al contempo l’energy-to-solution. Questo risultato è ottenuto con 3456 nodi di calcolo, ciascuno dotato di quattro GPU NVidia A100 SXM6 64GB  guidate da una singola CPU Intel Ice Lake a 32 core. Questo modulo dovrebbe fornire prestazioni di calcolo superiori a 240 Pflops.
  • Un modulo General Purpose che mira a soddisfare una più ampia gamma di applicazioni. I suoi 1536 nodi sono dotati di due CPU Intel Sapphire Rapids, ciascuna con un numero di core superiore a 50, per raggiungere oltre 9 PFlops di sustained performance.

Tutti i nodi sono interconnessi attraverso una rete Nvidia Mellanox, con Dragon Fl+, capace di una larghezza di banda massima di 200Gbit/s tra ogni coppia di nodi.

Partizioni di calcolo

Leonardo mette a disposizione degli utenti due principali moduli di calcolo:

  • Un modulo Booster, il cui scopo è massimizzare la capacità computazionale. È stato progettato per soddisfare i requisiti più impegnativi in ​​termini di time-to-solution, ottimizzando al contempo l’energy-to-solution. Questo risultato è ottenuto con 3456 nodi di calcolo, ciascuno dotato di quattro GPU  NVIDIA  A100 SXM6 64GB  guidate da una singola CPU Intel Ice Lake a 32 core. Questo modulo dovrebbe fornire prestazioni di calcolo superiori a 240 Pflops.
  • Un modulo Data Centric che mira a soddisfare una più ampia gamma di applicazioni. I suoi 1536 nodi sono dotati di due CPU Intel Sapphire Rapids, ciascuna 56 core, per raggiungere oltre 9 PFlops di sustained performance.

Tutti i nodi sono interconnessi attraverso una rete Nvidia Mellanox, con Dragon Fl+, capace di una larghezza di banda massima di 200Gbit/s tra ogni coppia di nodi.

Storage

Il sistema di storage è caratterizzato da un capacity tier e un fast tier. Questa architettura consente una grande flessibilità per affrontare i casi d’uso di I/O più esigenti in termini di larghezza di banda e IOPS. L’architettura di archiviazione, insieme al design del nodo di calcolo booster e alla sua capacità GPUDirect, aumenta la larghezza di banda IO e riduce la latenza IO verso le GPU, migliorando così le prestazioni per un numero significativo di casi d’uso.

Il fast tier si basa su DDN Exascaler e fungerà da livello ad alte prestazioni specificamente progettato per supportare carichi di lavoro IOPS elevati. Questo livello di archiviazione è completamente full flash e si basa su dischi NVMe e SSD, fornendo quindi prestazioni di metadati elevate, particolarmente critiche per i carichi di lavoro AI e in generale quando è richiesta la creazione di molti file.

Per rendere disponibile il sistema di storage di Leonardo agli utenti finali, è disponibile un’ampia serie di opzioni per integrare il capacity tier e il fast tier.

Data Network

Immagine21 copia

L’interconnessione a bassa latenza e larghezza di banda elevata si basa su una soluzione NVIDIA HDR200 e presenta una topologia Dragonfly+. Si tratta di una topologia relativamente nuova per reti basate su Infiniband. Consente di interconnettere un numero molto elevato di nodi contenenti switch e cavi, mantenendo al contempo il diametro della rete molto piccolo.

Rispetto alle topologie non-blocking fat tree, questa soluzione offre il vantaggio di ridurre i costi e di consentire la scalabilità orizzontale su un numero maggiore di nodi. Rispetto al fat tree con blocco 2:1, è possibile raggiungere un throughput di rete vicino al 100% per il traffico arbitrario. 

La topologia Dragonfly+ adotatta in Leonardo presenta un’interconnessione fat-tree intra-group, con 2 layer di switch, e un’interconnessione all-to-all inter-group.

La soluzione di rete dati Leonardo è dotata di un migliore supporto per il routing adattivo, fondamentale per facilitare un’elevata larghezza di banda di bisezione attraverso un non-minimal routing. Infatti, il routing all’interno del gruppo e il routing tra i gruppi devono essere bilanciati per fornire un basso numero di hop e un’elevata velocità di trasmissione della rete. Ciò si ottiene con le decisioni di routing valutate in ogni router sul percorso del pacchetto e consente un throughput di rete minimo di ~ 50%.

Questo sistema offre la capacità di calcolo per realizzare visualizzazioni che richiedono larghezza di banda combinata con un rapido accesso ai dati, come le applicazioni 3D. 16 nodi aggiuntivi sono dotati di dischi NVMe da 6,4 TB e 2 NVidia Quadro RTX8000 da 48 GB da utilizzare come nodi di visualizzazione

Data Network

Immagine21 copia

L’interconnessione a bassa latenza e larghezza di banda elevata si basa su una soluzione NVIDIA HDR200 e presenta una topologia Dragonfly+. Si tratta di una topologia relativamente nuova per reti basate su Infiniband. Consente di interconnettere un numero molto elevato di nodi contenenti switch e cavi, mantenendo al contempo il diametro della rete molto piccolo.

Rispetto alle topologie non-blocking fat tree, questa soluzione offre il vantaggio di ridurre i costi e di consentire la scalabilità orizzontale su un numero maggiore di nodi. Rispetto al fat tree con blocco 2:1, è possibile raggiungere un throughput di rete vicino al 100% per il traffico arbitrario. 

La topologia Dragonfly+ adotatta in Leonardo presenta un’interconnessione fat-tree intra-group, con 2 layer di switch, e un’interconnessione all-to-all inter-group.

La soluzione di rete dati Leonardo è dotata di un migliore supporto per il routing adattivo, fondamentale per facilitare un’elevata larghezza di banda di bisezione attraverso un non-minimal routing. Infatti, il routing all’interno del gruppo e il routing tra i gruppi devono essere bilanciati per fornire un basso numero di hop e un’elevata velocità di trasmissione della rete. Ciò si ottiene con le decisioni di routing valutate in ogni router sul percorso del pacchetto e consente un throughput di rete minimo di ~ 50%.

Questo sistema offre la capacità di calcolo per realizzare visualizzazioni che richiedono larghezza di banda combinata con un rapido accesso ai dati, come le applicazioni 3D. 16 nodi aggiuntivi sono dotati di dischi NVMe da 6,4 TB e 2 NVidia Quadro RTX8000 da 48 GB da utilizzare come nodi di visualizzazione

efficienza energetica

Leonardo è dotato di due diversi strumenti software che consentono una regolazione dinamica del consumo energetico: Bull Energy Optimiser tiene traccia dei profili energetici e di temperatura tramite protocolli IPMI e SNMP. Tali strumenti possono interagire con Slurm scheduler per ottimizzare alcune delle sue caratteristiche specifiche, come una selezione dei lavori basata (anche) sul consumo energetico previsto o un capping dinamico delle frequenze delle CPU in base al consumo complessivo.

Questa procedura di ottimizzazione dinamica è migliorata da un secondo strumento chiamato Bull Dynamic Power Optimiser, che monitora i consumi energetici core per core al fine di limitare le frequenze al valore che garantisce un equilibrio ottimale tra risparmio energetico e degrado delle prestazioni per le applicazioni in esecuzione.

Per quanto riguarda il consumo energetico della GPU, viene fornito NVIDIA Data Center GPU Manager che consente di ridurre i clock delle GPU quando supera una soglia personalizzata.

Maggiori informazioni tecniche sui sistemi Leonardo ed EuroHPC sono disponibili qui.

Panoramica performance

Leonardo è concepito come un’architettura di sistema polivalente in grado di servire tutte le comunità scientifiche e soddisfare le esigenze dei clienti industriali di R&S.

Il calcolo scalabile e ad alto rendimento in genere si riferisce a casi d’uso scientifici che richiedono grandi quantità di risorse computazionali tramite esecuzioni di simulazione altamente parallele su architetture HPC su larga scala o avviando un gran numero di esecuzioni più piccole per valutare l’impatto di diversi parametri. Si prevede che il sistema Leonardo supporterà entrambi i modelli fornendo un’incredibile accelerazione per i carichi di lavoro in grado di sfruttare gli acceleratori.

Sfruttando l’architettura booster, i primi dati dei benchmark riportano un miglioramento del time-to-science di 15-30 volte per le applicazioni già trasferite su GPU NVIDIA (QuantumEspresso, Specfem3D_Globe, Milc QCD) rispetto al sistema Cineca Tier-0 Marconi100.
Esempi di applicazioni utilizzate in produzione su Marconi-100 (basato su NVIDIA V100) possono essere trovati qui.

Il numero di applicazioni in grado di funzionare su GPU aumenta di giorno in giorno, grazie alla diffusione di paradigmi di programmazione specifici e supportati da un ecosistema in crescita (centri di eccellenza UE, Hackathon, supporto locale dei centri di calcolo).

Le applicazioni basate sull’intelligenza artificiale possono sfruttare GPU all’avanguardia fornendo prestazioni di picco di alta precisione a bassa precisione, core Tensor dedicati e un’architettura di sistema progettata per supportare carichi di lavoro legati all’I/O grazie anche alla funzione NVIDIA GPUDirect RDMA e allo storage fast tier.