Il
cloud-native supercomputing sarà molto probabilmente una delle "buzzword" più gettonate del prossimo futuro. Anche più del contraltare
supercomputing in cloud (da non confondersi appunto con l'HPC cloud-nativo). Come si intuisce dall'espressione, indica un approccio che cerca di
fondere i principi degli ambienti cloud - in primis la containerizzazione - con quelli del supercomputing. Ma il calcolo ad alte prestazioni e le piattaforme cloud
non parlano propriamente la stessa lingua. I task da supercomputer tradizionalmente sono monolitici, molto specifici e altamente ottimizzati. Il mondo cloud-nativo è fatto di container e microservizi che nascono e muoiono anche in frazioni di secondo. Concettualmente, sono due cose diverse.
Due cose diverse che però il mercato, o quantomeno molti vendor tecnologici,
vogliono far convergere. Il cloud-native supercomputing punta così al massimo dei due mondi:
dal mondo HPC, massime prestazioni e minimo overhead;
dal mondo cloud, convivenza tra applicazioni diverse e attivazione dinamica di servizi on-demand. Il tutto con le necessarie caratteristiche di protezione e privacy dei dati. Non è un obiettivo semplice da raggiungere. E infatti i tentativi di farlo in maniera "tradizionale" non sono stati
tantissimi.
Poi è arrivato il modello della
disaggregazione dei compiti usualmente assegnati alle CPU. Che si possono così delegare ad altre componenti. Positivamente, per l supercomputing. Unire HPC e containerizzazione significa infatti
aumentare il peso della gestione dell'orchestration di un ambiente IT che si fa molto dinamico. Se questo peso grava sulle CPU addio prestazioni al top, con tutto l'aiuto che le GPU possono dare. Se viene passato ad altre componenti, le cose cambiano.
La struttura di una DPU Nvidia BlueField-2Ecco perché oggi il cloud-native supercomputing è
molto legato al ruolo delle nuove Data Processing Unit, o DPU. Sono loro che si occupano di gestire la parte infrastrutturale di un supercomputer cloud-nativo. Soprattutto nella parte di spostamento dei dati, provisioning delle risorse, virtualizzazione dei servizi, ottimizzazione, protezione dei dati.
Il cloud-native supercomputing di Cambridge
Non sorprende quindi che un nuovo progetto considerato
espressione d'avanguardia del cloud-native supercomputing sia nato dalla collaborazione tra l'azienda che oggi sta spingendo di più il concetto delle DPU - ossia
Nvidia - e quella che ha già una
ampia esperienza nel mondo HPC, ossia
Dell Technologies. La collaborazione riguarda il
Cambridge Service for Data Driven Discovery (CSD3), uno dei principali supercomputer accademici d'Inghilterra, situato alla University of Cambridge.
Il CSD3 viene ora ampliato con l'installazione di oltre
quattrocento server PowerEdge C6520 basati sui nuovi processori Intel
Xeon SP e di oltre
ottanta server PowerEdge XE8545, basati su processori AMD Epyc e su GPU Nvidia A100. In questo progetto le funzioni di cloud-native supercomputing sono possibili grazie all'inclusione delle
DPU Nvidia BlueField-2, "appoggiate" su connessioni InfiniBand ad alta velocità.
Lato software, l'estensione di CSD3 prevede l'adozione di una piattaforma OpenStack
specifica per il cloud-native supercomputing. Si chiama
Scientific OpenStack ed è stata sviluppata direttamente dalla University of Cambridge. Per quanto se ne sa, la piattaforma è nata dalla collaborazione con una startup inglese -
StackHPC - che sta portando avanti un progetto per
l'orchestration di ambienti containerizzati senza passare per Kubernetes. Il progetto si chiama
Kayobe ed è interessante in ambito supercomputing, dato che permette di ridurre il peso della gestione dei container.
Arrivare ad una gestione semplificata di ambienti a container è possibile, secondo StackHPC, perché l'obiettivo di Kayobe è permettere l'
implementazione bare-metal di OpenStack "containerizzato". Questo avviene sfruttando le funzioni di altri progetti collegati ad OpenStack:
Kolla per convertire i servizi di OpenStack in container,
Kolla-Ansible per istanziare questi container attraverso playbook Ansible,
Bifrost per il provisioning delle risorse hardware.