• 製品案内
  • 受託解析・開発
  • 実績・事例
  • セミナー
  • サポート
  • 資料ダウンロード
  • お問い合わせ

高速化・並列化事例

掲載可能な高速化・並列化事例をご紹介します。

構造解析 D社様

 言語 / 並列方法 : FORTRAN / PARDISO+チューニング
 マシン : Intel® CoreTM2 Quad Q9650 3.0GHz
 オリジナル : ソルバー:2059 s、全体:2324 s
 並列化後 : ソルバー:10.1 s(204倍)、全体:241.1 s(9.6倍

D社様内製の構造解析プログラムでは、ソルバー部分がボトルネックとなり計算時間がかかるため、 多ケースの計算を行うのに作業効率が悪くなっていました。
そこで、プログラム全体の90%近くを占めていたソルバーをPARDISOへと変更し高速化を図りました。その他の見直しも行い、結果的にソルバー部分では200倍を超える高速化となりました。
さらに、行列作成部分や、配列確保を最適化したことにより、プログラム全体でも9.6倍の高速化となりました。 また、PARDISOを利用することで、元のソルバーよりも残差が一桁程度小さくなる効果も得られました。
今回、ソルバー以外の並列化は行っていないため、ソルバー高速化により顕著 になったその他の部分をOpenMPで並列化することで、さらなる高速化も期待でき ます。

構造解析 千葉大学 野口・柏崎研究室

 言語 / 並列方法 : FORTRAN / PARDISOを用いたチューニング
 マシン : Intel® CoreTM i7-2600 3.4GHz
 オリジナル : ソルバー(1ステップ):8.15 s、全体:64 m
 並列化後 : ソルバー(1ステップ):1.25 s(6.5倍)、全体:12 m(5.3倍

高速化前の構造解析プログラムでは、大規模な計算を行うため計算時間がかかるという問題がありました。プログラムを調査したところ、その大部分は行列ソルバーが占めていました。そこで、スカイライン法を用いていたソルバーの部分を Intel® MKLのPARDISOに変更することで高速化を図りました。
ソルバー内のみの改良であったため、PARDISOで用いられるCRS形式へと行列を変換する点など、オーバーヘッドとなる部分もありましたが、それらを含めても、ソルバー部分で元の6.5倍の高速化となりました。


野口教授よりコメント:
『 鉄筋コンクリート部材の非線形3次元解析では、自由度が大きく、また材料の非線形性も高いので、繰返し載荷でのステップ数や収斂回数もかなりの数となり、1ステップでの解析時間の短縮が全体の解析時間の短縮に繋がってきます。今回、Intel® MKLのPARDISOへのソルバー変更による高速化は元の6.5倍となり、研究室での解析時間の劇的な短縮が図れ、解析結果の検討の時間の確保やパラメータ解析への展開が新たに図れるというメリットに繋がりました。』

流体+化学計算 早稲田大学 草鹿研究室

 言語 / 並列方法 : FORTRAN / OpenMP
KIVAによる燃焼計算
クリックでムービー表示
 マシン : Intel® Xeon® X7560 2.26GHz (8 core) × 2
 オリジナル : 124.8 h
 並列化後 : 8.3 h (15.1倍)

ディーゼルエンジン燃焼の計算では、化学反応の計算に一段総括反応が用いられてきましたが、化学反応への依存度が高い燃焼方式が提案されるようになり、素反応過程を含めた計算が求められるようになっています。しかし素反応の計算を行うと計算時間が膨大になり、実用的な時間で計算できなくなってしまいます。そこで、計算の99%を占めている化学反応の計算を並列化することで、計算時間の短縮を図りました。
プログラムの内容とデスクトップマシンでの利用を想定し、OpenMPで並列化を行った結果、 8コア×2のマシンで、125時間ほどかかっていた計算が8時間強、15倍程度の高速化となりました。

詳細はこちら

三又秀行, 草鹿仁, 大聖泰弘 詳細な素反応過程を考慮した数値流体コードによるディーゼル燃焼の数値解析―マルチコア対応による高速化― 自動車技術会講演会前刷集 2010年 9月 no.149-10 20105689

流体計算 社内コード

 言語 / 並列方法 : FORTRAN / GPGPU(CUDA) 3次元流体計算
 マシン : Intel® CoreTM2 Q9650 3.00GHz
  + NVIDIA® GeForce® GTX 285
 オリジナル : 全体:10475 s、 ソルバー:8502 s
 並列化後 : 全体:2659 s (3.9倍)、 ソルバー:668 s(12.7倍)

3次元で非定常の流体計算を行うと計算時間がかかり問題でした。計算時間のうち、全体の81%をソルバーであるGPBiCGに費やしていたため、ソルバー部分の高速化を図りました。方法としては、デスクトップでの高速な計算を期待して、GPGPUを選択しました。
その結果、ソルバー部分で12.7倍、プログラム全体で3.9倍の高速化となりました。今回はソルバーのみ高速化を検討しましたが、他の部分も高速化すれば、プログラム全体でもさらなる高速化が期待できます。

画像処理 A社 様

 言語 / 並列方法 : C言語 / GPGPU(CUDA)
画像処理
※この画像はイメージです
 マシン : Intel® CoreTM2 Q9650 3.00GHz
  + NVIDIA® GeForce® GTX 275
 オリジナル : 91.5 s
 並列化後 : 0.53 s (173倍)

元のプログラムは一枚画像処理をするのに90秒ほどでしたが、処理する画像の枚数が膨大であるため、画像処理時間が問題となっていました。画像処理ということもあって、GPUでの計算に非常に適していたため、 GPGPUを用いてプログラムの高速化を図りました。
その結果、一枚当たり0.5秒強と170倍程度の高速化となり、作業効率を上げることができました。

流体計算 B研究所 様

 言語 / 並列方法 : FORTRAN / MPI
 マシン : 8コア構成のシステム
 オリジナル
 並列化後 : モデルにより6~7倍

非構造格子の流体解析プログラムをMPIで領域分割し、並列化を行いました。その結果、モデルにより8CPUで6~7倍の高速化となり、さらに、より大きなモデルを計算できるようになりました。

形態係数計算 C社 様

 言語 / 並列方法 : FORTRAN / OpenMP
形態係数
※この画像はイメージです
 マシン : Intel® Xeon® X5470 3.33GHz (4 core) × 2
 オリジナル : 全体:129.9 s、形態係数部分:128.9 s
 並列化後 : 全体:18.7 s (6.9倍)、形態係数部分:17.7s (7.3倍)

形態係数の計算は、形状を構成する各要素からそれぞれ数千の放射束をランダムに発しており計算時間がかかります。 高速化するに当たり、レイ・トレーシングと似ていることから、画像処理の得意なGPUを用いた高速化が考えられましたが、一部GPUの性能を生かせない処理が含まれていたため、OpenMPを用いて並列化を行いました。
その結果、元のプログラムで129.9 s かかっていた計算が、8コアのマシンで18.7 s と、6.9倍の高速化となりました。形態係数の計算部分では7.3倍となっていることから、実際計算する大きなモデルでは、より並列化効率が期待できます。

構造解析 社内ソフトウェア MECHANICAL FINDER

 言語 / 並列方法 : FORTRAN / GPGPU(CUDA)
MECHANICAL FINDER
クリックでムービー表示
 マシン : Windowsマシン + NVIDIA®社製GPU
 オリジナル : 
 並列化後 : モデルにより8倍

骨強度評価ソフトウェア MECHANICAL FINDER では、非線形解析や動解析を行うと ソルバー部分が計算時間の大部分を占め、ボトルネックとなります。 そこで、Fortranソルバー部分のGPGPU化を行い、解析時間の高速化を図っています。
現在は椎骨や、単純な大腿骨と比較的小さいモデルですが、8倍の高速化となっており、 大きなモデルではより高速化が期待できると考えています。

 

以上、ご紹介できる一部の事例ですが、その他にも高速化・並列化事例がございます。
ご相談はページ下のお問い合わせボタンよりお気軽にどうぞ。


関連資料ダウンロード

お問い合わせ