はじめに
paraviewを可視化ツールとして使っている人は多いと思いますが,クラスターマシンによっては積んでいるGPUが古く,paraviewをそのままインストールしても動かないということがあります.
この記事では,OSMesaと呼ばれるCPUで動くレンダリングライブラリと"pvserver"を用いることで,GPUに制限のあるサーバー環境でもparaviewを動かせるようにします.
qiitaではビルドから行ってカスタマイズしている先駆者様もいますが,今は公式側がGUIがないバージョンも用意してくれているため,そんなに難しいことはしません(バイナリをコピペするだけ).
さらに,paraviewのClient/Serverモードを使うことで,X転送を行わなくても遠隔で操作できるようにします.これに関しては,こちらの個人の方のサイトを参考にさせていただきました.
前提
- ローカルPCとサーバーはsshでアクセスできること.
- サーバーのスーパーユーザーであること.
目次
サーバー用のparaviewのインストール
最初にparaviewを公式から落としてきますが,必ず下のスクショのように"osmesa"と書かれたものを落としてください.
サーバー側の設定
tar.gzファイルをサーバー先で展開し,/bin/*を/usr/local/binにコピーします.
tar -zxvf <your paraview>.tar.gz
#インストールする物の中身を確認
cd <your paraview>/bin
cd ..
sudo cp -rf <your paraview>/bin/* /usr/local/bin
同様に,lib,shareの中身も/usr/local/lib, /usr/local/shareにコピーします.
cd <your paraview>/lib
cd ..
sudo cp -rf <your paraview>/lib/* /usr/local/lib
cd <your paraview>/share
cd ..
sudo cp -rf <your paraview>/share/* /usr/local/share
端末を再起動して,以下のコマンドを打つことで,下のような待機状態になれば成功です.
"12345"の部分は,最初が1の,好きな5桁の数字を入れてください.
pvserver --use-offscreen-rendering --server-port=12345
Waiting for client...
Connection URL: cs://<マシン名>:12345
Accepting connection(s): <マシン名>:12345
Client connected.
ローカルPCの設定
次に,ローカルPC側の設定を行います.
設定の前に,リモート先のマシン名がローカルPCに登録されているか確認してください.
sudo vim /etc/hosts
なければ,リモート先で名前を確認した後,
hostname
ローカルPCに登録してください.
<リモート先のIPアドレス> <リモート先のマシン名>
まず,"サーバー用のparaviewのインストール"で落としてきたバージョンと同じバージョンのparaviewを落としてきます.
また,こちらは普通のGUI付きのものを選びます.
"Add Server"をクリックし、Name(任意)、Server Type(Client / Server)、Host(サーバ名)、Port(先程設定したポート番号…12345など)を指定し、Configure後Saveします.
最後に,"connect"を押して10秒ほど待ち,左上の"built-in"が"リモート先のマシン名"になったら接続成功です.
接続先が外部のサーバーの場合
以上の操作は,サーバーとローカルのPCがローカルネットワークである場合に動きます.
外部ネットワークののサーバーと繋ぐ場合は,ートフォワーディングを使うため,やや面倒です.
1 サーバー側のルーターの設定で,ポートの開放をする.(上記例に従うと12345)
2 以下のようなssh接続コマンドを用いてサーバーに接続(ローカルフォワード,参考)
ssh -L 12345:<サーバ名>:12345 <ユーザー名>@<リモート先のマシン名>
3 paraviewを起動して同様に接続