プログラムの高速化・並列化サービスの事例

チューニングレポート<要約>:Quantum EspressoのFFTコンポーネントGWWの最適化(その2)

*ここに掲載するのは、HECToRレポート「Improving the performance of GWW A DCSE project, D. Casterman, The University of Sheffield」を要約したものです。

[2017年4月掲載]



概要

このプロジェクトは、dCSEプロジェクト「GWWパッケージの改良」のエジンバラ大学Iain Bethune博士によって行われた作業[1]に引き続く作業です。 この作業の主な目的は、ペンシル分割に基づいた新しいFFTアルゴリズムを実装することです。この新しいアルゴリズムは、Quantum Espresso(QE)パッケージに実装されている既存の平面分割を置き換えるものではありません。計算に使用されるプロセッサの数がQEで定義された2D平面分割アルゴリズムの限界を超える場合に、変換される3D関数のz軸に沿った点の数で分割するものです。具体的な内容は以下の通りです:

  • FFTルーチンコードを分離してテストセットを作成する(1人月にて完了)
  • PWのFFTルーチン内でペンシル分割を実装する(つまり、既存のデータ分散が、新しいペンシル形式にデータを取得するためにFFTルーチン内で必要な通信を行う)(4人月にて完了)
  • PWとPHのデータ分散を変更する(5ヶ月で未完)
  • テストと検証(上述と並行作業)

この報告は、QEパッケージのPWとPHコード[2]のスケーラビリティを向上させるための、3D高速フーリエ変換(3D FFT)の完全なペンシル分割を記述しています。この方法は、Jacode and Sigrist [3-4]が提示した研究に部分的に従っています。
PWコードとPHコードへのアルゴリズム統合は、プロジェクト時間制限のため完了していません。この報告で示した計算は、国立コンピュータグリッド施設HECToR [5]で実施されました。

·Quantum EspressoとGWW

Quantum Espresso [2](電子構造のシミュレーションおよび最適化研究のためのソースパッケージ)は、電子構造計算とナノスケールでの材料モデリングのためのコンピュータコードの統合スイートです。 これは、密度汎関数理論、平面波、擬ポテンシャル(ノルム保存と超音波の両方)に基づいており、Hartree-Fockやハイブリッド関数(PBE0、B3LYP、HSE)を含む一連の擬ポテンシャルと交換相関関数を実装しています。 DEMOCRITOS国立シミュレーションセンター(Trieste)と欧州および米国の他のいくつかの材料科学センターとの国際協力によって開発されました。 このコードは、以下のように異なる目的で実装された異なる実行ファイルを持ちます:

・pw.x(MDを含めた電子・イオンの構造)
・ph.x(密度汎関数/摂動理論によるフォノン)

Quantum EspressoはFortan 90で記述され、約1000個のソースファイルで30万行以上のコードで構成されています。 各実行ファイルのソースに加えて、全ての実行ファイルで共有される共通のModulesディレクトリが存在します。これには、I / O、並列化、データ型、FFTなどの一般的な機能が含まれます。線形代数演算のためのBLAS、LAPACKおよびScaLAPACKの他に、FFTライブラリ(例えば、FFTW3)を含む多くの外部ライブラリが必要とされます。
GWW(Wannier関数によるGW計算、gww.x)は、最近Quantum Espressoパッケージに追加されたもので、Paulo Umari博士によって開発されました。コードは、GW近似内の局所Wannier軌道をベースとして分極を計算します。 従来の平面波ベースの手法よりも約2桁高速です。

·影響

Quantum espressoは、凝縮系物理学研究者により広く利用されているコードです。スケーラビリティの向上は、今後ますます複雑になる現実的な構造の研究に不可欠です。最近の論文では、1200原子程度のサイズの構造研究が文献[6]に示されています。このような系では計算負荷が問題で、系のバンド構造などの特性を評価するためには、数千プロセッサに対するコードのスケーラビリティが必要です。特にGW法は、電子間の複雑な相互作用を正確にモデル化するため、このバンド構造を推定する最も正確な方法であることが過去数十年に渡り示されています。しかしながら、この方法は、これまで問題を解くのに必要な計算資源要求があまりにも大きいため、少数の原子に限定されてきました。しかし、この方法のスマートな解決法と実装がPaolo Umari博士によりQuantum Espressoパッケージに最近追加され、物性物理学を研究する科学コミュニティ全体が大きな関心を寄せています。

FFT

·アルゴリズム

最初のステップは、標準コミュニケータMPI_COMM_WORLDから関数MPI_COMM_SPLITを用いて、2つのサブコミュニケータComm_RowとComm_columnを作成することです。この時点で、プロセッサはNcol列とNrow行を持つ2Dデカルト格子として人工的に編成されます。

2つのコミュニケータを作成した後、各プロセッサで実行する1D FFTの数を決定します。理想的には、作業負荷を均等に分散させるために、この数値を同じにすべきです。アルゴリズムは以下のようになります:

1. x方向の1D FFT
2. データの再配置
3. サブコミュニケータのCOMM_COLUMNのMPI_ALLTOALLv実行
4. データのアンパッキング
5. y方向の1D FFT
6. データの再配置
7. サブコミュニケータのCOMM_ROWのMPI_ALLTOALLv実行
8. データのアンパッキング
9. 1次元FFT(z方向)

·FFTW

1D FFT計算には2通りあり、一つは1個の複素数-複素数1D FFTプランを作成して、ループでFFTを計算するやり方です。もう一つのやり方は、複数のFFTプランを作成するやり方です。
この2つの方法を、64コア上で111x143x78ポイントを用いて50個の正/逆FFT変換についてテストしました。結果は、最初の手法が0.66秒だったのに対し、後者の方が0.59秒と高速でした。

性能

テストには単純なsine関数と、2種のグリッド:128x128x128と111x143x78を用い、平面分割とペンシル分割の性能を評価しました。128x128x128グリッドでは、正/逆FFTを5000回計算を行いました。結果は、共に似た高速化傾向を示しますが、ペンシル分割はその性質からさらに大きなプロセッサ数(1000)までスケールします。少数プロセッサにおいては平面分割のほうが高速ですが、128プロセッサでは逆転して、原理的にそれ以上の計算はできません。このケースでは、データは全プロセッサに均一に分散されます。

·2D仮想プロセッサグリッドによる改善

ペンシル分割ではプロセッサは2Dグリッドに構成されます。つまり、Np=NcolxNrowを満たす最適な2D仮想プロセッサグリッドの選択が重要となります。ここでNp,Ncol,Nrowはそれぞれ、プロセッサ数、プロセッサ行数、列数です。如何なる場合も同様に、以下の計算が行われます:

・各FFT変換(x、y、z方向)の前に、プロセッサ当たりのペンシル数を計算する。
・これらの加重平均計算

最適な2Dプロセッサグリッドは最小の加重平均を持ちます。このやり方はベストではありませんがここに示すように良好な性能を示します。このやり方で、再度2つのグリッド111x143x78と128x128x128でテストしました。

ここでは加重平均は最小と最大の場合を比較します。111x143x78グリッドでの結果は、Np=16プロセッサまでは同じ陽にスケールしますが、これを超えると最小加重平均が優勢になります。この性能はは256プロセッサで27%と最大になります。
128x128x128グリッドでは、プロセッサ配置とは独立にペンシルが一様に分散されます。このため最小/最大加重平均ケースは同じ性能を示します。


謝辞

このプロジェクトは、nAG Ltd.が運営するHECToRの分散計算科学および工学(CSE)サービスの基に実行されました。英国の国立スーパーコンピューティング・サービスである、HECToR:英国リサーチ・カウンシル・ハイエンド計算サービスは、リサーチ・カウンシルを代行するEPSRCが管理しています。そのミッションは英国学術界の科学および工学の研究支援です。HECToRスーパーコンピューターは、UoE HPCx Ltd.およびnAG Ltd.のCSEサポートサービスにより管理運営されています。

文献

[1] "Improving the performance of GWW: A dCSE Project", I. Bethune (2010).
[2] Quantum Espresso, http://www.quantum-espresso.org/
[3] Fourier Transforms for the BlueGene/L Communication Network, Heike Jagode (2006).
http://www2.epcc.ed.ac.uk/msc/dissertations/dissertations-0506/hjagode.pdf
[4] "Optimizing parallel 3D Fast Fourier Transformations for a cluster of IBM POWER5 SMP nodes", Ulrich Sigrist (2007).
http://www2.epcc.ed.ac.uk/msc/dissertations/dissertations-0607/2298876-27hd07rep1.1.pdf
[5] HECToR website, http://www.hector.ac.uk
[6] F. Varchon, P. Mallet, J.-Y. Veuillen, and L. Magaud, Phys. Rev. B 77, 235412 (2008).
関連情報
MENU
Privacy Policy  /  Trademarks