paraview client/server 模式应用

通常大家在使用后处理时,都直接执行 paraview 。当数据量特别大时,这种方式在导入数据和处理都会花很长时间。
而现在大家多数的使用都是多核处理器,因此,可以借用服务器的运用方式加快后处理,减少数据导入时间和处理时间。

paraview 直接执行是单线程模型,因此,需要使用 server/client 模式来加快处理速度,也就是并行处理。相信大家多数是在 Linux 下工作,因此,可以在命令窗口直接使用

mpirun -np 8 pvserver --force-offscreen-rendering &

如果有 GPU 则使用

mpirun -np 8 pvserver -display :0.0 --force-offscreen-rendering &

np 后面接使用的线程数

输出结果为

Waiting for client...
Connection URL: cs://localhost:11111
Accepting connection(s): localhost:11111

现在可以打开一个新的 terminal ,也可以直接在刚才那个 terminal 里面输入

paraview &

然后出来界面,选择 File → Connect… 或下图圈出的地方

然后在弹出的窗口中选择 Add server,
paraview-add-server

而后有 4 个可填的框
paraview-server-edit

Name: 填入 paraview 的服务名称,本机可填 Local
Server Type: 类型,一般选择 client/server 模式
Host: 默认就是 localhost,可以填入服务器的地址,可以是 ip ,也可以是域名
Port: 默认就是 11111

完成后,点击 Configure,在后面的窗口中直接选择 Save 就可以了。

然后就回到了 Choose server configuration 窗口,选择刚才做好了的 Local ,点击 Connect 就连接上了服务器,然后就可以同平时的操作一样了。
choose-server

Pipeline Browser 就比之前的多一行 Local (cs://localhost:11111)

这样大大加快了处理速度。可以有个简单的印象:
有一个状态,在单核处理 paraview 时,导入大概需要 30 s ,当使用 client/server 模式时,导入大概需要 10 s 。可以明显感觉到速度起飞了。

Tips

  1. 如果是服务器上使用 pvserver,在客户机上使用 paraview,两个需要版本一致
  2. pvserver 线程数不能多于分块的数量,比如:openfoam 有 8 个 processors ,在 pvserver 命令行的 np 不能大于 8 ,否则会提示出错,但还是能读取数据。