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

 
次に、ローカルのMac上でParaViewを起動する。
ファイルメニューからConnectを選ぶ。するとChoose Server Configurationが出るのでAdd Serverをクリック。
 
 
するとEdit Server Configurationが表示されるので以下のように設定し、Configureをクリック。
Name:GCP(任意につけられるのでとりあえず)
Server Type: Client/Server(デフォルト)
Host:GCPのVMの外部IPアドレス
Port:11111(デフォルト)
 
 
次に、Edit Server Launch Configurationが表示されるが、とりあえずデフォルトのManualのままSaveをクリック。
 
 
すると、Choose Server Configurationに設定したGCPが追加されているので、選択してConnectをクリック。しばらくすると接続が完了するが、リモートレンダリングしないという内容の警告が出るが無視しておく。
 
 
接続が完了したら、ファイルメニューのOpenを選ぶと、ファイル選択画面が表示され、サーバ上のファイルにアクセスできるので、cavityフォルダに移動しcavity.foamを選択して読み込む。自動的に結果ファイルが読み込まれる。
とりあえずPipeline Browserウィンドウのcavity.foamの横にある目玉マークをクリックすると、コンターが表示される。メッシュを確認するため、PropertiesウィドウのDisplay (UnstructuredGridRepresentation)のRepresentationをSurfaceからWireframeに変更するとメッシュが表示される。
 
 
ひとまず無事に計算結果の可視化が行えた。
X Windowによるサーバー上での可視化については引き続き検討していきたい。