海洋開発研究機構の古市幹人氏

ヘテロジニアス・メニーコアワークショップで発表を行う海洋開発研究機構の古市幹人氏

流体の振る舞いをシミュレーションするやり方として、流体を小さな粒子の集まりとして取り扱う「DEM(Distinct Element Method)」と「SPH(Smoothed particle hydrodynamics)」という方法がある。海洋開発研究機構(JAMSTEC)の数理科学・先端技術研究分野の古市氏らが、これらの数値解析の手法を使って、地滑りや地層の変形などを解析しようとしている。

しかし、粒子の位置が動くとプロセサの負荷が偏ってしまう。このため、並列コンピュータでPSM(Particle Simulation Method)を効率よく実行させるのは難しいという。

  • 粒子法を、並列コンピュータで効率よく実行するのはまだ難しい

    粒子法を、並列コンピュータで負荷バランスをとって、効率よく実行させるのは難しい (この記事のすべての図は、古市氏の発表資料の抜粋である)

理化学研究所(理研)で開催された「New Horizons of Computational Science with Heterogeneous Many-Core Processors」と題するワークショップにおいて、同氏が、「Development of Parallel Particle Simulation Code and Challenges with Huge Granular System」というタイトルでこうした研究に関する講演を行った。

次の図は、砂の層で地層モデルを作り、それに力を掛けて変形を調べる実験装置の写真である。条件を調整して実験を行うと、右端の紀伊半島と四国の沖の南海トラフの地形ができるという。

これを実験ではなく、DEMを使ってコンピュータで計算する。

  • 多層の砂の層で模擬した地層に横から力を掛けて、変形を調べる

    多層の砂の層で模擬した地層に横から力を掛けて、変形を調べる

力を掛けるにしたがって、次の写真の下の方に見られる断面のように、地層は複雑に折りたたまれて階段状の地形が作られる。

  • 押されることで複雑な褶曲が発生し、階段状の地形が作られる

    押されることで複雑な褶曲が発生し、階段状の地形が作られる

次の図の右側の写真は、大型のメリーゴーラウンドのような装置で、左の写真のような砂の層で作ったモデルを回転させて遠心力で力を掛けて、どのように変形するかを調べる。

しかし、これは手間もお金もかかる実験である。このため、コンピュータシミュレーションを行っているが、京コンピュータで5000万粒子のモデルを計算するのには1回の計算で27万円かかり、いろいろと条件を変えてシミュレーションする必要があるので、一連の計算に430万円かかるという。この金額は、メリーゴーラウンドの実験装置を使うのと同程度の費用であり、コンピュータを使っても安くはならない。

しかし、コンピュータの効率が上がればシミュレーションの方が安くなり得る。京コンピュータのエネルギー効率は0.8GFlops/Wであるのに対して、PEZY-SC2は17GFlops/Wと約20倍のエネルギー効率である。これでコンピュータのエネルギーコストは1/20になる。つまり、Green500で1位となったPEZY-SC2でシミュレーションを行えば、コンピュータシミュレーションのコストは京コンピュータよりも大幅に安くなると期待できる。

  • 計算コストが下がれば実物モデルよりも安く研究ができるようになる

    砂の層で作ったモデルをメリーゴーラウンドで遠心力を掛けて変形を測定する。京コンピュータのDEMによるシミュレーションと、この実験装置の使用料は同程度。しかしコンピュータが安くなれば、シミュレーションの方が安くなる。

次の図は、PEZY-SCを使った場合の計算コストを示す棒グラフで、上側に描かれているのは拡大した棒グラフである。このグラフをみると、データを準備するPACK、PEZY-SCにデータを送るSEND、シミュレーションを行うEXEのコストは小さく、その他のOTHERの時間が大部分を占めている。また、EXEよりもPACKやSENDの方が時間が掛かっている。これに関しては、時間のかかる部分をOpenCL(PZCL)で書き直して性能を改善する計画であるという。

  • PEZY-SCを用いた場合のシミュレーションコスト

    PEZY-SCを使ったSPHシミュレーションの処理コストを、PACK、SEND、EXE、Otherの各処理に分解して表示している。それぞれ4本の棒グラフは、左から8192スレッド、4096スレッド、1024スレッド、128スレッドでの実行の場合である

次の図の左のグラフはPEZY-SCとPEZY-SC2 1チップでのEXEの実行時間のグラフで、横軸は実行スレッド数である。PEZY-SCでは8000スレッドまではリソースの競合なく実行できる。また、PEZ-SC2では16000スレッドまでリソース競合しないので、きれいにストロングスケール(Strong scale:同じサイズの問題をプロセサ数nを増やして処理すると、処理時間が1/nとなる)している。

そして、SC2はSCに比べて約7倍の性能となっている。

右側のグラフは、横軸はSC2チップの数で、こちらも理想的なカーブとよく一致して綺麗にストロングスケールしている。

  • PEZY-SCとSC2では、SC2の方が7倍速い

    左のグラフは、 PEZY-SCとSC2での1チップの実行時間。横軸は実行スレッド数である。SC2は7倍速いことが分かる。右の図はSC2のチップ数を増やした場合の実行時間で、チップ数に比例して性能が上がっている

まとめであるが、ソフトウェアの改善でロードバランスがうまく行くようになった。そして、現実的な10億粒子のシミュレーションが実用的に使えるようになってきた。

計算コストを下げる鍵はエネルギー効率であり、高エネルギー効率のPEZY-SC/SC2に期待する。

PEZY-SCを使ったSPHアプリケーションの性能評価を行い、ストロングスケーリングがうまく行くことを確認した。さらに性能を改善するためのアプリケーションの性能改善が重要である。DEMの効率的な実装やポストプロセスの処理時間は、残る問題である。

  • さまざまな技術を開発することで、10億粒子を実用的な計算精度でシミュレーションすることが可能となった

    色々なテクニックの開発で粒子法の負荷バランスが解消され、性能が上がった。その結果、10億粒子の計算ができるようになり、実用的な計算精度が得られるようになった。課題の計算コストは、エネルギー効率の高いPEZY-SCなどのプロセサに期待する。さらに高速化するために、アプリケーションのOpenCL化を進める必要などがある