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

高速化・並列化

HPC.jpg

■ 最新情報

計算時間にお困りではないですか?

製品の設計や開発サイクルにおいて、数値計算が重要な位置を占めるに伴い、

  • より大規模なモデルを計算したい
  • よりメッシュを細かくしたい
  • より時間ステップを細かくしたい
  • より詳細なモデルを組み込みたい
  • より計算パラメータを増やしたい
  •          :

など、数値計算への要求は高まり、増加する計算時間にお困りではないでしょうか。

計算時間

計算時間が増加すると、生産性の低下や様々なコストが増加するだけでなく、そもそも開発サイクルに間に合わずに計算不可能である場合もあるかと思います。

これを解決する方法として、高速化・並列化(HPC)があります。

複数コアを100%使えていますか?

近年、CPUはクロック周波数の向上が頭打ち気味となり、コア数の増加や命令セットの拡張で性能向上を図っています。
また、数年前からコアを数百個搭載しているGPU(Graphics Processing Unit)でも計算が行われるようになりました。
市販のソフトでも多くが並列計算に対応していることからも、並列計算が当たり前の時代になりつつあります。
シリアル用のプログラムをお使いですと、ハードウェアの性能を生かし切れていないだけではなく、計算時間、つまり生産性や効率でハンデを負っているかもしれません。
今後、シリアルコードのままではハードウェアの進化による性能向上もあまり望めませんので、時代に合わせて並列計算に対応することは重要だと考えます。

クロックとコア数の推移Intel®製CPUのクロックとコア数の推移

並列化するには

ではプログラムを並列化するにはどうしたらよいのでしょうか。
計算環境として敷居が低いものとしては、CPUの複数コアを利用するOpenMP(Open Multi-Processing)があります。
また、本来画像出力に用いられるGPUを用いるGPGPU(General Purpose computing on GPU)があります。
これらのものは、基本的に複数コアを搭載したCPUか、GPGPUに対応したGPUがあれば現在の環境で利用できます。

一方で複数のマシンを利用して並列計算を行うものとしてMPI(Message Passing Interface)があります。
こちらはクラスタを組む必要がありますが、複数台のメモリも使用できるため、1台のマシンでは不可能な、大規模なモデルを扱えるようになります。

しかし、実際の作業となると、一番並列化が容易なOpenMPでも、実際現場で使われているプログラムは複雑で、並列化が容易でないことも多々あります。
何よりも、普段開発や解析をされている方がプログラムの並列化に時間を費やすのは難しいのではないでしょうか。
一方、コンパイラの自動並列化機能を用いる方法もありますが、 実際のプログラムではなかなか効果が得られない場合が多々あります。

そのような方のために、弊社では、高速化・並列化するサービスをご提供しています。
事例については、高速化・並列化事例をご覧ください。

高速化・並列化サービス



関連資料ダウンロード

お問い合わせ