Metodtips för att använda virtuella HB- och HC-datorer
Översikt
De virtuella datorerna i H-serien är de senaste HPC-erbjudandena i Azure. Virtuella datorer i HB-serien erbjuder 60-kärniga AMD EPYC-processorer, optimerade för att köra program med höga krav på minnesbandbredd, till exempel explicit analys av ändliga element, vätskedynamik och vädermodellering. De virtuella datorerna i HC-serien har Intel Xeon Skylake-processorer med 44 kärnor och är optimerade för program som kräver intensiva CPU-beräkningar, till exempel molekylär dynamik och implicit analys av ändliga element. Virtuella HB- och HC-datorer har 100 Gb/s EDR InfiniBand och har stöd för de senaste MPI-typerna och versionerna. Guiden för att skala HPC-program innehåller mer information om hur du skalar HPC-program på virtuella HB- och HC-datorer.
Azure CycleCloud stöder de nya virtuella datorerna i H-serien direkt, men för bästa möjliga upplevelse och prestanda följer du riktlinjerna och metodtipsen på den här sidan.
CentOS 7.6 HPC Marketplace-avbildning
CentOS 7.6 HPC Marketplace-avbildningen innehåller alla drivrutiner för att aktivera InfiniBand-gränssnittet samt förkompilerade versioner av alla vanliga MPI-varianter som är installerade i /opt. Mer information om exakt vad bilden har att erbjuda finns i det här blogginlägget.
Om du vill använda CentOS 7.6 HPC-avbildningen när du skapar klustret markerar du rutan Anpassad avbildning i parametern Avancerade inställningar och anger värdet OpenLogic:CentOS-HPC:7.6:latest
.
För att stödja den äldre H16r VM-serien och hålla klusterhuvudnoder låsta till samma version av CentOS distribuerar standardavbildningen "Cycle CentOS 7" i listrutan För basoperativsystem CentOS 7.4. Även om detta är bra för de flesta virtuella datorserier kräver virtuella HB/HC-datorer CentOS 7.6 eller senare och en annan Mellanox-drivrutin.
Inaktivera SElinux i CycleCloud < 7.7.4
Som standard anser SElinux endast att /root och /home är giltiga sökvägar för hemkataloger. Alla användare med hemkataloger utanför dessa sökvägar gör att SElinux blockerar SSH från att använda SSH-nyckelpar i användarens hemkatalog. I CycleCloud-kluster skapas användarhemkataloger i /shared/home. Även om CycleCloud-versioner som är nyare än 7.7.4 automatiskt anger sökvägen /shared/home som en giltig SElinux homedir-kontext, stöder äldre versioner inte detta. För att se till att SSH fungerar korrekt för användare i klustret måste du inaktivera SElinux i klustermallen:
[[node defaults]]
[[[configuration]]]
cyclecloud.selinux.policy = permissive
Köra MPI-jobb med Slurm
MPI-jobb som körs på virtuella HB/HC-datorer måste köras i samma VM Scaleset (VMSS). Se till att ange följande attribut i klustermallen för att säkerställa korrekt autoskalning av virtuella datorer för MPI-jobb som körs med Slurm:
[[nodearray execute]]
Azure.SingleScaleset = true
Azure.MaxScalesetSize = 300
Azure.Overprovision = true
Hämta nycklar för användning med OpenMPI och MPICH
Vissa MPI-varianter kräver att du anger InfiniBand PKEY när du kör jobbet. Följande Bash-funktion kan användas för att fastställa PKEY:
get_ib_pkey()
{
key0=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/0)
key1=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/1)
if [ $(($key0 - $key1)) -gt 0 ]; then
export IB_PKEY=$key0
else
export IB_PKEY=$key1
fi
export UCX_IB_PKEY=$(printf '0x%04x' "$(( $IB_PKEY & 0x0FFF ))")
}