仮想PCのubuntuでdecomposeParによる並列計算した場合の計算速度低下

ヒョウ

ヒョウです。家で流れのシミュレーションをしたいと考えている方にとって,購入する計算機の選定はとても重大なイベントです。CPUは何コア?グラボは必要なの?メモリはいくら?増設できる?など。失敗できないですよね。
openfaomで計算速度を上げたい場合,decomposeParで並列計算の設定をするのが一般的と思います。私の計算環境は流れのシミュレーションを行うにはロースペックです。ですが私がやりたいことにとってはこれで十分です。しかし,タイトルの事象が起こりました。どういう考えで計算機の仕様を選ぶべきか,思っていることを書きます。(本文作成;2021/4/11)

並列化したほうが計算が遅かった私の計算環境

ノートPCです。以下の計算環境です。
***********************************
PC; Aspire V3-571 (acer)
CPU; Intel(R) Core(TM) i5-3210M 250GHz 2.50GHz
(2CPUで計4スレッド,グラボなし)
実装メモリ; 8.00GB  (購入時に最大まで増設)
OS; Windows 10
仮想PC; Oracle VM VirtualBox
仮想OS; Ubuntu 20.04 lts
仮想PCへのCPU割り当て; 3プロセッサー (3スレッドということです)
仮想PCへのメモリ割り当て; 4096 MB
***********************************

openfaomで流れのシミュレーションをする場合は単相で100万メッシュ以下,1ケースの計算に6時間以上はかけたくないと思っています。160万メッシュの単相 icoFoamによる計算を実施したところ,計算に6時間以上かかりそうだったのでdecomposeParにより2並列の計算をしたところ並列化したほうがやや計算速度が劣る結果でした。計算中のメモリ使用は最大3.2GB程度で上限に対して余裕はありました。

仮想PCには振り分けられるコア数・メモリに制限がある

仮想PCに割り当てられるCPUのコア数やメモリは,実際のPCに実装されているすべてを割り当てることができません。私のような環境を想定される方は気を付けたほうが良いことと考えます。ハイエンドな計算機の購入を想定される場合はほとんど気にする必要はないでしょう。

アムダールの法則に基づく推定原因

計算を始めてから終わるまでのプロセスの中で,並列化できるプロセスの割合から,並列数アップによる計算速度向上の効果を示す法則です。私の計算環境では並列化できないプロセスの影響が大きく計算速度が向上しなかったのかもしれません。
ウィキペディア「アムダールの法則」;
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A0%E3%83%80%E3%83%BC%E3%83%AB%E3%81%AE%E6%B3%95%E5%89%87

仮想PCではなくデュアルブートがおすすめ

過去にopenfoamの調査をしていた時はこの計算機でwindowsとubuntuをデュアルブートさせており,ubuntu単独で計算を実行していました。この時は4並列まで計算して計算時間が短縮されていました。私の場合は今の計算対象にとってはこの計算環境で十分ですが,目的に応じてまたデュアルブート化すると思います。

購入する計算機選びは計画的に

PCの購入にあたりローエンドよりの仕様を想定される場合は,どういった計算をしたいのかという目的に合わせて仕様を決めることが大切です。私と同程度の計算(メッシュ数100万以内の単相計算)を行うならばCPUは1コアで十分と思われるかもしれませんが,CPUは2コア以上,メモリは6GB以上を絶対おすすめします。計算を走らせている横でレポート作成,プレゼン資料作成をすることがあるからです。
PCを複数所有する場合は別ですが,PC1台のみ所有して私と同程度の計算の実施を想定されるならば最低限上述の仕様が必要と考えます。価格は5年ほど前ですが量販店で5万円弱でした。

これから自分で計算を始めようとされている方の計算機選びのお役に立てれば幸いです。

スポンサーリンク
プロフィール
この記事を書いた人

本ブログの管理をメインで担当しているライオンです。
主にアウトドア、ゲーム関連の記事を執筆していきます。

ライオンをフォローする
ヒョウ 流体力学
ライオンをフォローする
mister Big5  サファリ系サラリーマンblog

コメント

タイトルとURLをコピーしました