在服务器中使用SaveScreenshot循环的Paraview非常慢

时间:2018-02-16 12:56:04

标签: ssh screenshot paraview

我的意思是在一系列时间步骤中获得一系列具有两个视图(一个RenderView +一个LineChartView)的布局的快照。 为此,我整理了一个脚本,见下文。

我做

ssh -X myserver

然后我跑

~/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/bin/pvbatch myscript.py

脚本运行速度极慢。我设想了以下原因/瓶颈:

  1. 图形部分(ssh -X)从远程服务器到我的计算机的通信。
  2. 在我的电脑中显示图形。
  3. 在服务器中处理。
  4. 有没有办法根据我目前的资源来评估哪个是瓶颈? (例如,我知道我可以更快地进行沟通以评估第1项,但我现在不能这样做。)

    有没有办法加速pvbatch

    答案可能取决于我的系统,但也许我可以采取一般性行动。

    Creation of the layout with two views
    ...
    
    ans = GetAnimationScene()
    time_steps = ans.TimeKeeper.TimestepValues
    for istep in range(len(time_steps)) :
        tstep = time_steps[istep]
        ans.AnimationTime = tstep
        fname = "combo" + '-' + '{:08d}'.format(istep) + '.png'
        print( "Exporting image " + fname + " for time step " + str(tstep) )
        SaveScreenshot(fname, viewLayout1, quality=100)
    

2 个答案:

答案 0 :(得分:0)

为什么需要-X?

只需将DISPLAY设置为:0并且不转发图形。

答案 1 :(得分:0)

瓶颈很可能是在本地显示器上呈现。如果您的服务器有X服务器,您可以通过相应地设置DISPLAY环境变量来执行服务器上的呈现,如Mathieu所解释的那样。

如果您的服务器没有运行X服务器,那么最好的选择是使用OSMesa后端或EGL后端在您的服务器上构建Paraview(如果您有相应的图形卡)。