Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Implantar um cluster com o modelo do ARM
Usar o cluster de nó de cabeçalho único para cargas de trabalho do Linux para implantar o cluster
Observe que
Compute Node Imagedeve ser aquele com sufixoHPCeCompute Node VM Sizedeve serStandard_H16rouStandard_H16mrna série H para que o cluster possa ser compatível com RDMA.
Executar Pingpong do Intel MPI Benchmark
Fazer logon no nó principal hpc6267 e online
Enviar um trabalho para executar o Pingpong de MPI entre nós de computação do 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"O arquivo de host ou o arquivo do computador para a tarefa MPI é gerado automaticamente
A variável
$CCP_MPI_HOSTFILEde ambiente pode ser usada no comando de tarefa para obter o nome do arquivoA variável
$CCP_MPI_HOSTFILE_FORMATde ambiente pode ser definida para especificar o formato do arquivo de host ou do arquivo do computadorO formato de arquivo de host padrão é como:
nodename1 nodename2 … nodenameNQuando
$CCP_MPI_HOSTFILE_FORMAT=1, o formato é como:nodename1:4 nodename2:4 … nodenameN:4Quando
$CCP_MPI_HOSTFILE_FORMAT=2, o formato é como:nodename1 slots=4 nodename2 slots=4 … nodenameN slots=4Quando
$CCP_MPI_HOSTFILE_FORMAT=3, o formato é como:nodename1 4 nodename2 4 … nodenameN 4
Verificar o resultado da tarefa no Gerenciador de Cluster do HPC Pack 2016
Executar carga de trabalho OpenFOAM
Baixar e instalar o Intel MPI
O Intel MPI já está instalado na imagem
CentOS_7.4_HPCdo Linux, mas uma versão mais recente é necessária para criar o OpenFOAM, que pode ser baixado na biblioteca do Intel MPIBaixar e instalar silenciosamente o Intel MPI com o 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"
Baixar e compilar o OpenFOAM
Pacotes OpenFOAM podem ser baixados na página de download do OpenFOAM
Antes de criar o OpenFOAM, precisamos instalar
zlib-develeDevelopment Toolsnos nós de computação do Linux (CentOS), para alterar o valor da variávelWM_MPLIBde umINTELMPIarquivobashrcde configurações deSYSTEMOPENMPIambiente OpenFOAM e para obter o arquivompivars.shde configurações de ambiente do Intel MPI e o arquivo de configurações de ambiente OpenFOAMbashrcOpcionalmente, a variável
WM_NCOMPPROCSde ambiente pode ser definida para especificar quantos processadores usar para compilar o OpenFoam, o que poderia acelerar a compilaçãoUsar o clusrun para obter tudo acima
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"
Criar compartilhamento no cluster
Criar uma pasta nomeada
openfoamno nó principal e compartilhá-laEveryonecomRead/WritepermissãoCriar diretório
/openfoame montar o compartilhamento em nós de computação do Linux com clusrunclusrun /nodegroup:LinuxNodes "mkdir /openfoam && mount -t cifs //hpc6267/openfoam /openfoam -o vers=2.1,username=hpcadmin,dir_mode=0777,file_mode=0777,password='********'"Lembre-se de substituir o nome de usuário e a senha no código acima ao copiar.
Preparar o arquivo de configuração de ambiente para executar tarefas de MPI
Crie um arquivo
settings.shno compartilhamento com o código:#!/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/bashrcCuidado com as terminações de linha se o arquivo for editado no nó principal, o que deve ser
\nem vez de\r\n
Preparar dados de exemplo para o trabalho OpenFOAM
Copiar o exemplo
sloshingTank3Dno diretório de tutoriais do OpenFOAM para o compartilhamentoopenfoamOpcionalmente, modifique o valor de
deltaTde0.05para0.5e o valor dewriteIntervalde0.05para dentro/openfoam/sloshingTank3D/system/controlDictpara0.5acelerar o processamento de dadosModifique o arquivo
/openfoam/sloshingTank3D/system/decomposeParDictem termos do número principal a ser usado, consulte o Guia do Usuário do OpenFOAM: 3.4 Executando aplicativos em paralelo/*--------------------------------*- 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 ( ); // ************************************************************************* //Preparar dados de exemplo em
/openfoam/sloshingTank3D. O código abaixo pode ser usado ao executá-lo manualmente no nó de computação do 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 setFieldsEnviar um trabalho para obter tudo acima
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"
Criar um trabalho que contenha tarefas de MPI para processar a data
Criar um trabalho e adicionar 4 tarefas com dependência
Nome da tarefa Tarefa dependente Núcleos Comando Variável de ambiente task1 Não aplicável 1 source /openfoam/settings.sh && decomposePar -force Não aplicável 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 Não aplicável task4 task3 32 source /openfoam/settings.sh && mpirun -machinefile $CCP_MPI_HOSTFILE foamToEnsight -parallel CCP_MPI_HOSTFILE_FORMAT=1 Definir o diretório de trabalho como e a
/openfoam/sloshingTank3Dsaída padrão para${CCP_JOBID}.${CCP_TASKID}.logcada tarefaObtenha tudo acima com comandos:
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:!!
Obter resultado
Verificar o resultado do trabalho no Gerenciador de Cluster do HPC Pack 2016
O resultado de exemplo sloshingTank3D é gerado como arquivo
\\hpc6267\openfoam\sloshingTank3D\EnSight\sloshingTank3D.case, que pode ser exibido pelo Ensight