コンパイラと数値ライブラリ

完了

HPC イメージに関する考慮事項

密結合されたアプリケーションの構築と実行に使用する推奨される HPC イメージは、Azure Marketplace で利用可能な CentOS-HPC 7.8 以上のイメージです。 このイメージは、Mellanox Openfabrics Enterprise Distribution (MOFED) と共に事前インストールされています。 イメージの特徴は、より高く設定された上限、Message Passing (MPI) libraries (HPCX、OpenMPI、Intel MPI など)、および AMD Optimized CPU libraries (AOCL) です。 すべての MPI ライブラリと数値ライブラリを、環境のモジュール ファイルを介して使用できます。 Azure イメージ ビルダーまたは HashiCorp Packer を使用して独自の HPC イメージを作成できますが、InfiniBand ネットワークにアクセスするために、MOFED をインストールする必要があります。

コンパイラに関する考慮事項

すべての一般的なコンパイラは、すべての Azure HPC VM で動作するはずです。 アプリケーションのビルド手順で、特定のコンパイラとコンパイラ フラグが推奨されている場合は、他のコンパイラ最適化を試す前に、それをまず試してみます。 AMD EPYC プロセッサ (例: HB120_v2 と HB60) の場合は、このアーキテクチャの最適化をサポートさせるために、比較的新しいコンパイラを使用する必要があります。 GCC の場合は、少なくともバージョン 7.4 以上を使用する必要があります。 可能であれば CentOS-HPC イメージに含まれている GCC 9.2.0 を使用します。

HC44 に固有

HC44 VM は、2 ソケット Intel Skylake プロセッサであるため、可能であれば Intel コンパイラを使用することが推奨されます。 コンパイルしているアプリケーションが浮動小数点にバインドされていて、浮動小数点演算が融合型積和演算で占められていると思われる場合は、AVX 512 命令を有効にしてみることができます。 これを行うには、これらのコンパイル フラグを追加します。

-O3 -xHost -xCORE-AVX512

HB120_v2 と HB60 に固有

Intel コンパイラは、AMD EPYC プロセッサで適切に動作します。 アプリケーションで浮動小数点が集中的に使用されている場合は、次のコンパイル フラグを使用して AVX2 を有効にできます。

-O3 --march=core-avx2

AMD Optimizing Compiler suite (AOCC) は AMD プロセッサ用に特別にチューニングされており、AMD デバイスでのパフォーマンスが向上する可能性があります。

Note

AOCC コンパイラは、GCC および Intel コンパイラほど一般的ではありません。 一部のアプリケーションはいくらかの変更をしないとコンパイルされない場合があります。

数値ライブラリに関する考慮事項

いくつかの HPC アプリケーションには、Basic Linear Algebra Subprograms (BLAS)、Linear Algebra PACKage (LAPACK)、および Fastest Fourier Transform in the West (FFTW) への依存関係があります。 これらの数値演算は、合計の浮動小数点演算の著しく大きい割合を占める可能性があります。 これらのライブラリのチューニングされていない参照実装ではなく、チューニング済みのバージョンを使用することが想定されます。

HC44 に固有

Intel プロセッサ用に最適にチューニングされた BLAS、LAPACK、FFTW ライブラリは、Intel Math Kernel Library (MKL) に含まれています。 MKL 環境には FFTW ラッパーを構築するスクリプトがあるため、FFTW API を介して、チューニング済みの Intel FFT ライブラリにアクセスできます。

HB120_v2 と HB60 に固有

AMD Optimizing CPU Libraries (AMD AOCL)には、チューニング済み BLAS ライブラリ (AMD BLIS)、チューニング済み LAPACK (AMD libFLAME)、およびチューニング済み FFTW ライブラリ (AMD FFTW) が含まれています。 これらのチューニング済みライブラリは、Azure Marketplace の CentOS-HPC 7.8 以上のイメージでも使用できます。