L’evoluzione dell’hardware sta rivoluzionando il mondo della simulazione numerica. In particolare, le unità di elaborazione grafica (GPU) stanno emergendo come una soluzione potente ed efficiente per ridurre i tempi di calcolo nelle applicazioni di fluidodinamica computazionale (CFD) e analisi strutturale. In questo articolo vediamo quali sono i benefici nell’adozione delle GPU rispetto alle CPU, i limiti attuali e le prospettive future per gli ingegneri strutturali e fluidodinamici.
di Carlo A. Pasquinucci
Negli ultimi decenni, l’analisi numerica ha subito una rapida trasformazione grazie a progressi nei metodi computazionali e nella capacità hardware. Tuttavia, la crescente complessità e dimensione modelli potenza di calcolo superiore.
Tradizionalmente, le equazioni che modellano il problema venivano risolte con l’utilizzo di processori centrali (CPU), ma ultimamente si è cominciato a farle risolvere dalle schede grafiche (GPU), inizialmente sviluppate per il rendering grafico, in quanto, in alcuni casi, si possono rilevare significativamente più efficienti, riducendo drasticamente i tempi di calcolo.
Requisiti hardware per le simulazioni
Le simulazioni fluidodinamiche o strutturali richiedono risorse computazionali significative per essere eseguite correttamente, con due principali limitazioni legate alla memoria RAM e al numero di processori disponibili. Tra queste, la RAM è spesso il fattore più critico: sono generalmente necessari 2-4 GB di RAM per ogni milione di celle della mesh. Questo valore, indicativo, può aumentare sensibilmente in presenza di fisiche più complesse, geometrie articolate o accoppiamenti multi-fisici.
Ad esempio, una simulazione standard con 10 milioni di celle richiede almeno 32-64 GB di RAM per essere eseguita senza errori. In caso di memoria insufficiente, il software non riesce a completare il calcolo e restituisce messaggi di errore, bloccando il processo. Inoltre, simulazioni con domini di calcolo più ampi o condizioni al contorno più dettagliate possono spingere i requisiti di memoria ben oltre questa stima. Per fortuna, il costo della RAM negli ultimi anni è diminuito notevolmente ed è quasi sempre possibile inserire nuovi banchi RAM nelle workstation, migliorando quindi facilmente le prestazioni. Tuttavia, il miglioramento delle prestazioni dipende anche dalla configurazione del sistema, ad esempio dalla compatibilità della scheda madre con i nuovi moduli di memoria o dalla presenza di limiti fisici di espansione.
Per quanto riguarda il numero di processori, si consiglia generalmente di disporre di almeno due processori per milione di celle, per ottimizzare i tempi di calcolo. Tuttavia, questa relazione influisce principalmente sulla velocità di esecuzione e non sulla fattibilità della simulazione stessa. Con un numero insufficiente di processori, il calcolo potrebbe semplicemente richiedere più tempo senza pregiudicare l’esecuzione del risultato.
Anche la GPU ha una sua RAM dedicata, normalmente molto più efficiente. Per simulazioni di 10 milioni di celle, se risolte con i normali processori, servirebbero 32-64 GB di RAM, mentre nel caso in cui venissero risolte dalle GPU, sarebbero necessari solo 16-24 GB di RAM ad essa dedicata. Tuttavia, il problema nasce quando si vuole aumentare le capacità di questa RAM, in quanto va sostituita direttamente tutta la scheda video, con costi notevolmente più alti.
Principi di funzionamento delle CPU e GPU
I processori tradizionali o CPU sono progettate per eseguire calcoli sequenziali in maniera sequenziale. Una CPU tipica ha pochi core (4-16) altamente ottimizzati per gestire un’ampia gamma di istruzioni. Tuttavia, questo design limita le prestazioni nei problemi che richiedono elaborazione parallela su larga scala.
Al contrario, le GPU sono dotate di migliaia di core più semplici che lavorano in parallelo. Questo le rende particolarmente adatte per operazioni ripetitive e indipendenti, come quelle coinvolte nelle simulazioni CFD e FEM.
Ad esempio, una GPU di fascia alta, dispone di oltre 7000 core CUDA superando di gran lunga le CPU più avanzate.
Si può capire facilmente che per conti di grandi dimensioni (e quindi che richiedono una parallelizzazione più spinta e veloce) le GPU offrono dei grandissimi vantaggi in termini di velocità di calcolo. Spesso, però, simulazioni più grandi richiedono anche grandi quantitativi di memoria, cosa non sempre facilmente accessibile per le GPU.
Normalmente, però, si è dimostrato che in condizioni ottimali è possibile ridurre il tempo di esecuzione di una simulazione fluidodinamica anche di 10 volte.
Queste differenze di architettura, però, portano a un notevole problema. Per poter essere eseguito in maniera ottimale dalle GPU, il software deve essere scritto in maniera differente.
In parole semplici, i software scritti per CPU e quelli progettati per GPU si differenziano principalmente nel modo in cui gestiscono le operazioni parallele e la loro architettura hardware. Un software scritto per CPU può teoricamente funzionare su una GPU, ma richiede significative modifiche, poiché il codice CPU non è progettato per sfruttare appieno la capacità parallela della GPU. Per far funzionare un software su una GPU, è necessario riscrivere parti del codice per adattarlo a un’architettura parallela. Inoltre, bisogna considerare che le GPU gestiscono la memoria in modo diverso rispetto alle CPU, quindi la sua gestione deve essere adattata di conseguenza per evitare colli di bottiglia nelle prestazioni.
Per questo, prima di decidere di eseguire un software sulla GPU è necessario sapere se esso è stato scritto per questo motivo. Ad esempio, uno dei principali software di simulazione fluidodinamica, OpenFOAM, non è stato ancora scritto in questa ottica. Per fortuna, alcune aziende stanno sviluppando dei plug-in specifici per migliorare questa situazione, anche se rimane purtroppo significativamente critica.
Caratteristica | CPU | GPU |
Numero di core | Da 4 a 64 (per CPU moderne) | Da centinaia a migliaia |
Tipo di core | Pochi core potenti | Molti core meno potenti |
Architettura | Ottimizzata per sequenzialità | Ottimizzata per parallelismo |
Prestazioni per operazioni sequenziali | Superiori | Inferiori |
Prestazioni per operazioni parallele | Inferiori | Superiori |
Costo per unità (core) | Più elevato | Più basso |
Consumo energetico | Relativamente basso per core | Più alto, ma meglio distribuito |
Comparazione fra CPU e GPU
Normalmente, nel corso della sua carriera, un calcolista, pur non essendo un informatico pure, ha sviluppato una serie di conoscenze circa i processori, la loro velocità di calcolo, la loro qualità. Purtroppo, egli spesso non ha queste conoscenze circa le schede video, in quanto sta cominciando ad approcciarsi a questo mondo soltanto da pochi anni. Non è facile quindi capire come comparare la qualità di un processore rispetto a quello di una scheda video. In maniera super semplificata, si può pensare che un core CPU equivalga a 50-100 core CUDA.
Inoltre, c’è da considerare che le GPU hanno normalmente un prezzo significativamente maggiore e per quelle di fascia medio-alta, non è raro avere dei problemi di approvvigionamento, in quanto vengono massivamente utilizzate per software di AI. Normalmente, poi, hanno un consumo energetico maggiore, compensato però dal minor tempo di utilizzo.
Campi di applicazione
Come abbiamo visto, le schede video hanno delle prestazioni migliori perché riescono a gestire in maniera ottimale il calcolo parallelo. Per questo motivo, sono da preferire per calcoli con mesh mediamente grandi. Normalmente, si può considerare il calcolo su GPU con mesh superiori ai 20-30 milioni di celle, dove il tempo di calcolo risparmiato può essere anche significativo e compensare l’investimento economico maggiore.
Dimensione della Mesh (milioni di celle) | Raccomandazione | Motivo |
< 1M | CPU | Overhead GPU non giustificato. |
1M – 5M | CPU (cluster o multi-core) | Efficienza ancora maggiore sulle CPU. |
> 5M | GPU (se supportata dal software) | Parallelismo GPU inizia a prevalere. |
> 20M | GPU preferibile | Prestazioni nettamente superiori. |
Visti i diversi campi di applicazione, si può anche pensare che per una piccola azienda che ha un primo approccio alla simulazione non convenga investire direttamente sul calcolo basato sulla GPU, ma sia ancora conveniente il metodo di calcolo tradizionale, con il grande vantaggio di poter poi migliorare le proprie risorse di calcolo investendo in RAM tradizionale.
Al contrario, per una grande azienda conviene sicuramente investire con l’acquisto di GPU di fascia piuttosto alta. L’acquisizione di schede video di fascia bassa non è invece conveniente in nessun caso, anche perché le loro prestazioni non possono essere migliorate, al contrario dei processori.
GPU e intelligenza artificiale
Tutti questi ragionamenti ovviamente valgono per simulazioni basate sulla risoluzione delle equazioni differenziali. Negli ultimi anni, invece, stanno nascendo software di analisi che trovano la soluzione attraverso algoritmi basati su machine learning e intelligenza artificiale. Questi software sono stati progettati per funzionare esclusivamente con GPU, rendendo obbligatoria l’adozione di questo metodo.
Questa nuova generazione di software sfrutta l’efficienza computazionale delle GPU per eseguire calcoli complessi in tempi significativamente ridotti, aprendo la strada a simulazioni più rapide e accessibili anche su hardware meno costoso rispetto ai sistemi tradizionali. Tuttavia, la loro applicazione è ancora limitata a specifici ambiti e richiede dataset di addestramento accurati per garantire risultati affidabili, ossia richiede che siano disponibili in azienda già diverse simulazioni simili a quella che deve essere effettuata.
Conclusioni
Le GPU stanno trasformando il panorama dell’ingegneria computazionale. La loro capacità di ridurre i tempi di calcolo e di rendere economicamente fattibili simulazioni dettagliate rappresenta una risorsa indispensabile per gli ingegneri strutturali e fluidodinamici. Bisognerà però stare attenti, perché l’introduzione del calcolo fluidodinamico basato su GPU potrà creare un divario significativo tra grandi e piccole aziende. Le GPU di fascia alta, necessarie per gestire simulazioni complesse, rappresentano un investimento iniziale elevato, accessibile più facilmente alle grandi imprese con maggiori risorse finanziarie. Queste aziende possono beneficiare di tempi di calcolo ridotti e maggiore efficienza, accelerando il ciclo di progettazione e migliorando la competitività.
Al contrario, le piccole imprese potrebbero trovarsi penalizzate dall’impossibilità di sostenere tali costi, rimanendo legate a metodi tradizionali più lenti e meno performanti, con un conseguente rallentamento nell’innovazione. Questo potrà essere sicuramente un problema per le piccole aziende di consulenza, che per fortuna rimarranno competitive sulle piccole simulazioni. Questo divario, ovviamente, verrà sempre più ridotto più diventeranno economicamente accessibili le migliori schede video.