Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bereitstellen eines Clusters mit ARM-Vorlage
Verwenden des Cluster mit einem Zentralen Kopfknoten für Linux-Workloads zum Bereitstellen des Clusters
Beachten Sie, dass
Compute Node Imagees sich um suffixeCompute Node VM SizeHPCund in H-Serie seinStandard_H16rStandard_H16mrsollte, damit der Cluster RDMA-fähig sein kann.
Intel MPI Benchmark Pingpong ausführen
Melden Sie sich am Kopfknoten hpc6267 an, und nehmen Sie Knoten online
Übermitteln eines Auftrags zum Ausführen von MPI Pingpong unter Linux-Computeknoten
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"Die Hostdatei oder Computerdatei für die MPI-Aufgabe wird automatisch generiert.
Umgebungsvariable
$CCP_MPI_HOSTFILEkann im Aufgabenbefehl verwendet werden, um den Dateinamen abzurufen.Die Umgebungsvariable
$CCP_MPI_HOSTFILE_FORMATkann so festgelegt werden, dass das Format der Hostdatei oder computerdatei angegeben wird.Das Standardmäßige Hostdateiformat ist wie folgt:
nodename1 nodename2 … nodenameNWenn
$CCP_MPI_HOSTFILE_FORMAT=1das Format wie folgt aussieht:nodename1:4 nodename2:4 … nodenameN:4Wenn
$CCP_MPI_HOSTFILE_FORMAT=2das Format wie folgt aussieht:nodename1 slots=4 nodename2 slots=4 … nodenameN slots=4Wenn
$CCP_MPI_HOSTFILE_FORMAT=3das Format wie folgt aussieht:nodename1 4 nodename2 4 … nodenameN 4
Überprüfen des Vorgangsergebnisses im HPC Pack 2016 Cluster Manager
Ausführen der OpenFOAM-Workload
Herunterladen und Installieren von Intel MPI
Intel MPI ist bereits im Linux-Image
CentOS_7.4_HPCinstalliert, aber für die Erstellung von OpenFOAM ist eine neuere Version erforderlich, die aus der Intel MPI-Bibliothek heruntergeladen werden kann.Herunterladen und automatische Installation von Intel MPI mit 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"
Herunterladen und Kompilieren von OpenFOAM
OpenFOAM-Pakete können von der OpenFOAM-Downloadseite heruntergeladen werden
Vor dem Erstellen von OpenFOAM müssen wir Linux-Computeknoten (CentOS) installieren
zlib-develundDevelopment Toolsverwenden, um den Wert der VariablenWM_MPLIBinINTELMPISYSTEMOPENMPIdie Einstellungsdateibashrcder OpenFOAM-Umgebung zu ändern und die Einstellungsdatei der Intel MPI-Umgebung und die OpenFOAM-Umgebungseinstellungsdateimpivars.shzu erstellen.bashrcOptional kann die Umgebungsvariable
WM_NCOMPPROCSfestgelegt werden, um anzugeben, wie viele Prozessoren für die Kompilierung von OpenFoam verwendet werden sollen, wodurch die Kompilierung beschleunigt werden kann.Verwenden Sie clusrun, um alles oben zu erreichen
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"
Erstellen der Freigabe im Cluster
Erstellen eines Ordners mit dem Namen
openfoam"Kopfknoten" und FreigebenEveryonefür den Ordner mitRead/WriteBerechtigungErstellen eines Verzeichnisses
/openfoamund Bereitstellen der Freigabe auf Linux-Computeknoten mit clusrunclusrun /nodegroup:LinuxNodes "mkdir /openfoam && mount -t cifs //hpc6267/openfoam /openfoam -o vers=2.1,username=hpcadmin,dir_mode=0777,file_mode=0777,password='********'"Denken Sie daran, beim Kopieren den Benutzernamen und das Kennwort im obigen Code zu ersetzen.
Vorbereiten der Umgebungseinstellungsdatei für die Ausführung von MPI-Aufgaben
Erstellen Sie die Datei
settings.shin der Freigabe mit Code:#!/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/bashrcAchten Sie darauf, dass die Zeile endet, wenn die Datei auf dem Kopfknoten bearbeitet wird und nicht
\n\r\n
Vorbereiten von Beispieldaten für den OpenFOAM-Auftrag
Kopieren des Beispiels
sloshingTank3Dim OpenFOAM-Lernprogrammverzeichnis in die FreigabeopenfoamÄndern Sie optional den Wert von
deltaT"von" in "Von0.05" in0.5"In" und "Von0.05in0.5"/openfoam/sloshingTank3D/system/controlDict, um diewriteIntervalDatenverarbeitung zu beschleunigen.Ändern Sie die Datei
/openfoam/sloshingTank3D/system/decomposeParDictin Bezug auf die zu verwendende Kernnummer. Weitere Informationen finden Sie im OpenFOAM-Benutzerhandbuch: 3.4 Parallel ausgeführte Anwendungen/*--------------------------------*- 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 ( ); // ************************************************************************* //Vorbereiten von Beispieldaten in
/openfoam/sloshingTank3D. Der folgende Code kann verwendet werden, wenn er manuell auf linux-Computeknoten ausgeführt wird: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 setFieldsStellen Sie einen Auftrag ein, um alles oben zu erreichen.
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"
Erstellen eines Auftrags, der MPI-Aufgaben zum Verarbeiten des Datums enthält
Erstellen eines Auftrags und Hinzufügen von vier Aufgaben mit Abhängigkeit
Aufgabenname Abhängiger Vorgang Kerne Befehl Umgebungsvariable Vorgang1 Nicht verfügbar 1 source /openfoam/settings.sh && decomposePar -force Nicht verfügbar Task2 Vorgang1 32 source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE interFoam -parallel CCP_MPI_HOSTFILE_FORMAT=1 Task3 Task2 1 source /openfoam/settings.sh && rekonstruierenPar Nicht verfügbar Task4 Task3 32 source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE foamToEnsight -parallel CCP_MPI_HOSTFILE_FORMAT=1 Festlegen des Arbeitsverzeichnisses auf und Standardausgabe für
/openfoam/sloshingTank3D${CCP_JOBID}.${CCP_TASKID}.logjede AufgabeAlles oben mit Befehlen erreichen:
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:!!
Ergebnis abrufen
Überprüfen des Auftragsergebnisses im HPC Pack 2016 Cluster Manager
Das Ergebnis des Beispiels sloshingTank3D wird als Datei
\\hpc6267\openfoam\sloshingTank3D\EnSight\sloshingTank3D.casegeneriert, die von Ensight angezeigt werden kann.