Kompilatory i biblioteki liczbowe

Ukończone

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.