[Paraview] Confirming that pvserver runs with OSMesa + OpenSWR driver on cpu only compute nodes

Fabrizio Bisetti fbisetti at gmail.com
Thu Dec 21 11:02:12 EST 2017


Hello there:

I've successfully built and installed the following OSMesa rendering stack (from source) for use on CPU only compute nodes of a small cluster

I've then built Paraview 5.4.0 (from source). The pvserver runs on a compute node and we connect to it from a remote Paraview client via forward connection with SSH tunneling.

I am having trouble confirming which driver the pvserver uses for rendering. My understanding is that OSMesa gets compiled with various cpu-based driver options, i.e. soft pipe (classic OSMesa), llvmpipe, and swr.

I would like to ensure that swr (OpenSWR) is being used.

Note that one complicating factor is that the CPU-based compute nodes do not have any X installed and I've compiled only OSMesa (see below). Thus, I cannot compile the GLUT based utility glinfo or gears, which could possibly tell me how the rendering is done.

Finally, while it seems that one can invoke paraview with a switch --mesa-swr-avx2, I am not sure that can be done with pvserver.

Also, even then, how would I confirm this is which driver is being used?

Thank you for any help/pointers.

Fabrizio




**HARDWARE**

Each compute node features two (x2) Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz for a total of 28 cores. The compute nodes do not have a GPU.

**SOFTWARE STACK**

Everything is compiled with gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) on a Linux 3.10.0-514.el7.x86_64 (Centos 7).

Here is the cpu-based rendering stack

1) LLVM 5.0.0

cmake3 -G "Unix Makefiles"  \
       -DCMAKE_BUILD_TYPE=Release \
       -DLLVM_TARGETS_TO_BUILD=X86 \
       -DLLVM_INSTALL_UTILS=TRUE \
       -DLLVM_ENABLE_RTTI=TRUE \
       -DBUILD_SHARED_LIBS=TRUE \
       -DCMAKE_INSTALL_PREFIX=$INSTALLDIR \
       ../llvm-5.0.0.src

2) Mesa3D 17.3.0

Note that the compute nodes do not have any X servers (X11) nor any other OpenGL implementation (e.g. repo based from a yum install)

./configure \
    --disable-xvmc \
    --disable-glx \
    --disable-dri \
    --with-dri-drivers= \
    --with-gallium-drivers=swrast,swr \
    --enable-texture-float \
    --disable-egl \
    --disable-gbm \
    --with-platforms= \
    --enable-gallium-osmesa \
    --enable-llvm \
    --prefix=$INSTALLDIR

3) GLU 9.0.0

SITE_MESA_LIB=/path/to/mesa/install/above

PKG_CONFIG_PATH="$SITE_MESA_LIB/pkgconfig" \
OSMESA_LIBS="-L$SITE_MESA_LIB -lOSMesa" \
    ./configure --prefix=$INSTALLDIR \
    --enable-osmesa \
    --enable-shared

4) ParaView 5.4.0

I've configured the basic ParaView build as recommended.
I am using OpenMPI 2.1.0 compiled with the system gcc.

The additional OSMesa options are as below:

VTK_USE_X=OFF
VTK_USE_OFFSCREEN:BOOL=ON

OPENGL_INCLUDE_DIR=/path/to/mesa/install/above/include
OPENGL_gl_LIBRARY:FILEPATH=/path/to/mesa/install/above/lib/libOSMesa.so
OPENGL_glu_LIBRARY:FILEPATH=/path/to/glu/install/above/lib/libGLU.so

VTK_OPENGL_HAS_OSMESA:BOOL=ON
OSMESA_INCLUDE_DIR:PATH=/path/to/mesa/install/above/include
OSMESA_LIBRARY:FILEPATH=/path/to/mesa/install/above/lib/libOSMesa.so

Note that I've set everything to point to the OSMesa install directory.


More information about the ParaView mailing list