Compilers en numerieke bibliotheken

Voltooid

Overwegingen voor HPC-installatiekopieën

De aanbevolen HPC-installatiekopieën die moeten worden gebruikt om nauw gekoppelde toepassingen te bouwen en uit te voeren, is de CentOS-HPC 7.8+-installatiekopieën die beschikbaar zijn in Azure Marketplace. Deze installatiekopieën worden vooraf geïnstalleerd met Mellanox Openfabrics Enterprise Distribution (MOFED). De installatiekopieën hebben hogere limieten, MPI-bibliotheken (Message Passing), zoals HPCX, OpenMPI en Intel MPI) en de CPU-bibliotheken die zijn geoptimaliseerd voor AMD (AOCL). Alle MPI-bibliotheken en numerieke bibliotheken zijn beschikbaar via omgevingsmodulebestanden. U kunt uw eigen HPC-installatiekopieën maken met behulp van de Azure-installatiekopieënbouwer of HashiCorp Packer, maar u moet MOFED installeren voor toegang tot het InfiniBand-netwerk.

Overwegingen voor compileren

Alle populaire compilers moeten op alle Azure HPC-VM's werken. Als de build-instructies van een toepassing een bepaalde compiler- en compilervlag aanbevelen, kunt u dat eerst proberen voordat u andere compileroptimalisaties probeert. Voor AMD EPYC-processors (bijvoorbeeld: HB120_v2 en HB60), moet u een relatief nieuwe compiler gebruiken om ervoor te zorgen dat deze optimalisaties voor deze architectuur ondersteunt. Voor GCC moet u ten minste versie 7.4 of hoger gebruiken. Gebruik indien mogelijk GCC 9.2.0, dat is opgenomen in de CentOS-HPC-installatiekopieën.

Specifiek voor HC44

De HC44-VM is een Intel Skylake-processor met twee sockets, dus we raden u aan indien mogelijk een Intel-compiler te gebruiken. Als de toepassing die u samenvoegt, afhankelijk is van drijvende komma en u vermoedt dat de drijvendekommabewerkingen worden gedomineerd door samengevoegde bewerkingen voor vermenigvuldigen/toevoegen, kunt u proberen AVX 512-instructies in te schakelen. Voeg hiervoor deze compilatievlagmen toe:

-O3 -xHost -xCORE-AVX512

Specifiek voor HB120_v2 en HB60

Intel-compilers presteren goed op AMD EPYC-processors. Als uw toepassing drijvendekommageintensief is, kunt u AVX2 inschakelen met de volgende compilatievlagmen:

-O3 --march=core-avx2

De AMD Optimizeing Compiler Suite (AOCC) is speciaal afgestemd op AMD-processors en kan de prestaties op AMD-apparaten verbeteren.

Notitie

AOCC-compilers zijn niet zo populair als GCC- en Intel-compilers. Sommige toepassingen worden mogelijk niet gecompileerd zonder enkele wijzigingen.

Overwegingen voor numerieke bibliotheken

Verschillende HPC-toepassingen hebben afhankelijkheden van Basic Linear Algebra Subprograms (BLAS), Linear Algebra PACKage (LAPACK) en snelste fouriertransformatie in het westen (FFTW). Deze numerieke bewerkingen kunnen een aanzienlijk percentage van de totale drijvendekommabewerkingen zijn. Er wordt verwacht dat u afgestemde versies van deze bibliotheken gebruikt in plaats van niet-afgestemde referentie-implementaties.

Specifiek voor HC44

De best afgestemde BLAS-, LAPACK- en FFTW-bibliotheken voor Intel-processors zijn opgenomen in de Intel Math Kernel Library (MKL). De MKL-omgeving bevat scripts voor het bouwen van FFTW-wrappers, zodat u toegang hebt tot de afgestemde Intel FFT-bibliotheek via de FFTW-API.

Specifiek voor HB120_v2 en HB60

De AMD Optimizeing CPU libraries (AMD-AOCL) bevatten een afgestemde BLAS-bibliotheek (AMD BLIS), een afgestemde LAPACK (AMD libFLAME) en een afgestemde FFTW-bibliotheek (AMD FFTW). Deze afgestemde bibliotheken zijn ook beschikbaar op de CentOS-HPC 7.8+-installatiekopieën in Azure Marketplace.