Indicazioni sulla scelta dell’hardware per Calcoli Scientifici
Create grafica, video e altro ancora straordinari con facilità utilizzando i nostri sistemi affidabili e ad alte prestazioni. Dedicate più tempo alla creazione e meno all’attesa.
Indicazioni sulla scelta dell’hardware
Calcoli Scientifici – Requisiti di Sistema
Link rapido a: Processore (CPU) – Scheda video (GPU) – Memoria (RAM) – Archiviazione (HDD/SSD)
L’informatica scientifica è un settore molto vasto! Esistono migliaia di applicazioni “scientifiche” e spesso ciò con cui si lavora è basato sullo sviluppo del proprio codice. I colli di bottiglia delle prestazioni possono derivare da molti tipi di hardware, software e caratteristiche di esecuzione del lavoro. Le raccomandazioni sui “requisiti di sistema” pubblicate dai fornitori di software (o dagli sviluppatori) possono non essere ideali. Potrebbero essere basate su test obsoleti o su variazioni di configurazione limitate. Tuttavia, è possibile formulare alcune raccomandazioni generali.
Processore (CPU)
La CPU può essere la considerazione più importante per una workstation di calcolo scientifico. La scelta migliore dipende dalla scalabilità parallela dell’applicazione, dai modelli di accesso alla memoria e dalla disponibilità o meno dell’accelerazione GPU.
Qual è la CPU migliore per l’elaborazione scientifica?
Esistono due scelte principali: Intel Xeon (single o dual socket) e AMD Threadripper Pro / EPYC (che si basano sulla stessa tecnologia). Per la maggior parte dei casi consigliamo processori a socket singolo come Xeon-W e Threadripper Pro.Le versioni attuali di queste CPU offrono opzioni con un elevato numero di core e un’ampia capacità di memoria senza dover affrontare la complessità, le spese e le complicazioni legate alla memoria e ai core dei sistemi a doppio socket.
Un maggior numero di core della CPU rende più veloce il calcolo scientifico?
Questo dipende da due fattori principali:
- La scalabilità parallela della vostra applicazione.
- Il limite di memoria della vostra applicazione.
È sempre bene capire quanto sia scalabile l’esecuzione dei vostri lavori.
Inoltre, se l’applicazione è legata alla memoria, sarà limitata dai canali ram e potrebbe fornire le migliori prestazioni con un numero inferiore di core. Tuttavia, spesso è un vantaggio avere molti core per avere più cache di livello superiore disponibile, anche se si utilizza regolarmente meno della metà dei core disponibili. Per un’applicazione ben scalabile, una CPU Intel o AMD a 32 core probabilmente garantirà un utilizzo adeguato e bilanciato dell’hardware e delle prestazioni.
Il calcolo scientifico funziona meglio con le CPU Intel o AMD?
I processori Intel Xeon o AMD Threadripper Pro sono eccellenti. Per determinare quale sia il migliore per voi, tenete presente che gli Xeon di Intel hanno unità vettoriali AVX512 rispetto alle unità vettoriali AVX2 (256) di AMD. Se l’applicazione è collegata a Intel MKL, AVX512 può offrire un vantaggio significativo. Tuttavia, avvalersi di AVX512 ha il costo di ridurre i clock di sistema quando è in uso per mantenere i limiti di potenza. AVX2 offre buone prestazioni di vettorizzazione e un flusso operativo complessivo ben bilanciato che spesso è altrettanto valido nel “mondo reale”. Tuttavia, se la vostra applicazione è specificamente legata a Intel MKL, una CPU Intel è una buona scelta.
Perché si consigliano Xeon o Threadripper Pro piuttosto che CPU di livello più “consumer”?
Il motivo più importante di questa raccomandazione sono i canali di memoria. Sia l’Intel Xeon W-3400 che l’AMD Threadripper Pro 7000 supportano 8 canali di memoria, il che può avere un impatto significativo sulle prestazioni per molte applicazioni scientifiche. Un’altra considerazione è che questi processori sono di livello “enterprise” e la piattaforma nel suo complesso è probabilmente robusta in caso di carico di calcolo sostenuto.
Scheda video (GPU)
Se la vostra applicazione dispone di accelerazione GPU (unità di elaborazione grafica), dovreste cercare di utilizzarla! Le prestazioni delle GPU possono essere molte volte superiori a quelle delle CPU per calcoli altamente paralleli.
Quale GPU (scheda video) è la migliore per la visualizzazione scientifica?
Se l’uso della GPU è la visualizzazione scientifica, una buona raccomandazione è una scheda NVIDIA RTX A-series di fascia alta, come la A4000 o la A5000. Se si lavora con dati video, immagini molto grandi o simulazioni visive, i 48 GB di memoria della A6000 possono essere un vantaggio. Per un tipico display desktop, le GPU NVIDIA di fascia bassa della serie professionale, come la A2000, possono essere sufficienti. Anche le GPU GeForce “consumer” di NVIDIA sono un’opzione. Qualsiasi modello, dalla RTX 4060 alla RTX 4090, è molto valido. Queste GPU sono eccellenti anche per i requisiti di visualizzazione 3D più impegnativi. Tuttavia, è una buona idea verificare con il fornitore o lo sviluppatore del software che si sta utilizzando se ha requisiti specifici per le GPU “professionali”.
Quali schede video sono consigliate per l’accelerazione del calcolo su GPU?
Ci sono alcune considerazioni da fare. Avete bisogno della doppia precisione (FP64) per la vostra applicazione? In questo caso, la scelta è limitata alla serie NVIDIA Compute, come la A100 o la A30. Queste GPU sono raffreddate passivamente e sono adatte all’uso in chassis montati su rack con la necessaria capacità di raffreddamento. Nessuna delle GPU RTX, consumer o professionali, dispone di un buon supporto per la doppia precisione.
Fortunatamente, molte applicazioni scientifiche che prevedono l’accelerazione tramite GPU funzionano con la precisione singola (FP32). In questo caso le GPU RTX di fascia alta offrono buone prestazioni e un costo relativamente basso. GPU come A5000 e A6000 sono di alta qualità e funzionano bene in configurazioni multi-GPU. Le GPU consumer come RTX 4080 e 4090 possono offrire ottime prestazioni, ma possono essere difficili da configurare in un sistema con più di due GPU a causa del design del raffreddamento e delle dimensioni fisiche.
Oltre alle considerazioni già menzionate, la dimensione della memoria può essere importante e in generale può essere un fattore limitante nell’uso delle GPU per il calcolo.
Di quanta VRAM (memoria video) ha bisogno il calcolo scientifico?
Questo dato può variare a seconda dell’applicazione. Molte applicazioni offrono una buona accelerazione con appena 12 GB di memoria della GPU. Tuttavia, se si lavora con lavori di grandi dimensioni o con grandi serie di dati, potrebbero essere necessari 24 GB (A5000, RTX 4090) o 48 GB (A6000). Per i lavori più impegnativi, la GPU di calcolo A100 di NVIDIA è disponibile in configurazioni da 40 e 80 GB.
Le GPU multiple migliorano le prestazioni dell’elaborazione scientifica?
Anche in questo caso dipende dall’applicazione. L’accelerazione multi-GPU non è automatica solo perché si dispone di più di una GPU nel sistema. Il software deve supportarla. Tuttavia, se l’applicazione scala bene distribuendo i dati o il lavoro tra le GPU, magari con Horovod (MPI), allora una workstation multi-GPU può offrire prestazioni che si avvicinano a quelle di un supercomputer di un passato non troppo lontano.
Il calcolo scientifico ha bisogno di una scheda video “professionale”?
Non necessariamente: molti calcoli scientifici importanti sono stati eseguiti su GPU NVIDIA consumer. Tuttavia, ci sono sicuramente degli aspetti da considerare, che abbiamo trattato in modo più dettagliato nelle domande precedenti (sopra).
Il calcolo scientifico funziona meglio con le GPU NVIDIA o AMD?
Grazie allo sviluppo di CUDA e alle numerose applicazioni che lo utilizzano, le GPU NVIDIA sono attualmente lo standard per l’elaborazione scientifica. Sebbene quasi tutte le applicazioni accelerate da GPU siano realizzate con CUDA, vi è un certo utilizzo di openCL (che è supportato dalle GPU AMD e NVIDIA) e vi sono utility come ROCm di AMD. Tuttavia, non sono molto utilizzate e possono essere difficili da configurare. Questa situazione cambierà sicuramente con l’aumento del lavoro svolto con i nuovi supercomputer accelerati da GPU AMD e con l’ingresso di Intel nel regno dell’accelerazione del calcolo su GPU.
Quando l’accelerazione via GPU non è appropriata per il calcolo scientifico?
Se è possibile utilizzare l’accelerazione via GPU, probabilmente lo si dovrebbe fare. Tuttavia, se la vostra applicazione ha una richiesta di memoria superiore a quella delle GPU o se il costo elevato delle GPU NVIDIA è proibitivo, allora potrebbe essere appropriata una CPU multi-core. Naturalmente, se l’applicazione non è stata scritta specificamente per supportare le GPU, non c’è alcuna magia che la faccia funzionare. Anche l’esigenza di una precisione doppia per i calcoli limita l’uso di CPU o di GPU NVIDIA di classe computazionale, queste ultime generalmente non sono adatte a una workstation e hanno un costo elevato (ma potenzialmente offrono prestazioni astronomiche).
Memoria (RAM)
Le prestazioni e la capacità della memoria sono molto importanti in molte applicazioni scientifiche. In effetti, la larghezza di banda della memoria sarà il principale collo di bottiglia dei programmi legati alla memoria. Le applicazioni che prevedono l’uso di “solutori” per le simulazioni possono risolvere equazioni differenziali che spesso sono limitate dalla memoria. Ciò si ricollega alla nostra raccomandazione di CPU con 8 canali di memoria.
Di quanta RAM ha bisogno il Calcolo Scientifico?
Dal momento che le applicazioni e le dimensioni dei lavori sono così numerose, questo dipende in larga misura dal caso d’uso specifico. È una fortuna che le moderne piattaforme workstation Intel e AMD supportino configurazioni di memoria di grandi dimensioni anche nei sistemi a singolo socket. Per i flussi di lavoro incentrati su calcoli basati sulla CPU, è normale disporre di una memoria da 256 a 512 GB, ma anche di 1 TB.
Di quanta memoria di sistema ho bisogno se uso l’accelerazione via GPU?
Esistono indicazioni generali in merito. Si raccomanda vivamente di configurare il sistema con una quantità di memoria di sistema (RAM) almeno doppia rispetto alla memoria totale della GPU (VRAM) di tutte le schede. Ad esempio, un sistema con due GPU RTX 4090 (2 x 24 = 48 GB di VRAM totale) dovrebbe avere almeno 96 GB, ma più comunemente 128 GB di memoria di sistema. Si tratta di una quantità più che doppia, ma è una configurazione tipica dei moduli di memoria (a differenza dei 96 GB). Questa raccomandazione sulla memoria di sistema serve a garantire che la memoria possa essere mappata dallo spazio della GPU a quello della CPU e a fornire lo staging e il buffering per il trasferimento di istruzioni e dati senza stallo.
Archiviazione (SSD/HDD)
L’archiviazione è una di quelle aree in cui “più di quanto si pensa sia necessario” è probabilmente una buona idea. La quantità effettiva dipende dal tipo di dati con cui si lavora. Può variare da qualche decina di gigabyte a diversi petabyte!
Qual è la configurazione di storage migliore per il calcolo scientifico?
Una buona raccomandazione generale è quella di utilizzare un’unità NVMe ad alte prestazioni con capacità di 1 TB come unità principale del sistema, per il sistema operativo e le applicazioni. È possibile configurare ulteriori unità di archiviazione NVMe per le esigenze dei dati, tuttavia sono disponibili capacità maggiori con le unità SSD “standard” (basate su SATA). Per esigenze di archiviazione molto elevate, le vecchie unità a piatti possono offrire capacità ancora maggiori. Per esigenze eccezionalmente elevate, i server di archiviazione esterni possono essere l’opzione migliore.
La mia applicazione consiglia di configurare uno “spazio di elaborazione temporaneo”, cosa devo usare?
Lo spazio di elaborazione temporaneo è una configurazione spesso utilizzata nelle applicazioni di chimica quantistica per memorizzare gli integrali. Esistono altre applicazioni che si basano sulla disponibilità di uno spazio di elaborazione temporaneo. In questi casi, un’unità NVMe aggiuntiva sarebbe un’ottima opzione. Tuttavia, se esiste un’opzione di configurazione nel software per evitare l’uso di questo tipo di spazio, questa potrebbe essere l’opzione migliore. La necessità di spazio temporaneo era comune quando la capacità della memoria di sistema era ridotta. È probabile che sia molto meglio aumentare le dimensioni della RAM se ciò consente di evitare lo spazio temporaneo, dato che la memoria è di ordini di grandezza più veloce persino delle unità SSD ad alta velocità.
Cercate una workstation scientifica?
Costruiamo computer su misura per il vostro flusso di lavoro.
Non sapete da dove cominciare? Possiamo aiutarvi!
Contattate oggi stesso uno dei nostri consulenti tecnici.