DEXCS2019 for OpenFOAM(R) リリースノート

解析シーン毎にTreeFoamのサブセット機能(グリッドエディダ等)を、FreeCADのツールボタンで起動できるようマクロ化してあります。

ダウンロードはこちら(2019/10/16〜)



DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも(と言ってもCAEに無縁の人は対象外ですが・・・)簡単・即使えるようにしたマシンイメージ(isoファイル)です。

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2019では、

  • ベースOSはUbuntu-18.04.03 (LTS)
    • DEXCS2017まではMintを採用していましたが、再々度、Ubuntuに復帰しました(GNOMEデスクトップに戻った為)。
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
    • OpenFOAM-v1906
    • cfMesh v1.1.2 。

(cfMeshはOpenFOAM-v1712以降、modules としてOpenFOAM本体に組み込まれています)

  • ここまでは通常の毎年更新作業ですが、今回はDEXCSランチャーを仮想風洞試験という題材はそのままで、GUI操作方法を全く作り変えました
  • pyFoam は、OpenFOAM-v1906への対応はアナウンスされておりません。DEXCSランチャーやTreeFoamで使っている機能(pyFoamPlotWatcher.pyやFoamCleaCase.pyなど)についてのみ動作確認しており、その他の機能については動作未確認です。

インストールと利用法

詳しくはこちら(日本語と英語の切り替え方法も含む)

マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 継続利用では起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • VirtualBoxにインストールする方法は、書籍「OpenFOAMによる熱移動と流れの数値解析」の付録AにDEXCS2015について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2016では導入済みなので、共有ファイルの設定など(インストール方法メモの24〜26ページ)も同様に実施可能です。
  • 国際化対応のレベルはDEXCS2015に同じ(英語版のみに対応)ですが、日本語⇆英語のベース環境切り替え方法が、DEXCS2015に比べやや煩雑になっています。(インストール方法メモの8〜13ページ)
  • 一部動作に不具合が確認されています(インストール方法メの18〜19ページ)。解決方法が見出だせませんでした。お判りの方、またこれ以外の不具合に気づかれた方はご連絡下さい。

同梱プログラム

その他のドキュメントについて

  • DEXCSランチャーのヘルプメニュー(上図)を参照下さい。
  • SLURMというリソースマネージャは今回もインストールしてありませんが、下記記事の方法によって追加インストールは可能(のはず)です。
  • JAVA gnuplot GUI の使用方法
    • http://dexcs.net/ocse2/?p=747
    • 上記記事で作成したプロジェクトファイルをケースファイルの在所を変えたり、別ケースで転用利用する際に、プロジェクトファイル中に記されているデータ在所(絶対パス名)を適合するツールを同梱しました。
  • 上記適合ツールは、DEXCSランチャーの左図ボタンにて起動します。⇒ 解説ページ
  • または、TreeFoam /十徳ナイフ /「汎用gnuplot-GUI(jgp)起動」メニューでも起動できます。
  • 但し、十徳ナイフ版では、実行時のダイヤログメッセージが日本語ではありません。

  • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。
    TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    DEXCS2019に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。

苦労譚

  • ParaViewビルド
  • FreeCAD AppImage版
  • FreeCADビルド版
  • リマスター容量の問題
  • /bin/sh の問題
  • VirtualBox Guest Additions

SLURM on DEXCS2018 for OpenFOAM(R)

諸般の事情により、DEXCS2018ではSLURMを搭載していないので、ここにインストールと設定方法を記しておきます。

インストール方法

普通にパッケージインストールが可能になりました。

$ sudo apt install munge slurm-wlm

というか、これまでは認証を秘密鍵方式でやっていたのを、デフォルトのMUNGEでも出来るようになり、設定がだいぶ楽チンになりました。

(実はこれまでもMUNGEで出来るはずだったのが、うまく動かせていなかっただけの事なんですが・・・)

設定(slurm.conf)

SLURMの設定ファイルは、/etc/slurm-llnl/slurm.conf として、以下の内容を記述(コピペ)しておく(要管理者権限)。

# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=localhost
#ControlAddr=
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
SlurmUser=slurm
#SlurmdUser=root
StateSaveLocation=/var/lib/slurm-llnl/slurmctld
SwitchType=switch/none
TaskPlugin=task/none
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
#SchedulerPort=7321
SelectType=select/cons_res
SelectTypeParameters=CR_CPU
#
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=localhost
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
#SlurmdDebug=3
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
#
#
# COMPUTE NODES
NodeName=localhost CPUs=4 Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 State=UNKNOWN
PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP

太字部分は、自分のマシンのスペックに合わせて変更しておいて下さい。

SLURMの起動

$ sudo systemctl enable slurmctld
$ sudo systemctl start slurmctld
$ sudo systemctl enable slurmd
$ sudo systemctl start slurmd

動作確認方法

うまく動かない時

/var/log/slurm-llnl/ の下に、ログファイルが出力されているので、これを読めば何とか対処できるんでないかと思います。

自分の経験では、slurm.confの記述間違いに起因するエラーが大半でした。

また、sinfo コマンドでSTATEが drain と表示されていると、ジョブを投入してもペンディング状態のまま、いつまでたってもジョブは実行されません。

この場合、ペンディングされたジョブをキャンセル(scancel)して、

$ scancel <job-id>

$ sudo scontrol update nodename=localhost state=idle

実行スクリプトの例

#!/bin/bash
#SBATCH -n 4
#SBATCH -J OpenFOAM
#SBATCH -e submit.sh.e%J
#SBATCH -o solve.log
. /opt/OpenFOAM/OpenFOAM-v1806/etc/bashrc
rm -rf ./processor*
cartesianMesh
checkMesh
pyFoamDecompose.py . ${SLURM_NPROCS}
mpirun simpleFoam -parallel
reconstructPar -latestTime

諸般の事情

基本的には、SLURMの設定方法がよくわからないというか、すんなり動いてくれないという点です。

普通には、

file:///usr/share/doc/slurmctld/slurm-wlm-configurator.easy.html

をブラウザで開くと、

ここで、色々設定してSubmitボタンを押すだけで良いはずなのですが・・・

今回も、下記のセクションにて、デフォルト(Linear)

はうまく動いてくれたのですが、これだとひとつのノード(CPU)に一つのジョブしか投入できない。マルチコアCPUでコア数をすべて有効に使うには、Cons_res を選択するのが一般的ですが、これに変更するとうまく動いてくれない、という状況でした。

ちなみに、現時点でパッケージインストールされるslurmのヴァージョンは、17.11.2であるのに対し、上記設定ツールで対象としているのは、16.05とあります。これが原因なのかどうかわかりませんが、最終的には上記ログファイル中にCRパラメタがなんたらというメッセージがあったので、

SelectTypeParameters=CR_CPU

の1行を追加して、今のところ動いているという状況です。

ちなみにこの一文は、上記ツール上では、以下のように

メニューとして選択可能になってはいるのですが、submitしても何故か出力してくれませんでした。やむなく手入力で追加したという顛末です。

マシンのスペック確認方法

論理プロセッサ数
$ cat /proc/cpuinfo | grep “processor”
⇒ CPUs
物理CPUの数
$ cat /proc/cpuinfo | grep “physical id” | uniq
⇒ Sockets
物理コアの数
$ cat /proc/cpuinfo | grep “cpu cores” | uniq
⇒ CoresPerSocket

remote Server Access by DEXCS2017 for OpenFOAM(R)

DEXCS2017 for OpenFOAM(R) では、これまでのFOCUSだけでなく名大スパコン、その他のリモートサーバーへのアクセスが可能になりました。

但し、サーバー名やログイン情報などはユーザーさん自身でカスタマイズしてもらう必要があるので、以下にその方法を記しておきます(備忘録)。

準備は少々面倒ですが、これでリモートサーバーでの計算がかなり楽ちんになること請け合いです。

  1. 準備するもの(秘密鍵など)
  2. 準備その1(手動でアクセス確認)
  3. 準備その2(パスワード登録して自動アクセス)
  4. 準備その3(TreeFoam)
  5. 準備その4(サーバー側設定)
  6. 使ってみよう!
  7. 不具合情報


Continue reading remote Server Access by DEXCS2017 for OpenFOAM(R)