Eseguire OpenFoam con Microsoft HPC Pack in un cluster Linux RDMA in AzureRun OpenFoam with Microsoft HPC Pack on a Linux RDMA cluster in Azure

Questo articolo descrive un modo per eseguire OpenFoam nelle macchine virtuali di Azure.This article shows you one way to run OpenFoam in Azure virtual machines. Viene distribuito un cluster Microsoft HPC Pack con nodi di calcolo Linux in Azure e viene eseguito un processo OpenFoam con Intel MPI.Here, you deploy a Microsoft HPC Pack cluster with Linux compute nodes on Azure and run an OpenFoam job with Intel MPI. Per i nodi di calcolo è possibile usare macchine virtuali di Azure con supporto per RDMA. In questo modo i nodi di calcolo comunicano attraverso la rete RDMA di Azure.You can use RDMA-capable Azure VMs for the compute nodes, so that the compute nodes communicate over the Azure RDMA network. Le altre opzioni per l'esecuzione di OpenFoam in Azure includono le immagini commerciali completamente configurate disponibili in Marketplace, come OpenFoam 2.3 u CentOS 6 di UberCloud e tramite esecuzione su Azure Batch.Other options to run OpenFoam in Azure include fully configured commercial images available in the Marketplace, such as UberCloud's OpenFoam 2.3 on CentOS 6, and by running on Azure Batch.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

OpenFOAM (Open Field Operation and Manipulation) è un pacchetto software di fluidodinamica computazionale (CFD) open source ampiamente usato in ambito ingegneristico e scientifico, in organizzazioni sia di tipo commerciale che accademico.OpenFOAM (for Open Field Operation and Manipulation) is an open-source computational fluid dynamics (CFD) software package that is used widely in engineering and science, in both commercial and academic organizations. Include strumenti per la generazione di mesh, ad esempio snappyHexMesh, uno strumento di generazione mesh parallelizzato per geometrie CAD complesse, per la pre e la post-elaborazione.It includes tools for meshing, notably snappyHexMesh, a parallelized mesher for complex CAD geometries, and for pre- and post-processing. Quasi tutti i processi vengono eseguiti in parallelo, per consentire agli utenti di sfruttare appieno l'hardware IT a disposizione.Almost all processes run in parallel, enabling users to take full advantage of computer hardware at their disposal.

Microsoft HPC Pack fornisce le funzionalità necessarie per eseguire applicazioni HPC e parallele su larga scala, incluse applicazioni MPI, in cluster di macchine virtuali di Microsoft Azure.Microsoft HPC Pack provides features to run large-scale HPC and parallel applications, including MPI applications, on clusters of Microsoft Azure virtual machines. HPC Pack supporta anche applicazioni HPC che eseguono Linux su macchine virtuali del nodo di calcolo Linux distribuite in un cluster HPC Pack.HPC Pack also supports running Linux HPC applications on Linux compute node VMs deployed in an HPC Pack cluster. Per informazioni introduttive sull'uso dei nodi di calcolo Linux con HPC Pack, vedere Introduzione ai nodi di calcolo Linux in un cluster HPC Pack in Azure.See Get started with Linux compute nodes in an HPC Pack cluster in Azure for an introduction to using Linux compute nodes with HPC Pack.

Nota

Questo articolo illustra come eseguire un carico di lavoro MPI Linux con HPC PackThis article illustrates how to run a Linux MPI workload with HPC Pack. e presuppone che l'utente abbia familiarità con l'amministrazione del sistema Linux e con l'esecuzione di carichi di lavoro MPI in cluster Linux.It assumes you have some familiarity with Linux system administration and with running MPI workloads on Linux clusters. Se si usano versioni di MPI e OpenFOAM diverse da quelle riportate in questo articolo, è necessario modificare alcuni passaggi di installazione e configurazione.If you use versions of MPI and OpenFOAM different from the ones shown in this article, you might have to modify some installation and configuration steps.

PrerequisitiPrerequisites

  • Cluster HPC Pack con nodi di calcolo con supporto per RDMA: distribuire un cluster HPC Pack con nodi di calcolo Linux di dimensione A8, A9, H16r o H16rm usando un modello di Azure Resource Manager o uno script di Azure PowerShell.HPC Pack cluster with RDMA-capable Linux compute nodes - Deploy an HPC Pack cluster with size A8, A9, H16r, or H16rm Linux compute nodes using either an Azure Resource Manager template or an Azure PowerShell script. Per i prerequisiti e i passaggi di entrambe le opzioni, vedere Introduzione all'uso di nodi di calcolo Linux in un cluster HPC Pack in Azure .See Get started with Linux compute nodes in an HPC Pack cluster in Azure for the prerequisites and steps for either option. Se si sceglie l'opzione di distribuzione mediante uno script di PowerShell, vedere il file di configurazione di esempio al termine dell'articolo.If you choose the PowerShell script deployment option, see the sample configuration file in the sample files at the end of this article. Usare questa configurazione per distribuire un cluster HPC Pack basato su Azure, costituito da un nodo head Windows Server 2012 R2 di dimensioni A8 e 2 nodi di calcolo SUSE Linux Enterprise Server 12 di dimensioni A8.Use this configuration to deploy an Azure-based HPC Pack cluster consisting of a size A8 Windows Server 2012 R2 head node and 2 size A8 SUSE Linux Enterprise Server 12 compute nodes. Sostituire i valori dell'esempio con i valori appropriati per la sottoscrizione e i nomi dei servizi.Substitute appropriate values for your subscription and service names.

    Altre informazioni importantiAdditional things to know

    • Per i prerequisiti della rete RDMA Linux in Azure, vedere Dimensioni delle VM High Performance Computing (HPC).For Linux RDMA networking prerequisites in Azure, see High performance compute VM sizes.
    • Se si usa l'opzione di distribuzione con script Powershell, distribuire tutti i nodi di calcolo Linux all'interno di un unico servizio cloud per usare la connessione di rete RDMA.If you use the Powershell script deployment option, deploy all the Linux compute nodes within one cloud service to use the RDMA network connection.
    • Dopo aver distribuito i nodi Linux, è necessaria una connessione tramite SSH per eseguire eventuali attività amministrative aggiuntive.After deploying the Linux nodes, connect by SSH to perform any additional administrative tasks. I dettagli della connessione SSH relativi a ciascuna macchina virtuale di Linux sono disponibili nel portale di Azure.Find the SSH connection details for each Linux VM in the Azure portal.
  • Intel MPI: per eseguire OpenFOAM su nodi di calcolo SLES 12 HPC in Azure, è necessario installare il runtime di Intel MPI Library 5 dal sito Intel.com.Intel MPI - To run OpenFOAM on SLES 12 HPC compute nodes in Azure, you need to install the Intel MPI Library 5 runtime from the Intel.com site. (Intel MPI 5 è preinstallato nelle immagini HPC basate su CentOS). Se necessario, in un passaggio successivo installare Intel MPI nei nodi di calcolo Linux.(Intel MPI 5 is preinstalled on CentOS-based HPC images.) In a later step, if necessary, install Intel MPI on your Linux compute nodes. Come preparazione a questo passaggio, dopo aver eseguito la registrazione a Intel fare clic sul collegamento contenuto nel messaggio di posta elettronica di conferma per accedere alla relativa pagina Web.To prepare for this step, after you register with Intel, follow the link in the confirmation email to the related web page. Copiare quindi il collegamento di download del file con estensione tgz per la versione appropriata di Intel MPI.Then, copy the download link for the .tgz file for the appropriate version of Intel MPI. Questo articolo si riferisce a Intel MPI versione 5.0.3.048.This article is based on Intel MPI version 5.0.3.048.
  • OpenFOAM Source Pack : scaricare il software OpenFOAM Source Pack per Linux dal sito OpenFOAM Foundation.OpenFOAM Source Pack - Download the OpenFOAM Source Pack software for Linux from the OpenFOAM Foundation site. In questo articolo viene usato Source Pack versione 2.3.1, disponibile per il download come OpenFOAM 2.3.1.tgz.This article is based on Source Pack version 2.3.1, available for download as OpenFOAM-2.3.1.tgz. Seguire le istruzioni riportate più avanti in questo articolo per decomprimere e compilare OpenFOAM nei nodi di calcolo Linux.Follow the instructions later in this article to unpack and compile OpenFOAM on the Linux compute nodes.
  • EnSight (facoltativo): per visualizzare i risultati della simulazione OpenFOAM, scaricare e installare il programma di analisi e visualizzazione EnSight .EnSight (optional) - To see the results of your OpenFOAM simulation, download and install the EnSight visualization and analysis program. Per informazioni sul download e la gestione delle licenze, vedere il sito EnSight.Licensing and download information are at the EnSight site.

Configurare il trust reciproco tra i nodi di calcoloSet up mutual trust between compute nodes

L'esecuzione di un processo su più nodi Linux richiede una relazione di trust tra i nodi (tramite rsh o ssh).Running a cross-node job on multiple Linux nodes requires the nodes to trust each other (by rsh or ssh). Quando si crea il cluster HPC Pack con lo script di distribuzione IaaS di Microsoft HPC Pack, lo script configura automaticamente un trust reciproco permanente per l'account amministratore specificato.When you create the HPC Pack cluster with the Microsoft HPC Pack IaaS deployment script, the script automatically sets up permanent mutual trust for the administrator account you specify. Per gli utenti non amministratori creati nel dominio del cluster è necessario configurare una relazione di trust reciproco temporanea tra i nodi in caso di allocazione di un processo e quindi eliminare la relazione dopo il completamento del processo.For non-administrator users you create in the cluster's domain, you have to set up temporary mutual trust among the nodes when a job is allocated to them, and destroy the relationship after the job is complete. Per stabilire la relazione di trust per ciascun utente, fornire una coppia di chiavi RSA al cluster usato da HPC Pack per stabilire la relazione di trust.To establish trust for each user, provide an RSA key pair to the cluster that HPC Pack uses for the trust relationship.

Generare una coppia di chiavi RSAGenerate an RSA key pair

Per generare con facilità una coppia di chiavi RSA, che contiene una chiave pubblica e una chiave privata, eseguire il comando ssh-keygen di Linux.It's easy to generate an RSA key pair, which contains a public key and a private key, by running the Linux ssh-keygen command.

  1. Accedere a un computer Linux.Log on to a Linux computer.
  2. Eseguire il comando seguente:Run the following command:

    ssh-keygen -t rsa
    

    Nota

    Premere Invio per usare le impostazioni predefinite fino al completamento del comando.Press Enter to use the default settings until the command is completed. Non immettere una passphrase. Quando viene richiesta una password, è sufficiente premere Invio.Do not enter a passphrase here; when prompted for a password, just press Enter.

    Generare una coppia di chiavi RSA

  3. Passare alla directory ~/.ssh.Change directory to the ~/.ssh directory. La chiave privata viene archiviata in id_rsa e la chiave pubblica in id_rsa.pub.The private key is stored in id_rsa and the public key in id_rsa.pub.

    Chiavi pubbliche e private

Aggiungere la coppia di chiavi al cluster HPC PackAdd the key pair to the HPC Pack cluster

  1. Stabilire una connessione Desktop remoto al nodo head con l'account amministratore di HPC Pack, ovvero l'account amministratore configurato durante l'esecuzione dello script di distribuzione.Make a Remote Desktop connection to your head node with your HPC Pack administrator account (the administrator account you set up when you ran the deployment script).
  2. Usare le procedure standard di Windows Server per creare un account utente di dominio nel dominio di Active Directory del cluster.Use standard Windows Server procedures to create a domain user account in the cluster's Active Directory domain. Ad esempio, usare lo strumento Utenti e computer di Active Directory sul nodo head.For example, use the Active Directory User and Computers tool on the head node. Gli esempi in questo articolo presuppongono che venga creato un utente di dominio denominato hpclab\hpcuser.The examples in this article assume you create a domain user named hpclab\hpcuser.
  3. Creare un file con nome C:\cred.xml e copiarvi i dati della chiave RSA.Create a file named C:\cred.xml and copy the RSA key data into it. Alla fine di questo articolo è disponibile un file cred.xml di esempio.A sample cred.xml file is at the end of this article.

    <ExtendedData>
      <PrivateKey>Copy the contents of private key here</PrivateKey>
      <PublicKey>Copy the contents of public key here</PublicKey>
    </ExtendedData>
    
  4. Aprire un prompt dei comandi e immettere il comando seguente per impostare i dati delle credenziali per l'account hpclab\hpcuser.Open a Command Prompt and enter the following command to set the credentials data for the hpclab\hpcuser account. Usare il parametro extendeddata per passare il nome del file C:\cred.xml creato per i dati della chiave.You use the extendeddata parameter to pass the name of C:\cred.xml file you created for the key data.

    hpccred setcreds /extendeddata:c:\cred.xml /user:hpclab\hpcuser /password:<UserPassword>
    

    Questo comando viene completato correttamente senza output.This command completes successfully without output. Dopo avere configurato le credenziali per gli account utente necessari per l'esecuzione dei progetti, archiviare il file cred.xml in un percorso sicuro oppure eliminarlo.After setting the credentials for the user accounts you need to run jobs, store the cred.xml file in a secure location, or delete it.

  5. Se la coppia di chiavi RSA è stata generata in uno dei nodi Linux, ricordare di eliminare le chiavi dopo averle usate.If you generated the RSA key pair on one of your Linux nodes, remember to delete the keys after you finish using them. Se HPC Pack rileva un file id_rsa o id_rsa.pub esistente, non configura il trust reciproco.If HPC Pack finds an existing id_rsa file or id_rsa.pub file, it does not set up mutual trust.

Importante

Non è consigliabile eseguire un processo di Linux come amministratore del cluster in un cluster condiviso, perché un processo inviato da un amministratore viene eseguito con l'account radice nei nodi Linux.We don’t recommend running a Linux job as a cluster administrator on a shared cluster, because a job submitted by an administrator runs under the root account on the Linux nodes. Un processo inviato da un utente non amministratore, tuttavia, viene eseguito con un account utente Linux locale, con lo stesso nome dell'utente del processo.However, a job submitted by a non-administrator user runs under a local Linux user account with the same name as the job user. In questo caso, HPC Pack configura il trust reciproco per questo utente Linux nei nodi allocati al processo.In this case, HPC Pack sets up mutual trust for this Linux user across the nodes allocated to the job. È possibile configurare manualmente l'utente Linux nei nodi Linux prima di eseguire il processo. In alternativa, HPC Pack crea automaticamente l'utente quando viene inviato il processo.You can set up the Linux user manually on the Linux nodes before running the job, or HPC Pack creates the user automatically when the job is submitted. Se HPC Pack crea l'utente, HPC Pack lo eliminerà dopo il completamento del processo.If HPC Pack creates the user, HPC Pack deletes it after the job completes. Per ridurre le minacce alla sicurezza, HPC Pack rimuove le chiavi dopo il completamento del processo.To reduce security threats, HPC Pack removes the keys after job completion.

Configurare una condivisione di file per i nodi LinuxSet up a file share for Linux nodes

Configurare ora una condivisione SMB standard su una cartella nel nodo head.Now set up a standard SMB share on a folder on the head node. Montare quindi la cartella condivisa nei nodi Linux per consentire a questi ultimi di accedere ai file dell'applicazione con un percorso comune.To allow the Linux nodes to access application files with a common path, mount the shared folder on the Linux nodes. In alternativa, è possibile usare un'altra opzione di condivisione, ad esempio una condivisione File di Azure, consigliata per molti scenari, oppure una condivisione NFS.If you want, you can use another file sharing option, such as an Azure Files share - recommended for many scenarios - or an NFS share. Per informazioni sulle opzioni di condivisione file e sulle procedure dettagliate, vedere Introduzione ai nodi di calcolo Linux in un cluster HPC Pack in Azure.See the file sharing information and detailed steps in Get started with Linux compute nodes in an HPC Pack Cluster in Azure.

  1. Creare una cartella sul nodo head e condividerla con tutti gli utenti, configurando privilegi di lettura/scrittura.Create a folder on the head node, and share it to Everyone by setting Read/Write privileges. Ad esempio, condividere C:\OpenFOAM nel nodo head come \\SUSE12RDMA-HN\OpenFOAM.For example, share C:\OpenFOAM on the head node as \\SUSE12RDMA-HN\OpenFOAM. In questo caso, SUSE12RDMA-HN è il nome host del nodo head.Here, SUSE12RDMA-HN is the host name of the head node.
  2. Aprire una finestra di Windows PowerShell ed eseguire i comandi seguenti:Open a Windows PowerShell window and run the following commands:

    clusrun /nodegroup:LinuxNodes mkdir -p /openfoam
    
    clusrun /nodegroup:LinuxNodes mount -t cifs //SUSE12RDMA-HN/OpenFOAM /openfoam -o vers=2.1`,username=<username>`,password='<password>'`,dir_mode=0777`,file_mode=0777
    

Il primo comando crea una cartella denominata /openfoam in tutti i nodi del gruppo LinuxNodes.The first command creates a folder named /openfoam on all nodes in the LinuxNodes group. Il secondo comando monta la cartella condivisa //SUSE12RDMA-HN/OpenFOAM nei nodi Linux con i bit dir_mode e file_mode impostati su 777.The second command mounts the shared folder //SUSE12RDMA-HN/OpenFOAM on the Linux nodes with dir_mode and file_mode bits set to 777. I valori di username e password nel comando devono corrispondere alle credenziali di un utente nel nodo head.The username and password in the command should be the credentials of a user on the head node.

Nota

Il simbolo "\" nel secondo comando è un simbolo di escape per PowerShell.</span><span class="sxs-lookup"><span data-stu-id="01e59-184">The “\\” symbol in the second command is an escape symbol for PowerShell. "\" significa "," (virgola) e fa parte del comando.</span><span class="sxs-lookup"><span data-stu-id="01e59-185">“\\,” means the “,” (comma character) is a part of the command.

Installare MPI e OpenFOAMInstall MPI and OpenFOAM

Per eseguire OpenFOAM come un processo MPI nella rete RDMA, è necessario compilare OpenFOAM con le librerie Intel MPI.To run OpenFOAM as an MPI job on the RDMA network, you need to compile OpenFOAM with the Intel MPI libraries.

Eseguire innanzitutto diversi comandi clusrun per installare le librerie Intel MPI (se non già presenti) e OpenFOAM nei nodi Linux.First, run several clusrun commands to install Intel MPI libraries (if not already installed) and OpenFOAM on your Linux nodes. Usare la condivisione del nodo head configurata in precedenza per condividere i file di installazione tra i nodi Linux.Use the head node share configured previously to share the installation files among the Linux nodes.

Importante

Questi passaggi di installazione e compilazione sono riportati come esempioThese installation and compiling steps are examples. e richiedono una conoscenza di base dell'amministrazione del sistema Linux per garantire che le librerie e i compilatori dipendenti siano installati correttamente.You need some knowledge of Linux system administration to ensure that dependent compilers and libraries are installed correctly. Potrebbe essere necessario modificare alcune variabili di ambiente o altre impostazioni per le versioni di Intel MPI e OpenFOAM in uso.You might need to modify certain environment variables or other settings for your versions of Intel MPI and OpenFOAM. Per informazioni dettagliate, vedere Guida all'installazione di Intel MPI Library per Linux e Installazione del pacchetto di origine di OpenFOAM per l'ambiente in uso.For details, see Intel MPI Library for Linux Installation Guide and OpenFOAM Source Pack Installation for your environment.

Installare Intel MPIInstall Intel MPI

Salvare il pacchetto di installazione scaricato per Intel MPI (in questo esempio l_mpi_p_5.0.3.048.tgz) in C:\OpenFoam nel nodo head in modo che i nodi Linux possano accedere a questo file da /openfoam.Save the downloaded installation package for Intel MPI (l_mpi_p_5.0.3.048.tgz in this example) in C:\OpenFoam on the head node so that the Linux nodes can access this file from /openfoam. Eseguire quindi il comando clusrun per installare Intel MPI Library in tutti i nodi Linux.Then run clusrun to install Intel MPI library on all the Linux nodes.

  1. I comandi seguenti consentono di copiare il pacchetto di installazione e di estrarlo nella cartella /opt/intel in ogni nodo.The following commands copy the installation package and extract it to /opt/intel on each node.

    clusrun /nodegroup:LinuxNodes mkdir -p /opt/intel
    
    clusrun /nodegroup:LinuxNodes cp /openfoam/l_mpi_p_5.0.3.048.tgz /opt/intel/
    
    clusrun /nodegroup:LinuxNodes tar -xzf /opt/intel/l_mpi_p_5.0.3.048.tgz -C /opt/intel/
    
  2. Per eseguire un'installazione di Intel MPI Library invisibile all'utente, usare un file silent.cfg.To install Intel MPI Library silently, use a silent.cfg file. Un esempio è disponibile nei file di esempio alla fine dell'articolo.You can find an example in the sample files at the end of this article. Posizionare questo file nella cartella condivisa /openfoam.Place this file in the shared folder /openfoam. Per informazioni dettagliate sul file silent.cfg, vedere l'articolo relativo alla guida all'installazione di Intel MPI Library per Linux - Installazione invisibile all'utente.For details about the silent.cfg file, see Intel MPI Library for Linux Installation Guide - Silent Installation.

    Suggerimento

    Assicurarsi di salvare il file silent.cfg come file di testo con terminazioni di riga Linux (solo LF, non CR LF),Make sure that you save your silent.cfg file as a text file with Linux line endings (LF only, not CR LF). in modo da assicurarne l'esecuzione corretta nei nodi Linux.This step ensures that it runs properly on the Linux nodes.

  3. Installare Intel MPI Library in modalità invisibile all'utente.Install Intel MPI Library in silent mode.

    clusrun /nodegroup:LinuxNodes bash /opt/intel/l_mpi_p_5.0.3.048/install.sh --silent /openfoam/silent.cfg
    

Configurare MPIConfigure MPI

Ai fini del test, aggiungere le righe seguenti al file /etc/security/limits.conf in ogni nodo Linux:For testing, you should add the following lines to the /etc/security/limits.conf on each of the Linux nodes:

clusrun /nodegroup:LinuxNodes echo "*               hard    memlock         unlimited" `>`> /etc/security/limits.conf
clusrun /nodegroup:LinuxNodes echo "*               soft    memlock         unlimited" `>`> /etc/security/limits.conf

Dopo aver aggiornato il file limits.conf, riavviare i nodi Linux.Restart the Linux nodes after you update the limits.conf file. Ad esempio, usare il comando clusrun seguente:For example, use the following clusrun command:

clusrun /nodegroup:LinuxNodes systemctl reboot

Dopo il riavvio, assicurarsi che la cartella condivisa sia montata come /openfoam.After restarting, ensure that the shared folder is mounted as /openfoam.

Compilare e installare OpenFOAMCompile and install OpenFOAM

Salvare il pacchetto di installazione scaricato per OpenFOAM Source Pack (in questo esempio OpenFOAM-2.3.1.tgz) in C:\OpenFoam nel nodo head in modo che i nodi Linux possano accedere a questo file da /openfoam.Save the downloaded installation package for the OpenFOAM Source Pack (OpenFOAM-2.3.1.tgz in this example) to C:\OpenFoam on the head node so that the Linux nodes can access this file from /openfoam. Eseguire quindi i comandi clusrun per compilare OpenFOAM in tutti i nodi Linux.Then run clusrun commands to compile OpenFOAM on all the Linux nodes.

  1. Creare una cartella /opt/OpenFOAM in ogni nodo Linux, copiare il pacchetto di origine a questa cartella e decomprimerlo in questa posizione.Create a folder /opt/OpenFOAM on each Linux node, copy the source package to this folder, and extract it there.

    clusrun /nodegroup:LinuxNodes mkdir -p /opt/OpenFOAM
    
    clusrun /nodegroup:LinuxNodes cp /openfoam/OpenFOAM-2.3.1.tgz /opt/OpenFOAM/
    
    clusrun /nodegroup:LinuxNodes tar -xzf /opt/OpenFOAM/OpenFOAM-2.3.1.tgz -C /opt/OpenFOAM/
    
  2. Per compilare OpenFOAM con Intel MPI Library, è prima necessario configurare alcune variabili di ambiente per Intel MPI e OpenFOAM.To compile OpenFOAM with the Intel MPI Library, first set up some environment variables for both Intel MPI and OpenFOAM. A tale scopo, usare uno script bash denominato settings.sh per impostare le variabili.Use a bash script called settings.sh to set the variables. Un esempio è disponibile nei file di esempio alla fine dell'articolo.You can find an example in the sample files at the end of this article. Copiare questo file (salvato con terminazioni riga Linux) nella cartella condivisa /openfoam.Place this file (saved with Linux line endings) in the shared folder /openfoam. Questo file contiene anche le impostazioni per i runtime MPI e OpenFOAM che verranno usati più avanti per eseguire un processo OpenFOAM.This file also contains settings for the MPI and OpenFOAM runtimes that you use later to run an OpenFOAM job.
  3. Installare i pacchetti dipendenti necessari per compilare OpenFOAM.Install dependent packages needed to compile OpenFOAM. A seconda della distribuzione Linux corrente, potrebbe essere prima necessario aggiungere un repository.Depending on your Linux distribution, you might first need to add a repository. Eseguire comandi clusrun simili al seguente:Run clusrun commands similar to the following:

    clusrun /nodegroup:LinuxNodes zypper ar http://download.opensuse.org/distribution/13.2/repo/oss/suse/ opensuse
    
    clusrun /nodegroup:LinuxNodes zypper -n --gpg-auto-import-keys install --repo opensuse --force-resolution -t pattern devel_C_C++
    

    Se necessario, stabilire una connessione a ogni nodo Linux tramite SSH per eseguire i comandi e verificare che funzionino correttamente.If necessary, SSH to each Linux node to run the commands to confirm that they run properly.

  4. Eseguire il comando seguente per compilare OpenFOAM.Run the following command to compile OpenFOAM. Il processo di compilazione richiede diverso tempo e genera una grande quantità di informazioni di log nell'output standard. Usare quindi l'opzione /interleaved per visualizzare l'output con interfoliazione.The compilation process takes some time to complete and generates a large amount of log information to standard output, so use the /interleaved option to display the output interleaved.

    clusrun /nodegroup:LinuxNodes /interleaved source /openfoam/settings.sh `&`& /opt/OpenFOAM/OpenFOAM-2.3.1/Allwmake
    

    Nota

    Il simbolo "\" nel comando è un simbolo di escape per PowerShell.</span><span class="sxs-lookup"><span data-stu-id="01e59-225">The “\\” symbol in the command is an escape symbol for PowerShell. "\&" significa che il simbolo "&" è parte del comando.</span><span class="sxs-lookup"><span data-stu-id="01e59-226">“\\&” means the “&” is a part of the command.

Preparare l'esecuzione di un processo OpenFOAMPrepare to run an OpenFOAM job

A questo punto è possibile eseguire un processo MPI denominato sloshingTank3D, uno degli esempi di OpenFOAM, in due nodi Linux.Now get ready to run an MPI job called sloshingTank3D, which is one of the OpenFoam samples, on two Linux nodes.

Configurare l'ambiente di runtimeSet up the runtime environment

Per configurare gli ambienti di runtime per MPI e OpenFOAM in tutti i nodi Linux, eseguire il comando seguente in una finestra di Windows PowerShell nel nodo head.To set up the runtime environments for MPI and OpenFOAM on the Linux nodes, run the following command in a Windows PowerShell window on the head node. (Questo comando è valido solamente per SUSE Linux).(This command is valid for SUSE Linux only.)

clusrun /nodegroup:LinuxNodes cp /openfoam/settings.sh /etc/profile.d/

Preparare i dati di esempioPrepare sample data

Usare la condivisione del nodo head configurata in precedenza per condividere i file tra i nodi Linux (montata come /openfoam).Use the head node share you configured previously to share files among the Linux nodes (mounted as /openfoam).

  1. Stabilire una connessione SSH a uno dei nodi di calcolo Linux.SSH to one of your Linux compute nodes.
  2. Eseguire il comando seguente per configurare l'ambiente di runtime OpenFOAM, se non è già stato fatto.Run the following command to set up the OpenFOAM runtime environment, if you haven’t already done this.

    $ source /openfoam/settings.sh
    
  3. Copiare l'esempio sloshingTank3D nella cartella condivisa e passare a questa cartella.Copy the sloshingTank3D sample to the shared folder and navigate to it.

    $ cp -r $FOAM_TUTORIALS/multiphase/interDyMFoam/ras/sloshingTank3D /openfoam/
    
    $ cd /openfoam/sloshingTank3D
    
  4. Quando si usano i parametri predefiniti di questo esempio, l'esecuzione può richiedere una decina di minuti ed è quindi consigliabile modificarne alcuni per accelerare l'operazione.When you use the default parameters of this sample, it can take tens of minutes to run, so you might want to modify some parameters to make it run faster. Un modo semplice prevede la modifica delle variabili delle fasi temporali deltaT e writeInterval nel file system/controlDict,One simple choice is to modify the time step variables deltaT and writeInterval in the system/controlDict file. in cui vengono archiviati tutti i dati di input relativi al controllo di tempo, lettura e scrittura dei dati della soluzione.This file stores all input data relating to the control of time and reading and writing solution data. È ad esempio possibile modificare il valore di deltaT da 0,05 a 0,5 e il valore di writeInterval da 0,05 a 0,5.For example, you could change the value of deltaT from 0.05 to 0.5 and the value of writeInterval from 0.05 to 0.5.

    Modificare le variabili delle fasi

  5. Specificare i valori desiderati per le variabili nel file system/decomposeParDict.Specify desired values for the variables in the system/decomposeParDict file. Questo esempio usa due nodi Linux con 8 core ciascuno. Impostare quindi numberOfSubdomains su 16 e il numero di hierarchicalCoeffs su (1 1 16) per specificare di eseguire OpenFOAM in parallelo con 16 processi.This example uses two Linux nodes each with 8 cores, so set numberOfSubdomains to 16 and n of hierarchicalCoeffs to (1 1 16), which means run OpenFOAM in parallel with 16 processes. Per altre informazioni, vedere la sezione 3.4 del manuale dell'utente di OpenFOAM relativa all'esecuzione di applicazioni in parallelo.For more information, see OpenFOAM User Guide: 3.4 Running applications in parallel.

    Scomporre i processi

  6. Eseguire i comandi seguenti dalla directory sloshingTank3D per preparare i dati di esempio.Run the following commands from the sloshingTank3D directory to prepare the sample data.

    $ . $WM_PROJECT_DIR/bin/tools/RunFunctions
    
    $ m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
    
    $ runApplication blockMesh
    
    $ cp 0/alpha.water.org 0/alpha.water
    
    $ runApplication setFields  
    
  7. Nel nodo head i file dei dati di esempio verranno copiati in C:\OpenFoam\sloshingTank3D.On the head node, you should see the sample data files are copied into C:\OpenFoam\sloshingTank3D. C:\OpenFoam è la cartella condivisa nel nodo head.(C:\OpenFoam is the shared folder on the head node.)

    File di dati nel nodo head

File host per mpirunHost file for mpirun

In questo passaggio viene creato un file host (un elenco di nodi di calcolo) usato dal comando mpirun .In this step, you create a host file (a list of compute nodes) which the mpirun command uses.

  1. In uno dei nodi Linux creare un file denominato hostfile in /openfoam, in modo che tale file sia disponibile nel percorso /openfoam/hostfile in tutti i nodi Linux.On one of the Linux nodes, create a file named hostfile under /openfoam, so this file can be reached at /openfoam/hostfile on all Linux nodes.
  2. Scrivere i nomi dei nodi Linux in questo file.Write your Linux node names into this file. In questo esempio il file contiene i nomi seguenti:In this example, the file contains the following names:

    SUSE12RDMA-LN1
    SUSE12RDMA-LN2
    

    Suggerimento

    È anche possibile creare questo file in C:\OpenFoam\hostfile nel nodo head.You can also create this file at C:\OpenFoam\hostfile on the head node. Se si sceglie questa opzione, è necessario salvare lo script come file di testo con terminazioni di riga Linux (solo LF, non CR LF),If you choose this option, save it as a text file with Linux line endings (LF only, not CR LF). in modo da assicurarne l'esecuzione corretta nei nodi Linux.This ensures that it runs properly on the Linux nodes.

    Wrapper di script bashBash script wrapper

    Se sono presenti molti nodi Linux e si vuole eseguire il processo solo su alcuni di essi, non è consigliabile usare un file di host predefinito, perché i nodi che verranno allocati al processo non sono noti.If you have many Linux nodes and you want your job to run on only some of them, it’s not a good idea to use a fixed host file, because you don’t know which nodes will be allocated to your job. In questo caso, scrivere un wrapper di script bash per il comando mpirun per creare automaticamente il file host.In this case, write a bash script wrapper for mpirun to create the host file automatically. È possibile trovare un wrapper di script bash di esempio denominato hpcimpirun.sh alla fine di questo articolo e salvarlo come /openfoam/hpcimpirun.sh. Questo script di esempio esegue queste operazioni:You can find an example bash script wrapper called hpcimpirun.sh at the end of this article, and save it as /openfoam/hpcimpirun.sh. This example script does the following:

    1. Configura le variabili di ambiente per mpirune alcuni parametri di comando aggiuntivi per eseguire il processo MPI attraverso la rete RDMA.Sets up the environment variables for mpirun, and some addition command parameters to run the MPI job through the RDMA network. In questo caso, imposta le variabili seguenti:In this case, it sets the following variables:

      • I_MPI_FABRICS=shm:daplI_MPI_FABRICS=shm:dapl
      • I_MPI_DAPL_PROVIDER=ofa-v2-ib0I_MPI_DAPL_PROVIDER=ofa-v2-ib0
      • I_MPI_DYNAMIC_CONNECTION=0I_MPI_DYNAMIC_CONNECTION=0
    2. Crea un file host in base alla variabile di ambiente $CCP_NODES_CORES, che viene impostata dal nodo head HPC quando viene attivato il processo.Creates a host file according to the environment variable $CCP_NODES_CORES, which is set by the HPC head node when the job is activated.

      Il formato della variabile $CCP_NODES_CORES segue questo modello:The format of $CCP_NODES_CORES follows this pattern:

      <Number of nodes> <Name of node1> <Cores of node1> <Name of node2> <Cores of node2>...`
      

      dovewhere

      • <Number of nodes> : è il numero di nodi allocato a questo processo.<Number of nodes> - the number of nodes allocated to this job.
      • <Name of node_n_...> : è il nome di ogni nodo allocato a questo processo.<Name of node_n_...> - the name of each node allocated to this job.
      • <Cores of node_n_...>: è il numero di core nel nodo allocato a questo processo.<Cores of node_n_...> - the number of cores on the node allocated to this job.

      Ad esempio, se per l'esecuzione del processo sono necessari due core, il formato di $CCP_NODES_CORES è simile a:For example, if the job needs two nodes to run, $CCP_NODES_CORES is similar to

      2 SUSE12RDMA-LN1 8 SUSE12RDMA-LN2 8
      
    3. Chiama il comando mpirun e aggiunge due parametri nella riga di comando.Calls the mpirun command and appends two parameters to the command line.

      • --hostfile <hostfilepath>: <hostfilepath> - è il percorso del file host creato dallo script--hostfile <hostfilepath>: <hostfilepath> - the path of the host file the script creates
      • -np ${CCP_NUMCPUS}: ${CCP_NUMCPUS} - è una variabile di ambiente impostata dal nodo head HPC Pack, che archivia il numero totale di core allocati a questo processo.-np ${CCP_NUMCPUS}: ${CCP_NUMCPUS} - an environment variable set by the HPC Pack head node, which stores the number of total cores allocated to this job. In questo caso specifica il numero di processi per mpirun.In this case, it specifies the number of processes for mpirun.

Inviare un processo OpenFOAMSubmit an OpenFOAM job

A questo punto è possibile inviare un processo in HPC Cluster Manager.Now you can submit a job in HPC Cluster Manager. È quindi necessario passare lo script hpcimpirun.sh nelle righe di comando per alcune delle attività del processo.You need to pass the script hpcimpirun.sh in the command lines for some of the job tasks.

  1. Connettersi al nodo head del cluster e avviare HPC Cluster Manager.Connect to your cluster head node and start HPC Cluster Manager.
  2. In Gestione risorse assicurarsi che lo stato dei nodi di calcolo Linux sia Online.In Resource Management, ensure that the Linux compute nodes are in the Online state. Se lo stato è diverso, selezionarli e fare clic su Portare Online.If they are not, select them and click Bring Online.
  3. In Job Management (Gestione processi) fare clic su New Job (Nuovo processo).In Job Management, click New Job.
  4. Immettere un nome per il processo, ad esempio sloshingTank3D.Enter a name for job such as sloshingTank3D.

    Dettagli del processo

  5. In Risorse del processoscegliere "Node" come tipo di risorsa e impostare il valore di Minimum su 2.In Job resources, choose the type of resource as “Node” and set the Minimum to 2. Questa configurazione esegue il processo in due nodi Linux che, in questo esempio, presentano otto core ciascuno.This configuration runs the job on two Linux nodes, each of which has eight cores in this example.

    Risorse del processo

  6. Fare clic su Edit Tasks (Modifica attività) nel riquadro di spostamento sinistro e quindi fare clic su Add (Aggiungi) per aggiungere un'attività al processo.Click Edit Tasks in the left navigation, and then click Add to add a task to the job. Aggiungere al processo quattro attività con le righe di comando e le impostazioni seguenti.Add four tasks to the job with the following command lines and settings.

    Nota

    L'esecuzione di source /openfoam/settings.sh configura gli ambienti di runtime per OpenFOAM e MPI, quindi ognuna delle attività seguenti chiama questo script prima di eseguire il comando OpenFOAM.Running source /openfoam/settings.sh sets up the OpenFOAM and MPI runtime environments, so each of the following tasks calls it before the OpenFOAM command.

    • Attività 1.Task 1. Eseguire decomposePar per generare i file di dati per l'esecuzione di interDyMFoam in parallelo.Run decomposePar to generate data files for running interDyMFoam in parallel.

      • Assegnare un nodo all'attivitàAssign one node to the task
      • Riga di comando - source /openfoam/settings.sh && decomposePar -force > /openfoam/decomposePar${CCP_JOBID}.logCommand line - source /openfoam/settings.sh && decomposePar -force > /openfoam/decomposePar${CCP_JOBID}.log
      • Directory di lavoro - /openfoam/sloshingTank3DWorking directory - /openfoam/sloshingTank3D

      Vedere la figura seguente.See the following figure. Le attività restanti vengono configurate in modo analogo.You configure the remaining tasks similarly.

      Dettagli dell'attività 1

    • Attività 2.Task 2. Eseguire interDyMFoam in parallelo per calcolare l'esempio.Run interDyMFoam in parallel to compute the sample.

      • Assegnare due nodi all'attivitàAssign two nodes to the task
      • Riga di comando - source /openfoam/settings.sh && /openfoam/hpcimpirun.sh interDyMFoam -parallel > /openfoam/interDyMFoam${CCP_JOBID}.logCommand line - source /openfoam/settings.sh && /openfoam/hpcimpirun.sh interDyMFoam -parallel > /openfoam/interDyMFoam${CCP_JOBID}.log
      • Directory di lavoro - /openfoam/sloshingTank3DWorking directory - /openfoam/sloshingTank3D
    • Attività 3.Task 3. Eseguire reconstructPar per unire i set delle directory temporali da ogni directory processore_N_ in un singolo set.Run reconstructPar to merge the sets of time directories from each processor_N_ directory into a single set.

      • Assegnare un nodo all'attivitàAssign one node to the task
      • Riga di comando - source /openfoam/settings.sh && reconstructPar > /openfoam/reconstructPar${CCP_JOBID}.logCommand line - source /openfoam/settings.sh && reconstructPar > /openfoam/reconstructPar${CCP_JOBID}.log
      • Directory di lavoro - /openfoam/sloshingTank3DWorking directory - /openfoam/sloshingTank3D
    • Attività 4.Task 4. Eseguire foamToEnsight in parallelo per convertire i file dei risultati di OpenFOAM nel formato EnSight e posizionare i file EnSight in una directory denominata Ensight nella directory case.Run foamToEnsight in parallel to convert the OpenFOAM result files into EnSight format and place the EnSight files in a directory named Ensight in the case directory.

      • Assegnare due nodi all'attivitàAssign two nodes to the task
      • Riga di comando - source /openfoam/settings.sh && /openfoam/hpcimpirun.sh foamToEnsight -parallel > /openfoam/foamToEnsight${CCP_JOBID}.logCommand line - source /openfoam/settings.sh && /openfoam/hpcimpirun.sh foamToEnsight -parallel > /openfoam/foamToEnsight${CCP_JOBID}.log
      • Directory di lavoro - /openfoam/sloshingTank3DWorking directory - /openfoam/sloshingTank3D
  7. Aggiungere a queste attività le dipendenze in ordine di attività crescente.Add dependencies to these tasks in ascending task order.

    Dipendenze dell'attività

  8. Fare clic su Submit per eseguire il processo.Click Submit to run this job.

    Per impostazione predefinita, HPC Pack invia il processo usando l'account utente attualmente connesso.By default, HPC Pack submits the job as your current logged-on user account. Dopo aver fatto clic su Submit, potrebbe essere visualizzata una finestra di dialogo che richiede l'immissione del nome utente e della password.After you click Submit, you might see a dialog box prompting you to enter the user name and password.

    Credenziali del processo

    In alcune condizioni, HPC Pack ricorda le informazioni utente inserite in precedenza e non visualizza questa finestra di dialogo.Under some conditions, HPC Pack remembers the user information you input before and doesn’t show this dialog box. Per fare in modo che HPC Pack la mostri di nuovo, immettere il comando seguente nel prompt dei comandi e quindi inviare il processo.To make HPC Pack show it again, enter the following command at a Command prompt and then submit the job.

    hpccred delcreds
    
  9. Il processo richiede da alcuni minuti a diverse ore in base ai parametri impostati per l'esempio.The job takes from tens of minutes to several hours according to the parameters you have set for the sample. Nella mappa termica viene visualizzato il processo in esecuzione nei nodi Linux.In the heat map, you see the job running on the Linux nodes.

    Mappa termica

    In ogni nodo vengono avviati otto processi.On each node, eight processes are started.

    Processi Linux

  10. Al termine del processo, i risultati del processo saranno disponibili in C:\OpenFoam\sloshingTank3D e i file di log in C:\OpenFoam.When the job finishes, find the job results in folders under C:\OpenFoam\sloshingTank3D, and the log files at C:\OpenFoam.

Visualizzare i risultati in EnSightView results in EnSight

Facoltativamente è possibile usare EnSight per visualizzare e analizzare i risultati del processo OpenFOAM.Optionally use EnSight to visualize and analyze the results of the OpenFOAM job. Per altre informazioni sulla visualizzazione e l'animazione in EnSight, vedere questa guida video.For more about visualization and animation in EnSight, see this video guide.

  1. Dopo aver installato EnSight nel nodo head, avviarlo.After you install EnSight on the head node, start it.
  2. Aprire C:\OpenFoam\sloshingTank3D\EnSight\sloshingTank3D.case.Open C:\OpenFoam\sloshingTank3D\EnSight\sloshingTank3D.case.

    Nel visualizzatore viene visualizzato un serbatoio.You see a tank in the viewer.

    Serbatoio in EnSight

  3. Creare un oggetto Isosurface da internalMesh e scegliere la variabile alpha_water.Create an Isosurface from internalMesh, and then choose the variable alpha_water.

    Creare un oggetto isosurface

  4. Impostare il colore per l'oggetto Isosurface_part creato nel passaggio precedente.Set the color for Isosurface_part created in the previous step. Ad esempio, impostarlo su azzurro.For example, set it to water blue.

    Modificare il colore dell'oggetto isosurface

  5. Creare un oggetto Iso-volume da walls selezionando walls nel riquadro Parti e fare clic sul pulsante Isosurfaces sulla barra degli strumenti.Create an Iso-volume from walls by selecting walls in the Parts panel and click the Isosurfaces button in the toolbar.
  6. Nella finestra di dialogo selezionare Tipo per Isovolume e impostare l'opzione Min di Intervallo di Isovolume su 0,5.In the dialog box, select Type as Isovolume and set the Min of Isovolume range to 0.5. Per creare l'isovolume, fare clic su Create with selected parts(Crea con parti selezionate).To create the isovolume, click Create with selected parts.
  7. Impostare il colore per l'oggetto Iso_volume_part creato nel passaggio precedente.Set the color for Iso_volume_part created in the previous step. Ad esempio, impostarlo su blu.For example, set it to deep water blue.
  8. Impostare il colore per walls.Set the color for walls. Ad esempio, impostarlo su bianco trasparente.For example, set it to transparent white.
  9. Fare clic su Play per visualizzare i risultati della simulazione.Now click Play to see the results of the simulation.

    Risultato per il serbatoio

File di esempioSample files

File di configurazione XML di esempio per la distribuzione di cluster tramite script PowerShellSample XML configuration file for cluster deployment by PowerShell script

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
 <Subscription>
   <SubscriptionName>Subscription-1</SubscriptionName>
   <StorageAccount>allvhdsje</StorageAccount>
 </Subscription>
 <Location>Japan East</Location>  
 <VNet>
   <VNetName>suse12rdmavnet</VNetName>
   <SubnetName>SUSE12RDMACluster</SubnetName>
 </VNet>
 <Domain>
   <DCOption>HeadNodeAsDC</DCOption>
   <DomainFQDN>hpclab.local</DomainFQDN>
 </Domain>
 <Database>
   <DBOption>LocalDB</DBOption>
 </Database>
 <HeadNode>
   <VMName>SUSE12RDMA-HN</VMName>
   <ServiceName>suse12rdma-je</ServiceName>
   <VMSize>A8</VMSize>
   <EnableRESTAPI />
   <EnableWebPortal />
 </HeadNode>
 <LinuxComputeNodes>
   <VMNamePattern>SUSE12RDMA-LN%1%</VMNamePattern>
   <ServiceName>suse12rdma-je</ServiceName>
   <VMSize>A8</VMSize>
   <NodeCount>2</NodeCount>
     <ImageName>b4590d9e3ed742e4a1d46e5424aa335e__suse-sles-12-hpc-v20150708</ImageName>
 </LinuxComputeNodes>
</IaaSClusterConfig>

File cred.xml di esempioSample cred.xml file

<ExtendedData>
  <PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAxJKBABhnOsE9eneGHvsjdoXKooHUxpTHI1JVunAJkVmFy8JC
qFt1pV98QCtKEHTC6kQ7tj1UT2N6nx1EY9BBHpZacnXmknpKdX4Nu0cNlSphLpru
lscKPR3XVzkTwEF00OMiNJVknq8qXJF1T3lYx3rW5EnItn6C3nQm3gQPXP0ckYCF
Jdtu/6SSgzV9kaapctLGPNp1Vjf9KeDQMrJXsQNHxnQcfiICp21NiUCiXosDqJrR
AfzePdl0XwsNngouy8t0fPlNSngZvsx+kPGh/AKakKIYS0cO9W3FmdYNW8Xehzkc
VzrtJhU8x21hXGfSC7V0ZeD7dMeTL3tQCVxCmwIDAQABAoIBAQCve8Jh3Wc6koxZ
qh43xicwhdwSGyliZisoozYZDC/ebDb/Ydq0BYIPMiDwADVMX5AqJuPPmwyLGtm6
9hu5p46aycrQ5+QA299g6DlF+PZtNbowKuvX+rRvPxagrTmupkCswjglDUEYUHPW
05wQaNoSqtzwS9Y85M/b24FfLeyxK0n8zjKFErJaHdhVxI6cxw7RdVlSmM9UHmah
wTkW8HkblbOArilAHi6SlRTNZG4gTGeDzPb7fYZo3hzJyLbcaNfJscUuqnAJ+6pT
iY6NNp1E8PQgjvHe21yv3DRoVRM4egqQvNZgUbYAMUgr30T1UoxnUXwk2vqJMfg2
Nzw0ESGRAoGBAPkfXjjGfc4HryqPkdx0kjXs0bXC3js2g4IXItK9YUFeZzf+476y
OTMQg/8DUbqd5rLv7PITIAqpGs39pkfnyohPjOe2zZzeoyaXurYIPV98hhH880uH
ZUhOxJYnlqHGxGT7p2PmmnAlmY4TSJrp12VnuiQVVVsXWOGPqHx4S4f9AoGBAMn/
vuea7hsCgwIE25MJJ55FYCJodLkioQy6aGP4NgB89Azzg527WsQ6H5xhgVMKHWyu
Q1snp+q8LyzD0i1veEvWb8EYifsMyTIPXOUTwZgzaTTCeJNHdc4gw1U22vd7OBYy
nZCU7Tn8Pe6eIMNztnVduiv+2QHuiNPgN7M73/x3AoGBAOL0IcmFgy0EsR8MBq0Z
ge4gnniBXCYDptEINNBaeVStJUnNKzwab6PGwwm6w2VI3thbXbi3lbRAlMve7fKK
B2ghWNPsJOtppKbPCek2Hnt0HUwb7qX7Zlj2cX/99uvRAjChVsDbYA0VJAxcIwQG
TxXx5pFi4g0HexCa6LrkeKMdAoGAcvRIACX7OwPC6nM5QgQDt95jRzGKu5EpdcTf
g4TNtplliblLPYhRrzokoyoaHteyxxak3ktDFCLj9eW6xoCZRQ9Tqd/9JhGwrfxw
MS19DtCzHoNNewM/135tqyD8m7pTwM4tPQqDtmwGErWKj7BaNZARUlhFxwOoemsv
R6DbZyECgYEAhjL2N3Pc+WW+8x2bbIBN3rJcMjBBIivB62AwgYZnA2D5wk5o0DKD
eesGSKS5l22ZMXJNShgzPKmv3HpH22CSVpO0sNZ6R+iG8a3oq4QkU61MT1CfGoMI
a8lxTKnZCsRXU1HexqZs+DSc+30tz50bNqLdido/l5B4EJnQP03ciO0=
-----END RSA PRIVATE KEY-----</PrivateKey>
  <PublicKey>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEkoEAGGc6wT16d4Ye+yN2hcqigdTGlMcjUlW6cAmRWYXLwkKoW3WlX3xAK0oQdMLqRDu2PVRPY3qfHURj0EEellpydeaSekp1fg27Rw2VKmEumu6Wxwo9HddXORPAQXTQ4yI0lWSerypckXVPeVjHetbkSci2foLedCbeBA9c/RyRgIUl227/pJKDNX2Rpqly0sY82nVWN/0p4NAyslexA0fGdBx+IgKnbU2JQKJeiwOomtEB/N492XRfCw2eCi7Ly3R8+U1KeBm+zH6Q8aH8ApqQohhLRw71bcWZ1g1bxd6HORxXOu0mFTzHbWFcZ9ILtXRl4Pt0x5Mve1AJXEKb username@servername;</PublicKey>
</ExtendedData>

File silent.cfg di esempio per l'installazione di MPISample silent.cfg file to install MPI

# Patterns used to check silent configuration file
#
# anythingpat - any string
# filepat     - the file location pattern (/file/location/to/license.lic)
# lspat       - the license server address pattern (0123@hostname)
# snpat       - the serial number pattern (ABCD-01234567)

# accept EULA, valid values are: {accept, decline}
ACCEPT_EULA=accept

# optional error behavior, valid values are: {yes, no}
CONTINUE_WITH_OPTIONAL_ERROR=yes

# install location, valid values are: {/opt/intel, filepat}
PSET_INSTALL_DIR=/opt/intel

# continue with overwrite of existing installation directory, valid values are: {yes, no}
CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes

# list of components to install, valid values are: {ALL, DEFAULTS, anythingpat}
COMPONENTS=DEFAULTS

# installation mode, valid values are: {install, modify, repair, uninstall}
PSET_MODE=install

# directory for non-RPM database, valid values are: {filepat}
#NONRPM_DB_DIR=filepat

# Serial number, valid values are: {snpat}
#ACTIVATION_SERIAL_NUMBER=snpat

# License file or license server, valid values are: {lspat, filepat}
#ACTIVATION_LICENSE_FILE=

# Activation type, valid values are: {exist_lic, license_server, license_file, trial_lic, serial_number}
ACTIVATION_TYPE=trial_lic

# Path to the cluster description file, valid values are: {filepat}
#CLUSTER_INSTALL_MACHINES_FILE=filepat

# Intel(R) Software Improvement Program opt-in, valid values are: {yes, no}
PHONEHOME_SEND_USAGE_DATA=no

# Perform validation of digital signatures of RPM files, valid values are: {yes, no}
SIGNING_ENABLED=yes

# Select yes to enable mpi-selector integration, valid values are: {yes, no}
ENVIRONMENT_REG_MPI_ENV=no

# Select yes to update ld.so.conf, valid values are: {yes, no}
ENVIRONMENT_LD_SO_CONF=no

Script settings.sh di esempioSample settings.sh script

#!/bin/bash

# impi
source /opt/intel/impi/5.0.3.048/bin64/mpivars.sh
export MPI_ROOT=$I_MPI_ROOT
export I_MPI_FABRICS=shm:dapl
export I_MPI_DAPL_PROVIDER=ofa-v2-ib0
export I_MPI_DYNAMIC_CONNECTION=0

# openfoam
export FOAM_INST_DIR=/opt/OpenFOAM
source /opt/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc
export WM_MPLIB=INTELMPI

Script hpccharmrun.sh di esempioSample hpcimpirun.sh script

#!/bin/bash

# The path of this script
SCRIPT_PATH="$( dirname "${BASH_SOURCE[0]}" )"

# Set mpirun runtime evironment
source /opt/intel/impi/5.0.3.048/bin64/mpivars.sh
export MPI_ROOT=$I_MPI_ROOT
export I_MPI_FABRICS=shm:dapl
export I_MPI_DAPL_PROVIDER=ofa-v2-ib0
export I_MPI_DYNAMIC_CONNECTION=0

# mpirun command
MPIRUN=mpirun
# Argument of "--hostfile"
NODELIST_OPT="--hostfile"
# Argument of "-np"
NUMPROCESS_OPT="-np"

# Get node information from ENVs
NODESCORES=(${CCP_NODES_CORES})
COUNT=${#NODESCORES[@]}

if [ ${COUNT} -eq 0 ]
then
    # CCP_NODES_CORES is not found or is empty, just run the mpirun without hostfile arg.
    ${MPIRUN} $*
else
    # Create the hostfile file
    NODELIST_PATH=${SCRIPT_PATH}/hostfile_$$

    # Get every node name and write into the hostfile file
    I=1
    while [ ${I} -lt ${COUNT} ]
    do
        echo "${NODESCORES[${I}]}" >> ${NODELIST_PATH}
        let "I=${I}+2"
    done

    # Run the mpirun with hostfile arg
    ${MPIRUN} ${NUMPROCESS_OPT} ${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*

    RTNSTS=$?
    rm -f ${NODELIST_PATH}
fi

exit ${RTNSTS}