通信レイテンシーとは、データ転送を要求してから実際に転送されるまでの通信遅延時間を指します。通信レイテンシーの評価にあたって使用したプログラムは、転送するデータサイズを0〜4MBの範囲で2のべき乗倍ずつ増加させ、それぞれのデータをMPI_Send()、MPI_Recv()で転送し、その転送にかかる時間を計測しています。
MPI並列計算において、CPUコア数を増やして並列計算性能を向上させるためには、通信レイテンシーが低いシステムが必要です。その理由は、計算に参加させるCPUコア数を増やすに従って並列プロセス数も増加し、プロセス間で通信するデータも細分化されるため通信されるデータサイズはより小さくなります。また、並列プロセス数が増加することでデータ通信の頻度は増えます。つまり、CPUコア数が増えるに従い、小さなデータの通信が高い頻度で発生することになります。そのため通信処理に費やす時間が性能向上を阻む大きなボトルネックとなります。これを解決するためには、通信レイテンシーの小さなシステムを用いて並列計算を効率よく処理することが効果的です。
実際のテストで、小さなデータから大きなデータへと、データのサイズを変化させながらデータ転送時間を計測していくと、小さなデータ領域では通信レイテンシーの影響が大きいです。なぜなら小さなデータの通信では、通信時間と比較して、通信レイテンシーに占める時間の比率が大きいからです。そのため、通信レイテンシーが小さなシステムでは、小さなデータ領域でも転送時間が短くなるため、CPUコア数を増やすことで小さなデータの通信が高い頻度で発生してもボトルネックの発生が抑えられ、CPUコア数の増加に応じた並列性能の向上が見込めます。
通信レイテンシーは以下の要因により大きく変化します。
◇ 通信デバイスの種類
◇ 通信デバイスのドライバの種類
◇ MPIライブラリの種類
◇ ノード内通信とノード間通信の違い
比較の一例として、通信デバイスをGigabit EthernetとInfiniBandに切り替えて、それぞれの通信レイテンシーを比較してみました。MPIライブラリは双方ともIntel MPIライブラリを使用しています。

上記の比較では、全データ領域でInfiniBandの通信時間がGigabit Ethernetを下回っています。これはデータが小さな領域ではInfiniBandの通信レイテンシーの小ささが顕在化しており、データが大きな領域になるとInfiniBandのピークバンド幅の大きさが顕在化している様子が分かります。このテスト結果から、Gigabit Ethernetと比較してInfiniBandは並列計算機の通信デバイスとして、良い特性を備えていることが分かります。
なおテストで利用したIntel MPIライブラリの利用上の優れた点に関してもお伝えします。Intel MPIライブラリを使ってコンパイルした実行モジュールでは、環境変数を変更するだけで、Gigabit Etehrnet (TCP/IP) に対応した通信か、InfiniBand (DAPL) に対応した通信かを、簡単に切り替えて実行できます。そのためこれまでのように別々にコンパイルしておく必要がない便利なMPIライブラリです。
次回以降は以下のタイトルでご報告を行います。
第2回 ノード内通信とノード間通信
第3回 TCP/IPとDAPL
第4回 MPIライブラリの選択
第5回 InfiniBandデバイスの選択について