Scenari per le tecnologie HPC e Batch
Ogni scenario HPC (High Performance Computing) presenta requisiti specifici e spesso richiede un'unica soluzione.
In qualità di architetto di soluzioni per l'organizzazione di progettazione, occorre usare le soluzioni HPC in Azure per risolvere le complesse attività che l'organizzazione deve affrontare. Queste attività includono il rendering di modelli 3D delle strutture progettate dall'azienda e l'archiviazione di grandi quantità di dati statistici. L'essenza di HPC consiste nell'usare molti computer o computer con configurazioni di memoria, GPU e CPU altamente specifiche per gestire attività complesse che richiedono molto tempo.
In questa unità, vengono illustrati alcuni casi d'uso tipici di HPC. Queste informazioni dovrebbero consentire di identificare i problemi futuri che potrebbero essere risolti usando le soluzioni HPC.
Casi d'uso comuni di HPC
Le organizzazioni usano HPC per risolvere problemi aziendali diversi. I requisiti possono essere univoci, ma spesso un caso d'uso rientra in uno dei diversi scenari comuni.
Analisi degli elementi finiti
L'analisi degli elementi finiti affronta problemi che coinvolgono complesse questioni di fisica ingegneristica. Questi problemi possono includere trasferimento di calore, analisi strutturale, trasporto di massa e potenziale elettromagnetico. Per risolvere questi problemi, i sistemi di grandi dimensioni sono suddivisi in blocchi più piccoli denominati elementi finiti e riassemblati in un sistema di equazioni più ampio.
Gli esempi includono la simulazione di incidenti d'auto e le previsioni meteorologiche. È possibile evidenziare gli aspetti più interessanti del sistema. Ad esempio, la simulazione di un incidente d'auto potrebbe concentrarsi sulla parte anteriore del veicolo, mentre le simulazioni meteorologiche possono essere ottimizzate per identificare eventi meteorologici estremi. L'uso dell'analisi degli elementi finiti per modellare gli incidenti stradali richiede semplicemente la specifica della geometria strutturale e della composizione materiale del veicolo. Le variazioni matematiche relative a quanto può succedere in un incidente d'auto in un paio di secondi sono così vaste che potrebbe essere necessario HPC per modellarle correttamente.
Rendering di modelli 3D
Il rendering 3D è un caso d'uso classico per HPC nel cloud. Un singolo computer potrebbe richiedere ore o giorni per eseguire il rendering completo di un file video o di un'immagine 3D da asset statici. Per risolvere il problema, è possibile acquistare un computer costoso e con caratteristiche ben definite. Tuttavia, data la velocità con cui la tecnologia diventa obsoleta, può essere più economico ed efficiente "affittare" la potenza richiesta nel cloud. Usare Azure Batch per prendere in prestito la capacità necessaria per eseguire il rendering nel tempo di cui si dispone e quindi arrestarlo al termine del processo. È possibile adottare questo processo quando si hanno processi simili frequenti da completare.
L'infrastruttura sottostante viene migliorata a mano a mano che diventano disponibili gli aggiornamenti della tecnologia. Batch consente anche di usare alcuni dei più importanti pacchetti per il rendering 3D, come Maya, 3D Studio Max e Chaos V-Ray. Gli eventuali costi di licenza vengono addebitati su base oraria. Poiché il rendering è particolarmente gravoso in termini di CPU, la distribuzione di macchine virtuali serie H in pool di Batch costituisce una soluzione efficiente.
Il diagramma seguente illustra una tipica architettura basata su Batch che è possibile usare per supportare il rendering 3D.
Analisi del DNA
Anche la genomica, ovvero lo studio del set completo di DNA di un singolo organismo, è un caso d'uso ideale per le tecniche HPC basate sul cloud. La ricerca genomica implica in genere grandi quantità di dati. La configurazione del DNA viene rilevata in un numero sufficientemente elevato di individui per identificare variazioni significative. In media, sono presenti circa 25.000 geni nel corpo umano, ciascuno costituito da istruzioni comprese tra 500 e 2,3 milioni di lettere. HPC nel cloud consente di archiviare e usare in modo efficiente enormi quantità di dati, senza spese di investimento ingenti per tecnologie che diventano rapidamente obsolete.
Computer-Aided Design
La progettazione assistita, o Computer-Aided Design (CAD), presenta alcune somiglianze con l'analisi degli elementi finiti e il rendering 3D basato su Batch e costituisce un altro caso d'uso valido per HPC nel cloud. CAD accelera la progettazione e il test dei prodotti e consente di eseguire simulazioni e visualizzazioni complesse sugli elementi risultanti.
Questo diagramma mostra una possibile architettura utilizzabile per pubblicare un prodotto CAD SaaS (software come un servizio) basato sulle macchine virtuali serie N e serie H in Azure.
Fluidodinamica computazionale
La fluidodinamica computazionale usa la matematica per modellare flussi fluidi, sia in flusso libero che in interazione con superfici solide. Queste simulazioni vengono imposte dal punto di vista del calcolo. Forniscono un buon caso d'uso per alcuni degli aspetti più complessi delle macchine virtuali serie H illustrate in precedenza. Questi aspetti includono le funzionalità di rete InfiniBand e la possibilità di interagire tramite MPI (Message Passing Interface).
Criteri decisionali
Quale servizio candidato si usa?
La modalità lift-and-shift è una strategia per la migrazione di un carico di lavoro sul cloud senza necessità di riprogettare l'applicazione o apportare modifiche al codice. Viene definita anche rehosting. Per altre informazioni, vedere il Centro migrazione di Azure.
L'ottimizzazione per il cloud è una strategia per la migrazione al cloud tramite il refactoring di un'applicazione per sfruttare i vantaggi delle funzionalità native del cloud.
Quale servizio di archiviazione HPC di Azure si usa?
Calcolo basato sulla CPU e basato su GPU
Una CPU (il cervello) può lavorare su vari calcoli diversi, mentre una GPU (i muscoli) è ideale per concentrare tutte le capacità di calcolo su un'attività specifica.
Anche se i singoli core CPU sono più veloci, misurati in base alla velocità di clock della CPU e più intelligenti, misurati in base ai set di istruzioni disponibili. Il numero di core GPU e la grande quantità di parallelismi offerti, costituiscono la differenza di velocità del clock a core singolo e set di istruzioni limitati.
CPU
- La CPU è costituita da alcuni core ottimizzati per l'elaborazione seriale sequenziale. È progettata per ottimizzare le prestazioni di una singola attività all'interno di un processo.
- Passaggi per individuare la macchina virtuale della CPU corretta:
- Determinare se un processo per l'applicazione HPC viene eseguito in meno di un computer o usa MPI tra più computer.
- Determinare la RAM del processo per utilizzo core (ad esempio, 6 GB di RAM per core) e eseguire il benchmark delle istanze che si adattano.
- Se il carico di lavoro richiede core fisici, è possibile usare le famiglie di macchine virtuali (mostrate in colore viola).
- Verificare la disponibilità dei computer preferiti.
- Cray è applicabile per qualsiasi carico di lavoro:
- In cui un tipo di macchina virtuale funzionante non è disponibile a livello di area
- Con un utilizzo elevato, i server vengono usati più dell'80%
- In cui non è disponibile alcuna configurazione di macchina virtuale funzionante
GPU
- Una GPU usa migliaia di core più piccoli ed efficienti per un'architettura parallela di grandi dimensioni finalizzata alla gestione simultanea di più funzioni.
- Le GPU moderne offrono potenza di elaborazione superiore, larghezza di banda della memoria ed efficienza rispetto alle controparti della CPU. Sono 50-100 volte più veloci nelle attività che richiedono più processi paralleli.
Perché la rete a bassa latenza è importante per i processi strettamente associati?
Molte applicazioni HPC sono altamente parallele e hanno una comunicazione strettamente associata. Ciò significa che durante l'esecuzione di una simulazione parallela delle applicazioni, tutti i processi paralleli devono comunicare tra loro frequentemente.
Questi tipi di applicazioni in genere funzionano meglio quando la comunicazione tra i processi paralleli viene eseguita su reti a larghezza di banda elevata/bassa latenza, ad esempio InfiniBand.
La natura strettamente associata di queste applicazioni significa che se una singola macchina virtuale non funziona in modo ottimale, può causare un problema di prestazioni del processo.
I nodi richiedono un crosstalk (chat) significativo tra loro per funzionare correttamente.