新しいハイブリッド・アーキテクチュアに適するアルゴリズム
Tiffany Trader

技術は、人生の様々な部分と同様に、急速に変化する時期と、安定が続く時期の繰り返しである。アクセラレーター、コプロセッサー、ARMプロセッサーのような従来のCPUに代わりうるものによって証明されるように、計算の多様性が増加する時期が来ている。研究者の国際チームは、これらの様々なスーパーコンピューティング・アーキテクチュアが、並列化された乱流の問題にどのように性能を出せるか検討した。
「Direct Numerical Simulation of Turbulent Flows with Parallel Algorithms for Various Computing Architectures」という彼らの論文は、乱流の大規模シミュレーションのための効率的な並列アルゴリズムを開発して
AMD、NVIDIA、Intel Xeon Phiを比較する。また彼らは、熱伝導と非圧縮性乱流の直接的な数値シミュレーションについて新しく開発したアルゴリズムを紹介する。
著者らは、近代的なスーパーコンピューターを3つのカテゴリーに分類する。
1. CPUの能力による伝統的なもの
2. CPUとGPUによるハイブリッド
3. MICアーキテクチュアのIntel Xeon PhiとCPUのハイブリッド
性能を最適化するために、それぞれの種類のシステム用に、アルゴリズムをカスタマイズする必要がある。
著者によると、「第一の種類は、基本的なものであり、数千のコアを使って走る高度にスケーラブルな並列アルゴリズムを必要とします。さらに、現代のマルチコア・ノード、例えばハイパー・スレッディング(HT) を有効にしたIntel Xeon CPUを2個使うと48スレッドのようなものを活かすために、共有メモリー並列性も必要です。それに加えて、4個の倍精度型演算を同時にできるAVX命令を活用するためのベクトル化も必要です。第二の種類では、SIMD (単一命令複数データ) モデルによる単純化された並列性のストリームとなるアルゴリズムが必要です。これは、挑戦的な課題です。第三の種類では、第一の種類よりもさらに、マルチ・スレッド並列性とベクトル化が重要になります。」
第四の種類として、ARMアーキテクチュアがあり、他のハイブリッド種類に似ているが、CPUとアクセラレーターの間のロード・バランシングとメモリー・アクセスの最適化がより重要である。しかし、著者らは、NVIDIAとAMDによるGPGPUとIntel Phiコプロセッサーに、焦点を当てている。
著者らは、異なる並列モデルを組み合わせたマルチ・レベルのアプローチを取る。彼らの説明によると、「MPIは、スーパーコンピューター内の計算ノードを組み合わせるために、分散メモリー・モデルの最初のレベルで使われます。第二段階のOpenMPは、マルチコアCPUまたはIntel Xeon Phiプロセッサに使われます。第三のレベルは、超並列アクセラレーターによる計算の可能性を活用します。」
OpenMPとOpenCLに基づく拡張機能は、現代のハイブリッド・マシンによる計算の可能性を利用するために開発された。別のアクセラレーター・アーキテクチュアに計算アルゴリズムを適応させるためには、著者らは、性能に関するいくつかの興味深い発見をした。
![]() |
図3:球の周りの流れを非構造格子の1次有限体積法による472114格子で計算した性能の比較 |
![]() |
図4:球の周りの流れを非構造格子の2次多項式に基づく有限体積法による679339格子で計算した性能の比較 |
図3と図4を見て、著者らは説明する。「注目すべきことがあります。1次スキーム(図3)では、NVIDIA GTX TITANがAMD 7970を上回りますが、2次多項式スキームでは、より多くのメモリーとレジスターを必要とするので、AMDが明らかにNVIDIAを上回ります。これは、NVIDIAアーキテクチュアのレジスターとローカル・メモリーが足りないために、高いoccupancyを得られず、性能を妨げていることを示します。」
図4からは、Intel Xeon Phiアーキテクチュアの性能が、GPUよりも低いことが解りる。これは、OpenCLの実装に起因する可能性があるが、OpenMPの実装では、8コアのIntel Xeon E5-2690 CPUと比べて10%から20%の性能向上を得られている。
「CPUと同じソースコードを使えるので、Intel Xeon PhiはGPUよりも非常に使いやすいという一般的な議論は幻想です。」と、著者らは結論する。
構造格子および非構造格子のアルゴリズムについて、OpenMPマルチスレッド並列性を活用するようにアルゴリズムを変更すると、Intel Xeon Phiでの逐次実行と比べて200倍の速度を出せると示せた。しかし、正味の性能は8コアCPUよりもそれほど高くなかった。この違いに驚いて、著者らは、4スレッドのハイパー・スレッディングがメモリー・レイテンシーを隠蔽するために不十分であると推測している。GPUでは、レイテンシー隠蔽のためにスイッチするスレッドの数があるが、キャッシュ性能の不足も関係すると著者らは追記している。
この論文は、システム・アーキテクチュアが特定のワークロードに対する文脈で評価される必要があるとの注意としても有用である。非構造格子に関するアルゴリズムのためのOpenCLカーネルについて、著者らは結論を述べている。「2種類のGPUは、Intel Xeon Phiアクセラレーターよりも高性能と思われます。そして、AMD GPUは、重たい計算カーネルについて、NVIDIA GPUよりも明らかに効率的な傾向があります。」