Компиляторы и числовые библиотеки
Рекомендации по образу 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.