Building Paraview on GPU free server

Hi Paraview users and happy new year!

Starting with 2020 I try to build paraview on a server without any GPU and running CentOS7. I found this tutorial https://www.paraview.org/Wiki/ParaView/ParaView_And_Mesa_3D but it seams very old and I’m not able to found mesa 13.x . Latest mesa is 19.x and building the osmesa library is completely different, using meson instead of configure.
Did some one build paraview with OSMesa and can provide some tutorial ? I’ve built llvm (the recomended 3.9.1 version of the tutorial and the latest 9.0.1 version) buts with OSMesa…I’m sttuck!
Thanks all
Patrick

Patrick,
On linux you can use spack to build paraview + osmesa. I used the following command to recently build it. Note that spack will build all dependent libraries, so the process will take a longer time.

spack install paraview@develop+python3+mpi+osmesa~opengl2

An alternative to the SPACK path that Dan recommends, is to build osmesa via the paraview superbuild. The version we build is a year or so out of date with current mesa because we have yet to transition over mesa’s autotools->meson change but it will get you a production ready gpu-less paraview installation.

If you are constrained to building ParaView directly, it is still worthwhile to follow how the superbuild project builds osmesa, since the source is much more up to date than the wiki documentation.

Thanks Dan and Dave for these suggestions. At this time I’m testing spack but it seams that the software installed by this way is in the spack subtree and I need a system wide setup for all the users (I’m a sys admin). Is spack an alternative to nix tool ?

I will look at paraview superbuild too and try to setup mesa, building OSmesa is always one of the most difficult step in deploying Paraview on GPU free servers. :confused:

I was not able to use Spack as I got some conflicts with several gcc compiler version in Python modules… So I switch to paraview superbuild but again I had some troubles.
I’m using v5.7.0-RC4

  1. Download problem: paraview-superbuild try to download paraview from http://www.paraview.org/files/v5.7/ParaView-v5.7.0-RC4.tar.xz but this file does not exist. The correct URL is https://www.paraview.org/files/v5.7/RCs/ParaView-v5.7.0-RC4.tar.xz (with RCs subdirectory added). So I modify build/superbuild/paraview/stamp/download-paraview.cmake to correct this.

  2. now I have a problem with HDF5, compiled by paraview-superbuild. The HDF5_ROOT is properly set but is ignored by cmake and HDF5 is not detected when building Paraview.

CMake variable HDF5_ROOT is set to:

/home/begou/PARAVIEW/build/install

For compatibility, CMake is ignoring the variable.
This warning is for project developers. Use -Wno-dev to suppress it.

– HDF5: Using hdf5 compiler wrapper to determine C configuration
CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find HDF5 (missing: HDF5_HL_LIBRARIES)

Is there a way to solve this easily? This problem also broke netcdf build (I have disabled it).

Thanks
Patrick

Why would you use an RC ? use v5.7.0 instead.

Just a bad idea from me, Mathieu ! I went back to the master branch today and try to build Paraview. I would like to have pvserver and the paraview client on this server, even if it has no GPU, because I will use it for a workshop session outside of the lab in a few weeks. I ran:

cmake3 \
-DCMAKE_INSTALL_PREFIX=/opt/paraview/GCC7/v5.7 \
-DENABLE_ffmpeg=ON \
-DENABLE_fortran=ON \
-DENABLE_llvm=ON \
-DENABLE_mpi=ON \
-DENABLE_netcdf=OFF \
-DENABLE_osmesa=OFF \
-DENABLE_png=ON \
-DENABLE_xdmf3=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DUSE_SYSTEM_mpi=ON \
-DUSE_SYSTEM_python3=ON \
-DENABLE_python3=ON \
-DENABLE_mesa=ON \
-DENABLE_qt5=ON \
…/paraview-superbuild

and all seams to run fine for the requiered libs. But building Paraview goes in error with:

gmake[5]: Entering directory /robin/data/begou/PARAVIEW/build/superbuild/paraview/build' //usr/lib64/libSM.so.6: undefined reference to uuid_generate@UUID_1.0’
//usr/lib64/libSM.so.6: undefined reference to uuid_unparse_lower@UUID_1.0' collect2: error: ld returned 1 exit status gmake[5]: *** [bin/pvrenderserver] Error 1 gmake[5]: Leaving directory /robin/data/begou/PARAVIEW/build/superbuild/paraview/build’
gmake[4]: *** [CommandLineExecutables/CMakeFiles/pvrenderserver.dir/all] Error 2

I saw the thread PV-compilation problems with libSM and uuid but it did not help me solving this new problem.

@ben.boeckel

Something is wrong with the Ubuntu X packages and linker behaviors that causes this. It’s seen occasionally, but many people have no issues. I haven’t been able to fix it or figure out what the root cause is so far :confused: .

Hi Ben,
I’m not using Ubuntu, but an up to date CentOS7 distro.
Actualy I have partialy solved the need to have paraview running on this server with a manual install of paraview 5.4 (and an old Mesa version 17.x) using an old procedure based on many advices received on this forum. It runs!
But i will enjoy to build the latest paraview version using superbuild setup…

Oh, that’s news to me. We use centos 7 to build our binaries, but it may not be fully up-to-date. We are using devtoolset-7 though in cast that helps.