Компиляторы и числовые библиотеки

Завершено

Рекомендации по образу HPC

Для создания и выполнения тесно связанных приложений рекомендуется использовать образ CentOS-HPC 7.8 или более поздней версии, доступный в Azure Marketplace. Этот образ предустановлен с помощью Mellanox Openfabrics Enterprise Distribution (MOFED). Он имеет более высокие ограничения, библиотеки Message Passing Interface (MPI) (HPCX, OpenMPI и Intel MPI) и библиотеки ЦП, оптимизированные для AMD (AOCL). Все библиотеки MPI и числовые библиотеки доступны в файлах модуля окружения. Вы можете создать собственный образ HPC с помощью построителя образов Azure или HashiCorp Packer, но необходимо установить MOFED для доступа к сети InfiniBand.

Рекомендации по компиляторам

Все популярные компиляторы должны работать на всех виртуальных машинах Azure HPC. Если в инструкциях по сборке приложения рекомендован определенный компилятор и флаги компилятора, попробуйте сначала использовать именно их, прежде чем пытаться выполнить другие оптимизации компилятора. Для процессоров AMD EPYC (например, HB120_v2 и HB60) необходимо использовать относительно новый компилятор, чтобы обеспечить поддержку оптимизаций для этой архитектуры. Для GCC следует использовать по крайней мере версию 7.4 или более позднюю. По возможности используйте GCC 9.2.0 (входит в образ CentOS-HPC).

Специфично для HC44

Виртуальная машина HC44 является процессором Intel Skylake с двумя сокетами, поэтому по возможности рекомендуется использовать компилятор Intel. Если приложение, которое вы компилируете, привязано к плавающей запятой, и вы подозреваете, что сплавленные операции умножения доминируют в операциях с плавающей запятой, можно попробовать включить инструкции AVX 512. Для этого добавьте следующие флаги компиляции:

-O3 -xHost -xCORE-AVX512

Специфично для HB120_v2 и HB60

Компиляторы Intel хорошо работают на процессорах AMD EPYC. Если приложение интенсивно работает с плавающей запятой, вы можете включить AVX2 со следующими флагами компиляции:

-O3 --march=core-avx2

Набор компиляторов AMD Optimizing (AOCC) специально настраивается для процессоров AMD и может повысить производительность на устройствах AMD.

Примечание.

Компиляторы AOCC не так популярны, как компиляторы GCC и Intel. Некоторые приложения могут не компилироваться без внесения некоторых изменений.

Рекомендации по числовым библиотекам

Некоторые приложения HPC зависят от базовых подпрограмм линейной алгебры (BLAS), Linear Algebra PACKage (LAPACK) и самого быстрого преобразования Фурье на Западе (FFTW). Эти числовые операции могут составлять значительную долю от общего числа операций с плавающей запятой. Ожидается, что вы используете настроенные версии этих библиотек вместо ненастроенных ссылочных реализаций.

Специфично для HC44

Лучшие настроенные библиотеки BLAS, LAPACK и FFTW для процессоров Intel содержатся в библиотеке математических ядер Intel (MKL). Окружение MKL содержит сценарии для создания программ-оболочек FFTW, поэтому вы можете получить доступ к настроенной библиотеке Intel FFT с помощью API для FFTW.

Специфично для HB120_v2 и HB60

Библиотеки ЦП с оптимизацией для AMD (AMD-AOCL) содержат настроенные библиотеки BLAS (AMD BLIS), LAPACK (AMD libFLAME) и FFTW (AMD FFTW). Эти настроенные библиотеки также доступны в образе CentOS-HPC 7.8 или более поздней версии из Azure Marketplace.