Paraviewのつなぎ方を変えるに至った背景
注意:とにかくpvserver経由でParaviewを実行したいときはここの背景は見ずに「サーバー側でPvserverを起動して,ローカルのParaviewで可視化」までいってください。
OpenFOAMの可視化のためのParaview
OpenFOAMの計算結果は通常,ParaviewもしくはParaFoam経由でのParaviewにより可視化すると思います。
OpenFOAMの計算をサーバー側で実行した場合,ローカルで結果を確認するのことになります。
新しいOpenFOAMにくっついてくるParaviewで困ったことが。。。
いままでは,ssh -YでX windowをトンネルして,サーバー上のParaviewのWindowをローカルで表示させていました。これで厄介なのが,ローカルのX windowの環境とサーバー側の相性が悪いと,ParaviewのWindowが表示されなくなります。
MacのX環境はXquartzぐらいしかほぼないと思いますが,開発がせっせと進んでるわけじゃないです。今回OpenFOAM-v2606をサーバーでインストールして,バンドルのParaviewの6.1を実行したら,MacのXとの相性が悪く,どうやっても表示されない。。。
ローカルのUbuntuマシンから,サーバーにssh -Yで接続して,Paraviewを表示させてみると,普通に動きました。要はMacのXが悪い。かといって,メインがMacだから可視化のためだけにUbuntuに切り替えるのはめんどくさい。薄々おもってましたが,MacでX windowつかうのがしんどくなってきました。代替手段が必要ってなりました。
サーバー側でPvserverを起動して,ローカルのParaviewで可視化
というわけで,MacでX windowをトンネルして,新しいParaviewを起動できないので,代替手段をGeminiに相談したら,pvserver使えよと言われました。以下その手順。
サーバー側でpvserver起動
まず,OpenFOAMの計算結果を可視化するので,データがあるディレクトリで,拡張子.foamの空ファイルを作ります。で,pvserverを起動します。
touch case.foam
pvserver
これだけ。pvserverを起動したら,サーバー側のconnection URLとかが表示されます。なお,サーバーに接続するときのSSHの接続で,-Yオプションつけてるとエラーするので,-Yなしで接続します。
ローカル側でParaview起動
ローカル側でParaviewを起動します。なお,サーバー側のParaviewのバージョンと2個目の値まであっている必要があります。具体的には6.1.Xみたいな場合,6.1まではあっている必要があります。
Paraviewを起動して,"File">"Connect">"Add Server"で設定を追加します。
"Name"は任意の名前
"Host"にサーバーのホスト名(pvserverで表示された名前)
でconfigureで保存。connectで接続します。
うまく行けばサーバー側とつながります。先程作ったcase.foamを読み込んで可視化作業ができます。
やってみて分かりましたが,かなり簡単につながります。OpenGLのバージョンがどうだとか,Xのバージョンがどうだとか細かいこと考えずに使えます。
さらなる代替案:VNCサーバーを起動して可視化
サーバー上で,VNCサーバーの設定して,ローカルでVNC viewerを起動して接続します。MacはVNC viewerをもってるので,サーバー側の設定だけで大丈夫です。
計算機が所属先のクラスターとかなら,VNC severのインストールと設定は可能かとおもいます。一回設定すると,簡単に使えます。
まとめ
pvserver+ローカルParaviewですが,描画も高速で良い感じです。
サーバー側のParaviewはOpenFOAMのバンドル版じゃなくても大丈夫です。Paraviewのバイナリをもってきて実行するだけでOKです。
