高速化・並列化
■しかく 最新情報
- OpenMP を用いた Fortran コードの並列化基礎セミナー (2012年7月11日)
- 事例(構造解析 D社様)を掲載しました (2012年5月28日)
- "PARDISOの利用"ページを追加しました (2012年5月28日)
- "OpenMPとは"ページを追加しました (2012年4月20日)
- 事例(千葉大学 野口・柏崎研究室 様)を掲載しました (2012年2月21日)
計算時間にお困りではないですか?
製品の設計や開発サイクルにおいて、数値計算が重要な位置を占めるに伴い、
- より大規模なモデルを計算したい
- よりメッシュを細かくしたい
- より時間ステップを細かくしたい
- より詳細なモデルを組み込みたい
- より計算パラメータを増やしたい
:
など、数値計算への要求は高まり、増加する計算時間にお困りではないでしょうか。
[画像:計算時間]計算時間が増加すると、生産性の低下や様々なコストが増加するだけでなく、そもそも開発サイクルに間に合わずに計算不可能である場合もあるかと思います。
これを解決する方法として、高速化・並列化(HPC)があります。
複数コアを100%使えていますか?
近年、CPUはクロック周波数の向上が頭打ち気味となり、コア数の増加や命令セットの拡張で性能向上を図っています。
また、数年前からコアを数百個搭載しているGPU(Graphics Processing Unit)でも計算が行われるようになりました。
市販のソフトでも多くが並列計算に対応していることからも、並列計算が当たり前の時代になりつつあります。
シリアル用のプログラムをお使いですと、ハードウェアの性能を生かし切れていないだけではなく、計算時間、つまり生産性や効率でハンデを負っているかもしれません。
今後、シリアルコードのままではハードウェアの進化による性能向上もあまり望めませんので、時代に合わせて並列計算に対応することは重要だと考えます。
並列化するには
ではプログラムを並列化するにはどうしたらよいのでしょうか。
計算環境として敷居が低いものとしては、CPUの複数コアを利用するOpenMP(Open Multi-Processing)があります。
また、本来画像出力に用いられるGPUを用いるGPGPU(General Purpose computing on GPU)があります。
これらのものは、基本的に複数コアを搭載したCPUか、GPGPUに対応したGPUがあれば現在の環境で利用できます。
一方で複数のマシンを利用して並列計算を行うものとしてMPI(Message Passing Interface)があります。
こちらはクラスタを組む必要がありますが、複数台のメモリも使用できるため、1台のマシンでは不可能な、大規模なモデルを扱えるようになります。
しかし、実際の作業となると、一番並列化が容易なOpenMPでも、実際現場で使われているプログラムは複雑で、並列化が容易でないことも多々あります。
何よりも、普段開発や解析をされている方がプログラムの並列化に時間を費やすのは難しいのではないでしょうか。
一方、コンパイラの自動並列化機能を用いる方法もありますが、 実際のプログラムではなかなか効果が得られない場合が多々あります。
そのような方のために、弊社では、高速化・並列化するサービスをご提供しています。
事例については、高速化・並列化事例をご覧ください。
関連資料ダウンロード
- 高速化・並列化サービス カタログのPDF高速化・並列化サービス カタログ 高速化・並列化サービスのカタログです。 ( PDF形式, 全4ページ, 849KB )
- OpenMPを用いた Fortranコードの並列化基礎セミナー 一部資料のPDFOpenMPを用いた Fortranコードの並列化基礎セミナー 一部資料 OpenMPを用いた Fortranコードの並列化基礎セミナーの一部資料です。 ( PDF形式, 全32ページ, 2.26MB )
続きの資料、デモプログラムをご希望の方は、お気軽にお問い合わせください。 - 高速化・並列化事例01のPDF高速化・並列化事例01 早稲田大学草鹿研究室と共同で行った、流体と化学反応の連成解析コードの並列化に関する資料です。 ( PDF形式, 全4ページ, 439KB )