Calculix 2.10Win版と2.11Linuxバイナリ版のテスト « ACS NEWS

Calculix 2.10Win版と2.11Linuxバイナリ版のテスト

2017 年 2 月 7 日 by yo yamgatta

前回、Calculix Windows版( bCOnverged)への計算時間測定機能追加方法を紹介してから
2年以上が経過した。最近になってCalculixのサイトを見てみたら、

本家:CCX_2.11
WIndows版:2.10

となっており、Windows版については、従来のbConvergedに加えて、

 – Calculix for Win
 – General Electric !!!

からも配布が開始されたようだ。Windows版3種類ともにちょろ試してみたところ、ソルバ
本体に関しての機能差はなさそうではと思われた。
ただし、Calculix for Winでは、ccx28p2~ccx211まで、4種類のバージョンが含まれている。

Windows版並列計算?
  Calculixは、Spoolesソルバを使用した場合、マルチCPUでのメモリ共有並列計算が可能
  となっている。
 指定の方法は、OpenMPで使用する環境変数を設定するのみである。
 dos> set OMP_NUM_THREADS=n

 この設定を行って、ccxを実行すると

Ver.2.8

ソルバフェーズでは、全部4CPU使用してくれていたが、

Ver.2.10 bConverged版 と Calculix for WIn版 -- まあ、良いかな。

Ver.2.10 GEマルチスレッド版 – 結果出ず

Linuxバージョンのインストールと並列計算テスト
 本家のサイトでは、ccxバイナリ版を配布しており、これをダウンロードするだけで
 実行できそうなものだが、そうではないらしい。使用しているライブラリの関係などで
 ソースコードから自分で make するのがベストらしいのだ。面倒だ、やってられない。

   本家からバイナリccx_2.11.tar.bz2 をダウンロード、解凍するとこうなっている。
    Calculix/ccx_2.11/src/ccx_2.11  – これが実行モジュール本体

  ccx_2.11をLinux (今回はCenOS7.2)のパスの当たっている場所に保存する。
  ライブラリを調べてみると

  libgfortran.so.2 というライブラリがない。そこで、/usr/lib64を調べてみる。


 
  もしこれらの情報も出なかったら、gccをインストールする必要がある。
  #yum install gcc
    非常に残念な状態だ。 so.1 と so.3 はあるのに、so.2がない。
  「大は小を兼ねる」というから、so.3 を so.2 にシンボリックリンクして、ccxを実行してみる。

  

 ダメだった。普通ならこれで諦めるか、コンパイルしようかと思うところだが、もう一度やってみよう。
 so.1 を so.2 にシンボリックリンクする。

  この状態で、ccxを再度実行してみると

  動いた!!
  OpenSuse10.3でも同じ方法で動かすことができた。ただし、2.11より前のバージョンでは効果なし。
  次に並列計算を設定(WIndowsと同じ環境変数)して試してみた。

  OMP_NUM_THREADS=8 指定なので、大体効いているが、肝心な箇所で効いていない。
  オレンジの箇所は並列効果希薄と推測され、全体としての並列効果ほぼなし。原因不明。
 

 

 

コメントをどうぞ

*