Computazione a elevate prestazioni: OpenFOAM su Oracle Cloud Infrastructure

OpenFOAM è uno strumento di fluidodinamica computazionale utilizzato nella ricerca scientifica in ambito accademico e industriale per risolvere un'ampia gamma di problemi complessi di flusso di fluidi.

OpenFOAM può essere utilizzato per sviluppare e testare nuovi risolutori e modelli fisici. La capacità parallela è buona per l'esecuzione di problemi a livello di ricerca che necessitano di grandi risorse. Può risolvere problemi di flusso incompressibili che hanno turbolenza, e può simulare sia la combustione pre-mista e non rimessa.

Architettura

L'architettura utilizza un nodo bastione/testa per connettersi al cluster HPC.

Il nodo principale contiene l'installazione di OpenFOAM e il modello. Ha l'interfaccia di passaggio dei messaggi (MPI), orchestra ed esegue il lavoro. I risultati del job vengono salvati sul nodo principale.

Il seguente diagramma illustra questa architettura di riferimento.

Segue la descrizione di architecture-hpc.png
Descrizione dell'illustrazione architettura-hpc.png

Architecture-hpc-oracle.zip

L'architettura ha i seguenti componenti:

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni, e vaste distanze possono separarle (tra paesi o addirittura continenti).

  • Domini di disponibilità

    I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area. Le risorse fisiche in ogni dominio di disponibilità vengono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono un'infrastruttura come l'alimentazione o il raffreddamento oppure la rete interna del dominio di disponibilità. È improbabile che l'eventuale guasto di un dominio di disponibilità influenzi gli altri domini di disponibilità della regione.

  • Domini di errore

    Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità ha tre domini di guasto con alimentazione e hardware indipendenti. Quando si distribuiscono risorse su più domini di errore, le applicazioni possono tollerare errori fisici del server, la manutenzione del sistema e gli errori di alimentazione all'interno di un dominio di errore.

  • Rete cloud virtuale (VCN) e subnet

    Un VCN è una rete customizzabile e definita dal software impostata in un'area Oracle Cloud Infrastructure. Come le reti di data center tradizionali, offre controllo completo sull'ambiente di rete. Un VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo la creazione di VCN. È possibile segmentare un VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet in VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • Lista di sicurezza

    Per ogni subnet è possibile creare regole di sicurezza che specifichino l'origine, la destinazione e il tipo di traffico che devono essere consentiti all'interno e all'esterno della subnet.

  • Pool di istanze

    I pool di istanze consentono di creare e gestire più istanze di calcolo all'interno della stessa area di un gruppo. Abilitano inoltre l'integrazione con altri servizi, ad esempio il servizio di bilanciamento del carico e il servizio IAM.

  • Nodo base/nodo testa

    Utilizzare un portale basato sul Web per connettersi al nodo principale e pianificare i job HPC. La richiesta di job passa da FastConnect o IPSec VPN al nodo principale. Il nodo principale invia anche il data set del cliente alla memorizzazione dei file e può eseguire una pre-elaborazione sui dati.

    Il nodo principale esegue il provisioning dei cluster di nodi HPC ed elimina i cluster HPC al completamento del job.

  • Nodo cluster HPC

    Il nodo principale esegue il provisioning e termina questi nodi di calcolo, che sono cluster abilitati per RDMA. Elaborano i dati memorizzati nella memorizzazione dei file e restituiscono i risultati alla memorizzazione dei file.

  • Cloud Guard

    È possibile utilizzare Oracle Cloud Guard per monitorare e mantenere la sicurezza delle risorse nel cloud. Cloud Guard esamina le risorse per individuare la debolezza della sicurezza relativa alla configurazione e monitora gli operatori e gli utenti per attività rischiose. Quando viene identificato un problema o un rischio di sicurezza, Cloud Guard consiglia azioni correttive e assiste l'utente in tali azioni, in base alle ricette di sicurezza che è possibile definire.

  • Server NFS

    Uno dei nodi HPC verrà promosso come server NFS.

Suggerimenti

Le vostre esigenze potrebbero differire dall'architettura descritta qui. Utilizzare i suggerimenti riportati di seguito come punto di partenza.

  • VCN

    Quando si crea un VCN, determinare il numero di blocchi CIDR richiesti e la dimensione di ciascun blocco in base al numero di risorse che si prevede di associare alle subnet in VCN. Utilizzare blocchi CIDR che si trovano all'interno dello spazio degli indirizzi IP privati standard.

    Selezionare blocchi CIDR che non si sovrappongono a nessun'altra rete (in Oracle Cloud Infrastructure, nel data center in locale o in un altro provider cloud) a cui si intende impostare connessioni private.

    Dopo aver creato un VCN, è possibile modificare, aggiungere e rimuovere i blocchi CIDR.

    Quando si progettano le subnet, prendere in considerazione il flusso di traffico e i requisiti di sicurezza. Allegare tutte le risorse all'interno di uno specifico livello o ruolo alla stessa subnet, che può fungere da limite di sicurezza.

  • Sicurezza

    Utilizzare Oracle Cloud Guard per monitorare e mantenere proattivamente la sicurezza delle risorse in OCI. Cloud Guard utilizza ricette di detector che è possibile definire per esaminare le risorse per individuare le debolezze della sicurezza e monitorare gli operatori e gli utenti per attività rischiose. Quando viene rilevata una configurazione errata o un'attività non sicura, Cloud Guard consiglia azioni correttive e assiste tali azioni in base alle ricette del rispondente che è possibile definire.

    Per le risorse che richiedono la massima sicurezza, Oracle consiglia di utilizzare le zone di sicurezza. Una zona di sicurezza è un compartimento associato a una ricetta definita da Oracle di criteri di sicurezza basati sulle best practice. Ad esempio, le risorse in una zona di sicurezza non devono essere accessibili da Internet pubblico e devono essere cifrate utilizzando chiavi gestite dal cliente. Quando si creano e aggiornano le risorse in una zona di sicurezza, Oracle Cloud Infrastructure convalida le operazioni in base ai criteri nella composizione della zona di sicurezza e nega le operazioni che violano uno qualsiasi dei criteri.

  • Nodi HPC

    Sono riportati di seguito i due scenari descritti.

    1. Distribuire sulle forme VM utilizzando il pool di istanze, come mostrato nel diagramma di architettura. Questo scenario offre costi più bassi ma anche prestazioni più basse.

      Utilizzare VM.Standard.E3.Flex o VM.Standard.E4.Flex con il servizio di storage di file.

    2. Distribuisci con le forme HPC BARE Metal per ottenere prestazioni complete.

      Utilizzare le forme BM.HPC2.36 con memoria SSD NVMe locale 6.4-TB, 36 core e memoria 384-GB per nodo.

Considerazioni

Quando si distribuisce questa architettura di riferimento, prendere in considerazione i seguenti punti.

  • Prestazioni

    A seconda della dimensione del carico di lavoro, determinare il numero di memorie centrali su cui eseguire OpenFOAM. Questa decisione garantisce che la simulazione sia completata tempestivamente.

    Per ottenere le migliori prestazioni, scegliere la forma di calcolo corretta con larghezza di banda appropriata.

  • Disponibilità

    Utilizzare un'opzione ad alta disponibilità in base ai requisiti di distribuzione e all'area. Le opzioni includono l'utilizzo di più domini di disponibilità in un'area e domini di errore.

  • Costo

    Un'istanza GPU bare metal fornisce la potenza CPU necessaria per un costo maggiore. Valuta le tue esigenze per scegliere la forma di calcolo appropriata.

    È possibile eliminare il cluster quando non sono in esecuzione job.

  • Monitoraggio e avvisi

    Impostare il monitoraggio e gli avvisi sull'uso della CPU e della memoria per i nodi, in modo da poter scalare la forma su o giù in base alle esigenze.

  • Memoria

    Oltre alla memoria SSD NVMe fornita con la forma HPC, è anche possibile collegare volumi a blocchi a IOPS 32k per volume, supportati dallo SLA con prestazioni più elevate di Oracle. Se si utilizzano le nostre soluzioni per avviare l'infrastruttura, per impostazione predefinita viene installata una condivisione di informazioni nella memoria SSD di NVMe in /mnt. È inoltre possibile installare il proprio file system parallelo in cima alla memoria SSD NVMe o alla memorizzazione a blocchi, a seconda dei requisiti delle prestazioni.

  • Nodo visualizzatore

    È possibile creare un nodo visualizzatore, ad esempio una macchina virtuale GPU (VM) o un nodo Bare Metal, a seconda delle esigenze. Questo nodo del visualizzatore può essere l'host bastione o separato. A seconda dei requisiti di sicurezza per il carico di lavoro, il nodo visualizzatore può essere posizionato nella subnet privata o pubblica.

Distribuzione

Il codice richiesto per distribuire questa architettura di riferimento è disponibile in GitHub. È possibile estrarre il codice in Oracle Cloud Infrastructure Resource Manager con un solo clic, creare lo stack e distribuirlo. In alternativa, scaricare il codice da GitHub nel computer, personalizzare il codice e distribuire l'architettura utilizzando Terraform CLI.

  • Distribuisci utilizzando Oracle Cloud Infrastructure Resource Manager:
    1. Fare clicsu Distribuisci in Oracle Cloud

      Se non si è già connessi, immettere la tenancy e le credenziali utente.

    2. Rivedere e accettare i termini e le condizioni.
    3. Selezionare l'area in cui distribuire lo stack.
    4. Seguire le istruzioni e i prompt sullo schermo per creare lo stack.
    5. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
    6. Attendere il completamento del job e rivedere il piano.

      Per apportare eventuali modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire di nuovo l'azione Piano.

    7. Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
  • Distribuzione con il codice Terraform in GitHub:
    1. Vai a GitHub.
    2. Duplicare o scaricare il repository nel computer locale.
    3. Seguire le istruzioni contenute nel documento README.

Log modifiche

Questo log elenca modifiche significative: