Cos'è un Cluster di Calcolo?
L'architettura dei sistemi HPC
Questa sezione introduce i fondamenti del calcolo ad alte prestazioni (HPC). Fornisce una panoramica sull'architettura dei cluster di computer, prendendo come riferimento sistemi come Copernico, con concetti applicabili alla maggior parte delle infrastrutture moderne.
Cos'è un cluster di computer?
Un cluster è un sistema composto da un insieme di computer indipendenti interconnessi tramite una rete locale (LAN) ad altissima velocità. Lavorando in stretta sinergia, questi computer operano e si presentano all'utente come un unico, potente sistema centrale.
Vantaggi principali di un cluster:
-
Prestazioni elevate: L'elaborazione parallela consente di distribuire i calcoli complessi su più macchine, riducendo drasticamente i tempi di esecuzione.
-
Efficienza dei costi: Aggregare hardware standard commerciale risulta molto più economico rispetto alla progettazione e costruzione di un singolo computer monolitico di pari potenza.
-
Alta affidabilità: Se un computer all'interno del cluster si guasta, il sistema nel suo complesso continua a funzionare, garantendo la continuità operativa.
L'architettura di base: Cos'è un nodo?
Nel calcolo parallelo, il singolo computer che compone il cluster viene definito nodo. Fisicamente, i nodi sono progettati per occupare il minor spazio possibile e vengono impilati l'uno sull'altro all'interno di armadi metallici chiamati rack.
Per comprendere il funzionamento di un nodo, è utile analizzare i suoi componenti chiave:
-
CPU (Central Processing Unit): Ogni nodo ospita solitamente uno o due processori principali.
-
Core: Le CPU moderne sono suddivise in molteplici unità di elaborazione (core). Più core sono presenti, maggiore è il numero di operazioni che il nodo può eseguire simultaneamente.
-
Memoria RAM: La memoria di sistema è fisicamente condivisa tra i core della stessa CPU, ma non tra le CPU di nodi diversi.
-
A causa di questa separazione fisica, i programmi scritti per normali PC (che utilizzano standard a memoria condivisa come OpenMP) non possono sfruttare l'intero cluster. Per usare più nodi contemporaneamente, il software deve essere programmato per far comunicare i nodi tramite la rete (spesso utilizzando il protocollo MPI).
-
-
GPU (Graphics Processing Unit): Oltre alle CPU, molti nodi integrano acceleratori grafici. Le GPU sono processori specializzati capaci di eseguire calcoli matematici specifici a velocità nettamente superiori rispetto alle CPU tradizionali.
Gestione del sistema:
-
Sistema batch (o di accodamento): Il cluster è gestito da un software centralizzato. Gli utenti non avviano i programmi direttamente, ma inviano le loro richieste (job) a questo sistema, che si occupa di metterle in coda e assegnarle ai nodi liberi in modo efficiente.
-
Sistema Operativo: Con pochissime eccezioni, l'intera infrastruttura del cluster utilizza un ambiente Linux.
Cos'è un supercomputer? È la stessa cosa di un cluster?
I termini "cluster" e "supercomputer" sono correlati ma non sinonimi:
-
Il Supercomputer è un termine che definisce un sistema le cui capacità di calcolo sono ai vertici assoluti della tecnologia in un determinato periodo storico.
-
Storicamente, i supercomputer erano macchine customizzate, costruite su misura e con architetture hardware uniche (come i sistemi Cray).
-
Oggi, la costruzione di sistemi monolitici è diventata inefficiente. Di conseguenza, la quasi totalità dei supercomputer moderni è basata sull'architettura a cluster, aggregando decine di migliaia di nodi standard.
-