Elmer:並列計算実行

2013-10-15 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
3、0、3、1、0、 2、1、0、0、0(38)で、換算ポイント 55pt 。
・-・ - -・

さて、本文。

またまた「Elmer」について。

ソルバーをパラレル実行する方法。

OpenFOAM」では、
特にLinux(Ubuntu)版では、当然(?)パラレル実行は出来る。

詳しくは、
OpenFOAM 学習:並列計算実行

そして、Windows版でも。

OpenFOAM:MS-Windows版
  ・・・・・
  2.本体のバイナリをダウンロードする。
      「OpenFOAM.7z」32.5MB で、
  ・・・・・
  ・・・・・
  4.並列計算用MPIの本体
    「Open MPI」のインストーラをダウンロードする。
       「OpenMPI_v1.6.1-1_win64.exe」 3.42MB
  ・・・・・

つまり、「Open MPI」を使っている。

一方、
OpenFOAM:MS-Windows版 もう一つ
  ・・・・・
  「OpenFOAM-2.1.7z」が置いてある。
  サイズは、107 MB
  「21 Apr 2012」にアップしたもの。
  前回のモノは、「OpenFOAM.7z」で、
  「OpenFOAM 2.1.x for Win64」32.5MB
  大分容量が違う?
  ダウンロードしてみた。
  「OpenFOAM-2.1.7z」の中身は???
  「OpenFOAM-2.1」フォルダー1つで、
  その中には、3つのフォルダーと4ファイル。
  つまりは、オールインワンでした。

では、、
  「OpenFOAM-2.1/ThirdParty-2.1.0/mpich2-1.4.1p1/」
以下にあるように、
「MPICH2」を使っている。


MPI関係では、
「OpenMPI」と「MPICH2」の2種類ある。
(他にもあるようだが???)
因みに、
こんなページもあった:
MPICH2 vs OpenMPI ・・・
  ・・・・・
  基本的にMPIを使う場合は、
   ノード間の通信は極力少なくする方がよいので、
  大きいサイズの転送はあまり気にしなくてよく、
   小さい方のレイテンシを気にした方がよい。
  いずれにしてもMPICH2とOpenMPIはパフォーマンスの差は
   それほど気にしなくてもいいのかもしれない。
  余計な設計がいらない分、OpenMPIの方が使いやすいかも。


それで、
本題の「Elmer
こちらも当然の如く(?)並列計算実行できる。

「ElmerGUI」を立ち上げて、
「Run」メニューの「Parallel setting...」を開くと、

「Executable」の欄には、
  「C:/Program Files/MPICH2/bin/mpiexec.exe」
と入っている。

そうか、
「Elmer」は、「MPICH2」を想定???


それで、
OpenFOAM:MS-Windows版 もう一つ
の方を導入した時に、
一緒にインストールされた、
  「OpenFOAM-2.1/ThirdParty-2.1.0/mpich2-1.4.1p1/bin/mpiexec.exe」
を指定して、
「Elmer」を並列実行しようとしたが、・・・・・

エラー?????!!!!!

正に、この「Stack Overflow」のQ&A:
mpi - MPICH2 Unable to Connect in Windows 7
の如し。

つまり、
  Unable to connect to 'RIJDZUAN-PC:8676',
  sock error:generic socket failure,
  error stack: MPIDU_Sock_post_connect(1200):
    unable to connect to RIJDZUAN-PC on port 8676,
  ex hausted all endpoints (errno -1) MPIDU_Sock_post_connect(1247):
  unable to connect to RIJDZUAN-PC on port 8676,
  No connection could be made
  because the target machine actively refused it. (errno 10061)

に似たエラーメッセージ。

結局の処、

「smpd」が働いていない。


そこで、
回答(インストール手順)の通りに実行。

もとは、「ここにある?

 1.Uninstall previous version of MPICH2
 2.Open an admin command prompt by right-clicking
    on the command prompt icon and selecting "run as administrator"
 3.Run "msiexec /i mpich2-1.3.2p1-win-ia32.msi" from
    the admin command prompt to install MPICH2
 4.During installation select that MPICH2 be installed
    for "Everyone" for all users.
 5.Run wmpiconfig and store username/password.
    EDIT: Use your REAL windows login name and password.
 6.Add "C:\Program Files\MPICH2\bin" to system Path and EDIT:
    no need to reboot
 7.Check smpd using 'smpd -status'.
    it should return 'smpd running on $hostname$'
 8.To test execution environment,
    go to the directory $MPICHROOT\examples and
    run cpi.exe using: 'mpiexec -n 4 cpi'

それで、本家
MPICH | High-Performance Portable MPI
サイトに行き、
Downloads | MPICH」のページを見た。

「Packages Included in UNIX/Windows Distributions:」
の、
「Microsoft Windows」にあるものは「1.0.3」なので、

「Unofficial Binary Packages:」

「Windows」の [x86_64] が、「1.4.1p1」なので、
こちらをダウンロードした。
「mpich2-1.4.1p1-win-x86-64.msi」(9.35MB)


それで、
上記のインストール手順、即ち、
1.既存の「MPICH2」の痕跡を消す。(手で入力した「Path」定義も)
2. --- ダウンロードした「.exe」をダブルクリック。
3. --- 管理者権限で、インストール続行。(デフォルトで。)
4.インストール途中で、「全てのユーザー」を選択。
5.インストールが終わったら、「wmpiconfig」を起動して、
  じゃなく「wmpiregister.exe」で? パスワードを登録。
6.「Path」に「C:¥Program Files¥MPICH2¥bin」を登録。
7.DOSプロンプトで、「smpd -status」を実行。( smpd の起動確認。)
8.「examples」ディレクトリに移って、「mpiexec -n 4 cpi」を実行。
 ( mpiexec の動作確認。)


これで、目出度く
「Elmer」でも、「並列計算実行」が出来た。


補足:
此まで、PCログインでパスワードを指定していなかった。
しかし、上記手順5.で、ログインパスワードを登録しないとダメ。
なので、PCログインのパスワードを指定するようにした。
この値を手順5.で指定。



それから、
「ElmerGUI」の、
「Run」メニューの「Parallel setting...」
で出てくる画面の、
「Arguments」の欄には、
  「・・・ ElmerSolver_mpi.exe」
と入っているが、

「・・・ ElmerSolver.exe」
が正しい様です。

すくなくとも、<紙>の環境では、そうしないとダメ。
と云うか、
「ElmerSolver_mpi.exe」は見つからない。
「ElmerSolver.exe」しか存在しない。


さらに、
「ElmerFront」は無い。
Elmer Discussion Forum - View topic - elmer front missing


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


131007(120718)
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

ELMERでのプログラム法

ELMERでのMPIができないか調べていてここに
たどり着き、MPIのインストールは無事できました。
ありがとうございました。

ELMER側ではどうすればMPIが可能でしょか?
通常のシングルコア計算のケースを読んで
パラレル設定だけを変更して実施しても
上手くいきませんでした。おそらくメッシュの
ブロック分割等、メッシング時点で手を入れないと
だめかと思うのですが・・・

ざき さんへ

こんな記事でも、
何かの役に立てれば光栄です。

<紙>は基本的には、
本家、Linux版「OpenFOAM」を
「CAELinux」で動かすか、
Windows 版を使っています。

当時、他のツールも調査したりしていて、
「Elmer」を、そして「MPICH2」で確かめていた。

今、資料を探し出して、整理してみました。

「mpiexec」は、「C:\Program Files\MPICH2\bin」にある。
以下、メッシュのディレクトリがある場所でDOSプロンプトで作業。

先ず、構造データを分割していた。
「ElmerGrid 2 2 <メッシュのディレクトリ> -metis <分割数>」
例えば、
「ElmerGrid 2 2 Elmer -metis 2」

それで、<メッシュのディレクトリ>に移って:
即ち、「cd Elmer」

そうして、ソルバ実行:
「mpiexec -n 2 ElmerSolver >log.txt」とか

Merge については、任意だが、
「ElmerGrid 15 3 <出力ファイル名> -partjoin <分割数>」
の様にしていた。
ゴメンナサイ「15 3」は何だったか思い出せない。
因みに、メッシュのノード数は 33x33x33 でした。

こんな程度で宜しいでしょうか?

今後とも宜しくお願い致します。

動きました

お返事ありがとうございます。
やはりメッシュの分割が必要なんですね。
こちらでもELMERGUIのparallelあたりを
改めて見直してみましたが、
「ElmerGrid 2 2 <メッシュのディレクトリ> -metis <分割数>」
「ElmerGrid 15 3 <出力ファイル名> -partjoin <分割数>」
に相当するコマンドがGUIのパラレル欄で書いてあるのでGUIでも
できるかなと思い、家のVISTA32bit版ELMERGUIで
「Use parallel solver」チェックオンしたらサックリ動きました。
Windows7の64bit版ELMERだと
mpiの甲斐なく動かなかないのですが・・・
コアのハイパースレッディングがあると
だめなんでしょうか?
もう少し調べてみます。

ざき さんへ

「動きました」と云うことで、
一段落ですね。

<紙>のマシンは、
CPU がcore i5 で、
OS は、Windows 7 Home Premium x64
です。
それで、DOSプロンプトで実行しています。
正確には、“Perl”の「system」関数を使っています。
メッシュ分割で、
「partitioning.2」フォルダが出来ました。

それで、もうお仕舞いにして、
“OPenFOAM”のWindows 版がメインです。

貴殿も、頑張って下さい。

今後とも、宜しくお願いします。

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
04 | 2017/05 | 06
- 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 - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク