[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