Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Distribuire un cluster con un modello di Resource Manager
Usare un cluster a nodo head singolo per i carichi di lavoro Linux per distribuire il cluster
Si noti che
Compute Node Imagedevono essere quelli con suffissoHPCeCompute Node VM Sizedevono essereStandard_H16roStandard_H16mrnella serie H in modo che il cluster possa essere in grado di supportare RDMA.
Eseguire Intel MPI Benchmark Pingpong
Accedere al nodo head hpc6267 e portare i nodi online
Inviare un processo per eseguire MPI Pingpong tra i nodi di calcolo Linux
job submit /numnodes:2 "source /opt/intel/impi/`ls /opt/intel/impi`/bin64/mpivars.sh && mpirun -env I_MPI_FABRICS=shm:dapl -env I_MPI_DAPL_PROVIDER=ofa-v2-ib0 -env I_MPI_DYNAMIC_CONNECTION=0 -env I_MPI_FALLBACK_DEVICE=0 -f $CCP_MPI_HOSTFILE -ppn 1 IMB-MPI1 pingpong | tail -n30"Il file host o il file del computer per l'attività MPI viene generato automaticamente
La variabile
$CCP_MPI_HOSTFILEdi ambiente può essere usata nel comando task per ottenere il nome fileLa variabile
$CCP_MPI_HOSTFILE_FORMATdi ambiente può essere impostata per specificare il formato del file host o del file del computerIl formato di file host predefinito è simile al seguente:
nodename1 nodename2 … nodenameNQuando
$CCP_MPI_HOSTFILE_FORMAT=1, il formato è simile al seguente:nodename1:4 nodename2:4 … nodenameN:4Quando
$CCP_MPI_HOSTFILE_FORMAT=2, il formato è simile al seguente:nodename1 slots=4 nodename2 slots=4 … nodenameN slots=4Quando
$CCP_MPI_HOSTFILE_FORMAT=3, il formato è simile al seguente:nodename1 4 nodename2 4 … nodenameN 4
Controllare il risultato dell'attività in Gestione cluster HPC Pack 2016
Eseguire il carico di lavoro OpenFOAM
Scaricare e installare Intel MPI
Intel MPI è già installato nell'immagine
CentOS_7.4_HPCLinux, ma è necessaria una versione più recente per la compilazione di OpenFOAM, che può essere scaricata dalla libreria Intel MPIScaricare e installare automaticamente Intel MPI con clusrun
clusrun /nodegroup:LinuxNodes /interleaved "wget https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13063/l_mpi_2018.3.222.tgz && tar -zxvf l_mpi_2018.3.222.tgz && sed -i -e 's/ACCEPT_EULA=decline/ACCEPT_EULA=accept/g' ./l_mpi_2018.3.222/silent.cfg && ./l_mpi_2018.3.222/install.sh --silent ./l_mpi_2018.3.222/silent.cfg"
Scaricare e compilare OpenFOAM
I pacchetti OpenFOAM possono essere scaricati dalla pagina di download di OpenFOAM
Prima di compilare OpenFOAM, è necessario installare
zlib-develeDevelopment Toolsnei nodi di calcolo Linux (CentOS), per modificare il valore della variabileWM_MPLIBdaSYSTEMOPENMPIaINTELMPInel filebashrcdi impostazioni dell'ambiente OpenFOAM e per generare il file delle impostazioni dell'ambiente Intel MPI e il filempivars.shdi impostazioni dell'ambiente OpenFOAMbashrcFacoltativamente, la variabile di ambiente può essere impostata per specificare il numero di processori da usare per la compilazione
WM_NCOMPPROCSdi OpenFoam, che potrebbe accelerare la compilazioneUsare clusrun per ottenere tutte le operazioni precedenti
clusrun /nodegroup:LinuxNodes /interleaved "yum install -y zlib-devel && yum groupinstall -y 'Development Tools' && wget https://sourceforge.net/projects/openfoamplus/files/v1806/ThirdParty-v1806.tgz && wget https://sourceforge.net/projects/openfoamplus/files/v1806/OpenFOAM-v1806.tgz && mkdir /opt/OpenFOAM && tar -xzf OpenFOAM-v1806.tgz -C /opt/OpenFOAM && tar -xzf ThirdParty-v1806.tgz -C /opt/OpenFOAM && cd /opt/OpenFOAM/OpenFOAM-v1806/ && sed -i -e 's/WM_MPLIB=SYSTEMOPENMPI/WM_MPLIB=INTELMPI/g' ./etc/bashrc && source /opt/intel/impi/2018.3.222/bin64/mpivars.sh && source ./etc/bashrc && export WM_NCOMPPROCS=$((`grep -c ^processor /proc/cpuinfo`-1)) && ./Allwmake"
Creare una condivisione nel cluster
Creare una cartella denominata
openfoamnel nodo head e condividerla conEveryonel'autorizzazioneRead/WriteCreare la directory
/openfoame montare la condivisione nei nodi di calcolo Linux con clusrunclusrun /nodegroup:LinuxNodes "mkdir /openfoam && mount -t cifs //hpc6267/openfoam /openfoam -o vers=2.1,username=hpcadmin,dir_mode=0777,file_mode=0777,password='********'"Ricordarsi di sostituire il nome utente e la password nel codice precedente durante la copia.
Preparare il file di impostazione dell'ambiente per l'esecuzione di attività MPI
Creare un file
settings.shnella condivisione con il codice:#!/bin/bash # impi source /opt/intel/impi/2018.3.222/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 source /opt/OpenFOAM/OpenFOAM-v1806/etc/bashrcPrestare attenzione alle terminazioni di riga se il file viene modificato nel nodo head, che deve essere
\nanziché\r\n
Preparare i dati di esempio per il processo OpenFOAM
Copiare l'esempio
sloshingTank3Dnella directory delle esercitazioni OpenFOAM nella condivisioneopenfoamFacoltativamente, modificare il valore di
deltaTda a0.5e il valore diwriteIntervalda0.050.05a0.5in/openfoam/sloshingTank3D/system/controlDictper accelerare l'elaborazione dei datiModificare il file
/openfoam/sloshingTank3D/system/decomposeParDictin termini di numero di core da usare. Per altre informazioni, vedere La Guida per l'utente openFOAM: 3.4 Esecuzione di applicazioni in parallelo/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1806 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 32; method hierarchical; coeffs { n (1 1 32); //delta 0.001; // default=0.001 //order xyz; // default=xzy } distributed no; roots ( ); // ************************************************************************* //Preparare i dati di esempio in
/openfoam/sloshingTank3D. Il codice seguente può essere usato quando viene eseguito manualmente nel nodo di calcolo Linux:cd /openfoam/sloshingTank3D source /openfoam/settings.sh source /home/hpcadmin/OpenFOAM/OpenFOAM-v1806/bin/tools/RunFunctions m4 ./system/blockMeshDict.m4 > ./system/blockMeshDict runApplication blockMesh cp ./0/alpha.water.orig ./0/alpha.water runApplication setFieldsInviare un processo per ottenere tutte le operazioni precedenti
set CORE_NUMBER=32 job submit "cp -r /opt/OpenFOAM/OpenFOAM-v1806/tutorials/multiphase/interFoam/laminar/sloshingTank3D /openfoam/ && sed -i 's/deltaT 0.05;/deltaT 0.5;/g' /openfoam/sloshingTank3D/system/controlDict && sed -i 's/writeInterval 0.05;/writeInterval 0.5;/g' /openfoam/sloshingTank3D/system/controlDict && sed -i 's/numberOfSubdomains 16;/numberOfSubdomains %CORE_NUMBER%;/g' /openfoam/sloshingTank3D/system/decomposeParDict && sed -i 's/n (4 2 2);/n (1 1 %CORE_NUMBER%);/g' /openfoam/sloshingTank3D/system/decomposeParDict && cd /openfoam/sloshingTank3D/ && m4 ./system/blockMeshDict.m4 > ./system/blockMeshDict && source /opt/OpenFOAM/OpenFOAM-v1806/bin/tools/RunFunctions && source /opt/OpenFOAM/OpenFOAM-v1806/etc/bashrc && runApplication blockMesh && cp ./0/alpha.water.orig ./0/alpha.water && runApplication setFields"
Creare un processo contenente attività MPI per elaborare la data
Creare un processo e aggiungere 4 attività con dipendenza
Nome attività Attività dipendente Nuclei Comando Variabile di ambiente task1 Non disponibile 1 source /openfoam/settings.sh && decomposePar -force Non disponibile task2 task1 32 source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE interFoam -parallel CCP_MPI_HOSTFILE_FORMAT=1 task3 task2 1 source /openfoam/settings.sh && reconstructPar Non disponibile task4 task3 32 source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE foamToEnsight -parallel CCP_MPI_HOSTFILE_FORMAT=1 Impostare la directory di lavoro su
/openfoam/sloshingTank3De l'output standard su${CCP_JOBID}.${CCP_TASKID}.logdi ogni attivitàEseguire tutte le operazioni precedenti con i comandi:
set CORE_NUMBER=32 job new job add !! /workdir:/openfoam/sloshingTank3D /name:task1 /stdout:${CCP_JOBID}.${CCP_TASKID}.log "source /openfoam/settings.sh && decomposePar -force" job add !! /workdir:/openfoam/sloshingTank3D /name:task2 /stdout:${CCP_JOBID}.${CCP_TASKID}.log /depend:task1 /numcores:%CORE_NUMBER% /env:CCP_MPI_HOSTFILE_FORMAT=1 "source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE interFoam -parallel" job add !! /workdir:/openfoam/sloshingTank3D /name:task3 /stdout:${CCP_JOBID}.${CCP_TASKID}.log /depend:task2 "source /openfoam/settings.sh && reconstructPar" job add !! /workdir:/openfoam/sloshingTank3D /name:task4 /stdout:${CCP_JOBID}.${CCP_TASKID}.log /depend:task3 /numcores:%CORE_NUMBER% /env:CCP_MPI_HOSTFILE_FORMAT=1 "source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE foamToEnsight -parallel" job submit /id:!!
Ottenere il risultato
Controllare il risultato del processo in Gestione cluster HPC Pack 2016
Il risultato di sloshingTank3D di esempio viene generato come file
\\hpc6267\openfoam\sloshingTank3D\EnSight\sloshingTank3D.case, che può essere visualizzato da Ensight