通常大家在使用后处理时,都直接执行 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,
而后有 4 个可填的框
Name: 填入 paraview 的服务名称,本机可填 Local
Server Type: 类型,一般选择 client/server 模式
Host: 默认就是 localhost,可以填入服务器的地址,可以是 ip ,也可以是域名
Port: 默认就是 11111
完成后,点击 Configure,在后面的窗口中直接选择 Save 就可以了。
然后就回到了 Choose server configuration 窗口,选择刚才做好了的 Local ,点击 Connect 就连接上了服务器,然后就可以同平时的操作一样了。
Pipeline Browser 就比之前的多一行 Local (cs://localhost:11111)
这样大大加快了处理速度。可以有个简单的印象:
有一个状态,在单核处理 paraview 时,导入大概需要 30 s ,当使用 client/server 模式时,导入大概需要 10 s 。可以明显感觉到速度起飞了。
Tips:
- 如果是服务器上使用 pvserver,在客户机上使用 paraview,两个需要版本一致
- pvserver 线程数不能多于分块的数量,比如:openfoam 有 8 个 processors ,在 pvserver 命令行的 np 不能大于 8 ,否则会提示出错,但还是能读取数据。