ParaViewのビルドはできたものの、OpenGLがらみのエラーが起きてなかなか解決できないので、次善策としてリモートでの使用を試してみた。そもそもGPUを割り当てていないVM上で可視化をしても非常に重たいと思うので、むしろリモートで使用する方が現実的かもしれない。
まず、ParaViewの公式ページからMacOS用のバイナリをダウンロードする。ここで、サーバー側のParaViewとバージョンが異なると接続できないので、一番近かった5.6.2をダウンロードした。何故か5.6.3はソースコードのみ。
ローカルのMacでダウンロードしたParaViewが起動できることが確認できたら、サーバー側の設定をする。まず、ParaViewのリモート接続ではデフォルトで11111番のポートを使用するので、GCPのファイヤーウォール設定で当該ポートを開ける。
まず、VMインスタンスのページに行き、インスタンス横の:をクリックして「ネットワークの詳細」をクリックする。
するとVPCネットワークのページに移るので、ファイアウォールを選択し、「ファイアウォールルールを作成」をクリック。
下記の内容でルールを作成する。下記以外はデフォルトのまま。
なおIP範囲はとりあえずどのIPからでも接続可能としたので、意図しない接続を受けないように十分注意する。セキュリティ上は適宜IP範囲を限定した方が良い。
名前:allow-paraview
ターゲット:指定されたサービスアカウント
ソースIPの範囲:0.0.0.0/0
プロトコルとポート:tcp:11111
ファイアウォールの設定が終わったら、試しにチュートリアルで実行したcavityの可視化をしてみる。ケースディレクトリのcavityフォルダに移動し、ParaViewから結果を読み込ませるための空のファイルcavity.foamを作成し、pvserverを起動する。
user@instance-1:~$ cd ~/OpenFOAM/user-v2012/run/cavity/
user@instance-1:~/OpenFOAM/user-v2012/run/cavity$ touch cavity.foam
user@instance-1:~/OpenFOAM/user-v2012/run/cavity$ pvserver
Waiting for client...
Connection URL: cs://instance-1:11111
Accepting connection(s): instance-1:11111