スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FEM_BLOCK(ver2.06仮):OpenMPで並列処理

少し前に試してみてあまり効果がなかったOpenMPによる並列処理。
改めて細かく検討したところなかなかの効果が出ました。
Intel Core i7 2630QM(2GHz)にてスレッド数を6にして解析。
最大で8にすることもできますが他の作業もしたいので少し減らして6に。
プログラム内で主に時間のかかっている部分を並列処理化して
OpenMPなしに比べて2~3倍の計算速度アップが得られました。
マルチコアCPUとOpenMPに感謝です。

今まで効果がなかったのはプログラム内で時間のかかっている箇所を
特定できていなかったからでした。
ほとんど時間のかからない箇所を並列化しても意味はありません。
逆に並列処理の時間のせい?で遅くなったりしました。

今回は陽解法プログラムにおいて1ステップの中での
各過程の処理時間を表示させてどこが時間を食っているのかを確認しました。
結果をみて、
・内力計算
・接触力計算
・応力計算
を並列化しました。
メインの中央差分法の計算部分はベクトル演算のためか
応力計算部分などに比べると無視できるほど計算時間が短かったので
並列処理は見送りました。

また並列化とは関係のないところで一部
1ステップ計算時間の内の80%も占めているとんでもない箇所を発見しました。
演算方法の変更でこの箇所の計算時間をほぼゼロにできました。

思わぬ副産物と並列処理化によって従来よりも10倍以上速くなりました。
(並列処理による効果は2~3倍程度。)

こうなると今まで一晩かけていた解析が1時間程度でできるようになります。
夢と希望が膨らんできました。

スポンサーサイト

コメントの投稿

非公開コメント

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
プロフィール

uglab

Author:uglab
ソフト開発会社

【Twitter】
フォローお願いします

【You tube動画一覧】
チャンネル登録お願いします


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
スポンサードリンク
    【スポンサードリンク】

リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。