第5回 計算時間を短縮する方法について | 粒子法入門

ほとんどのシミュレーション手法においてネックになるのは計算時間です。粒子法でも高い解像度で計算を行うと粒子(計算点)の総数が増えて計算量が増加し、その結果として計算時間が長くなります。1つのシミュレーションの計算時間は、短くて数分、通常は数時間、長い場合は数日から数週間以上かかります。この計算時間を短縮する方法について大きく2つに分けて以下で説明します。

1. 並列計算

1つ目の方法は、並列計算です。並列計算とは、複数の演算装置を用いて同時並行に計算を行うことで計算時間を短縮させます。例えばある演算を100回行う必要があるときに、演算装置を1つだけ用いると100回全ての計算をその演算装置が行う必要があります。しかし、もし2個の演算装置を同時並行に行うと1つの演算装置当たりの計算回数は50と半分になり、計算に要する時間が短くなります。近年、1つのCPU(Central Processing Unit)の殻の中にCPUコアと呼ばれる演算装置が複数搭載されたものが一般的に販売されています。このCPUコアを並列に用いることで並列計算を行えます。またGPU(Graphics Processing Unit)というグラフィック用のハードウェアを用いても並列計算を行えます。​

2. 粒子数の削減

粒子(計算点)の数が多いと計算量が多くなり、計算時間が長くなります。粒子の数を効率的に削減できると計算時間が短くなります。例えば大きな粒子を用いれば、必要な粒子の数を減らすことができます。ただし、大きな粒子を用いると解像度が低下し流れを詳細に表すことが難しくなります。そこで、動画1のように詳細な流れを表す必要がある領域に小さな粒子を配置し、その他の領域に大きな粒子を配置するなどの工夫(重合粒子1)など)が近年開発されています。

(a) 津波

(b) 狭い領域を通る流れ

動画1 
非均な粒子サイズによる粒子数の削減の例

重合粒子1)を適用した例。計算領域の左側に低解像度の粒子、右側に高解像度の粒子を配置した。

その他、動画2のように楕円体の粒子2)を併用することで粒子の数を効果的に削減することができます。この例では、左半分の領域に横長の楕円体の粒子を用いることで、縦方向の解像度を高く保ったまま粒子数を削減することに成功しています。これらの技術については、粒子法の洋書3)でも紹介しています。

動画2 
楕円体粒子2)と重合粒子1)を併用した粒子数の削減の例

計算領域の左側に低解像度の楕円体の粒子、右側に高解像度の球形の粒子を配置した。楕円体の領域では、水平方向の粒子間の間隔が垂直方向に比べて長く、粒子が楕円体であることがわかる。

参考文献:

1)
K. Shibata, S. Koshizuka, T. Matsunaga and I. Masaie, “The overlapping particle technique for multi-resolution simulation of particle methods”, Computer Methods in Applied Mechanics and Engineering. Vol. 325, pp.434-462 (2017)
https://doi.org/10.1016/j.cma.2017.06.030

2)
K. Shibata, S. Koshizuka, I. Masaie, “Cost reduction of particle simulations by an ellipsoidal particle model”, Computer Methods in Applied Mechanics and Engineering, Vol. 307, pp.411-450 (2016)
http://dx.doi.org/10.1016/j.cma.2016.04.026

3)
​S. Koshizuka, K. Shibata, M. Kondo and T. Matsunaga, “Moving Particle Semi-implicit Method, A Meshfree Particle Method for Fluid Dynamics”, ISBN: 9780128127797, Academic Press (2018)
https://www.elsevier.com/books/moving-particle-semi-implicit-method/koshizuka/978-0-12-812779-7

著者ご紹介

東京大学大学院 工学系研究科
システム創成学専攻 准教授
プロメテック・ソフトウェア技術顧問
柴田 和也 先生

プロフィールを見る

2007年
東京大学大学院 工学系研究科
システム量子工学専攻 博士課程修了 博士(工学)

2007年
(独)海上技術安全研究所 入所
​海の10モードプロジェクトチーム研究員

2009年
東京大学大学院 工学系研究科 システム創成学専攻 助教

2013年
東京大学大学院 工学系研究科 システム創成学専攻 講師

2017年
東京大学大学院 工学系研究科 システム創成学専攻 准教授