Kompilatory i biblioteki liczbowe
Zagadnienia dotyczące obrazu HPC
Zalecany obraz HPC używany do kompilowania i uruchamiania ściśle powiązanych aplikacji to obraz CentOS-HPC 7.8+ dostępny w witrynie Azure Marketplace. Ten obraz jest wstępnie zainstalowany z rozwiązaniem Mellanox Openfabrics Enterprise Distribution (MOFED). Obraz zawiera wyższe limity zestawów, biblioteki przekazywania komunikatów (takie jak HPCX, OpenMPI i Intel MPI) oraz biblioteki procesora CPU zoptymalizowane pod kątem amd (AOCL). Wszystkie biblioteki MPI i biblioteki liczbowe są dostępne za pośrednictwem plików modułów środowiska. Możesz utworzyć własny obraz HPC przy użyciu konstruktora obrazów platformy Azure lub narzędzia HashiCorp Packer, ale musisz zainstalować narzędzie MOFED, aby uzyskać dostęp do sieci InfiniBand.
Zagadnienia dotyczące kompilatora
Wszystkie popularne kompilatory powinny działać na wszystkich maszynach wirtualnych HPC platformy Azure. Jeśli instrukcje kompilacji aplikacji zalecają określone flagi kompilatora i kompilatora, spróbuj najpierw przed wypróbowaniem innych optymalizacji kompilatora. W przypadku procesorów AMD EPYC (na przykład: HB120_v2 i HB60) należy użyć stosunkowo nowego kompilatora, aby zapewnić obsługę optymalizacji dla tej architektury. W przypadku GCC należy użyć co najmniej wersji 7.4 lub nowszej. Jeśli to możliwe, użyj biblioteki GCC 9.2.0, która jest zawarta w obrazie CentOS-HPC.
Specyficzne dla HC44
Maszyna wirtualna HC44 jest procesorem Intel Skylake z dwoma gniazdami, dlatego zalecamy użycie kompilatora Intel, jeśli to możliwe. Jeśli kompilowana aplikacja jest powiązana zmiennoprzecinkowa i podejrzewasz, że operacje pomnożenia i dodawania z użyciem połączenia dominują w operacjach zmiennoprzecinkowych, możesz spróbować włączyć instrukcje AVX 512. W tym celu dodaj następujące flagi kompilacji:
-O3 -xHost -xCORE-AVX512
Specyficzne dla HB120_v2 i HB60
Kompilatory Intel działają dobrze na procesorach AMD EPYC. Jeśli aplikacja intensywnie korzysta z zmiennoprzecinkowych, możesz włączyć funkcję AVX2 z następującymi flagami kompilacji:
-O3 --march=core-avx2
Zestaw AOCC (AMD Optimizing Compiler Suite) jest specjalnie dostosowany do procesorów AMD i może poprawić wydajność na urządzeniach AMD.
Uwaga
Kompilatory AOCC nie są tak popularne jak kompilatory GCC i Intel. Niektóre aplikacje mogą nie być kompilowane bez pewnych modyfikacji.
Zagadnienia dotyczące biblioteki liczbowej
Kilka aplikacji HPC ma zależności od podstawowych programów Algebra Subprograms (BLAS), Linear Algebra PACKage (LAPACK) i najszybszego fouriera transformacji na zachodzie (FFTW). Te operacje liczbowe mogą być znaczącym procentem całkowitej operacji zmiennoprzecinkowych. Oczekuje się, że używasz dostrajanych wersji tych bibliotek zamiast niedostrojonych implementacji odwołań.
Specyficzne dla HC44
Najlepsze dostrojone biblioteki BLAS, LAPACK i FFTW dla procesorów Intel znajdują się w bibliotece jądra matematycznego Intel (MKL). Środowisko MKL zawiera skrypty do tworzenia otoek FFTW, dzięki czemu można uzyskać dostęp do dostrojonej biblioteki Intel FFT za pośrednictwem interfejsu API FFTW.
Specyficzne dla HB120_v2 i HB60
Biblioteka AMD Optymalizowanie procesorów CPU (AMD-AOCL) zawiera dostrojoną bibliotekę BLAS (AMD BLIS), dostrojoną bibliotekę LAPACK (AMD libFLAME) i dostrojoną bibliotekę FFTW (AMD FFTW). Te dostrojone biblioteki są również dostępne na obrazie CentOS-HPC 7.8+ w witrynie Azure Marketplace.