< 目次

クラスターフーリエ変換関数のパフォーマンス管理

異なるアプリケーションにおけるインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) クラスター FFT (CFFT) のパフォーマンスは、主にクラスター構成、メッセージ・パッシング・インターフェイス (MPI) 通信のパフォーマンス、および実行の構成に依存します。MPI 通信は通常、CFFT 計算時間全体の約 70% を占めることに注意してください。CFFT アルゴリズムの時間のかかる部分をより柔軟に制御できるように、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) には、CFFT のパフォーマンスに影響する値を設定する MKL_CDFT 環境変数が用意されています。CFFT を集中的に呼び出すアプリケーションのパフォーマンスを向上させるには、環境変数を使用して、クラスター、アプリケーション、MPI などに最適な値を設定します。

MKL_CDFT 環境変数の構文を、下記の表に示します。

MKL_CDFT=オプション 1[=値 1],オプション 2[=値 2],…,オプション N[=値 N]

重要

この表では、特定の条件下で通常パフォーマンスが向上する設定について説明していますが、実際のパフォーマンスはクラスターの構成に大きく依存します。したがって、計算を高速化するには、リストされている値を試してください。

オプション

設定可能な値

説明

alltoallv

0 (デフォルト)

標準の MPI_Alltoallv 関数を使用してグローバル転置を実行するように CFFT を構成します。

1

MPI_Alltoallv 関数の代わりに、MPI_IsendMPI_Irecv の一連の呼び出しを使用するように CFFT を構成します。

4

グローバル転置とローカルメモリー内のデータ移動をマージするように CFFT を構成します。この場合、CFFT は MPI_IsendMPI_Irecv を呼び出してグローバル転置を行います。

この値は、ハイブリッド (MPI + OpenMP*)、特にノードあたりのプロセス数が 1 の場合に使用します。

wo_omatcopy

0

CFFT を構成して、ローカル FFT およびローカル転置を個別に行います。

DFTI_TRANSPOSE 構成パラメーターが DFTI_ALLOW の場合、CFFT は通常、wo_omatcopy = 1 よりも 0 のほうが通常は高速に実行されます。インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンスを参照してください。

1

CFFT を構成して、ローカル FFT 呼び出しとローカル転置をマージします。 DFTI_TRANSPOSE の値が DFTI_NONE の場合、CFFT は通常、wo_omatcopy = 0 よりもこの値の方が高速に実行されます。

-1 (デフォルト)

DFTI_TRANSPOSE の値に応じて CFFT が使用する値 (上記の 2 つのいずれか) を決定します。

enable_soi

適用不可

1 次元の複素数から複素数への CFFT に対して、通信量の少ない Segment Of Interest FFT (SOI FFT) アルゴリズムを有効にするフラグ。このアルゴリズムでは、標準の 9 ステップ (または 6 ステップ) アルゴリズムよりも MPI 通信が少なくて済みます。

注意

SOI FFT アルゴリズムでは、MPI 通信量は少なくなりますが、精度がわずかに低下します (小数点 1 桁程度)。

以下に、この環境変数の使用例を示します。

set MKL_CDFT=wo_omatcopy=1,alltoallv=4,enable_soi mpirun –ppn 2 –n 16 mkl_cdft_app.exe

製品および性能に関する情報

性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。

改訂 #20201201