Hermes Software Configuration Changes in 2020

Links below were helpful guides in what was done. It should be assumed that the indicated steps were executed by root.

The next general refresh came in mid-2020... and it advanced Hermes from CentOS 7.6 to 7.8.

The update was again motivated by a desire to upgrade Mathematica (from 12.0 to 12.1) and ParaView.
In December, HDF5 was added to the mix.

ParaView 5.8 was downloaded and unpacked, to see if the latest release overcame any of the past problems.
It was noted that the "bin" directory had a new executable called "preview-mesa" which seemed worth a try.
The reason: ParaView 5.x had never before worked in X2Go; the issues seemed to be related to OpenGL.

./paraview-mesa paraview

The above actually worked in X2Go!! ParaView could finally be updated, for the first time in several years!

Plain "./paraview" was tried as well. In 5.8, it is apparently launched by mpiexec, but this was unsuccessful.
The error message revealed that Open MPI's mpiexec was assumed (https://github.com/cfe-lab/Kive/issues/425):

/opt/ParaView-5.8.1-MPI-Linux-Python2.7-64bit/bin/paraview
mpiexec: Error: unknown option "-pmi_args"

Yet "which mpiexec" and "mpiexec --version" showed that paraview should have found the Open MPI launcher.
The error can be traced to the executable's finding the Intel libmpi.so.12, instead of the lib from Open MPI:

ldd ./paraview | grep libmpi
   libmpi.so.12 => /opt/intel/compilers_and_libraries_2019.0.117/linux/mpi/intel64/lib/release/libmpi.so.12
(0x00007fab24d91000)

However, Hermes has a custom Open MPI 2.1 package installed by Red Barn with libmpi.so.20, not libmpi.so.12:

rpm -qlp ~cornell/rpmbuild/RPMS/x86_64/openmpi-2.1.1-1.el7.centos.x86_64.rpm
...
/usr/lib64/libmpi.so.20
...

The Open MPI libfabric.so.1 is also not present on Hermes, so paraview finds the Intel .so for that one too.
(As a side note in case MPI 3 or 4 is ever needed, an openmpi3 package is available for CentOS 7 via yum.)

One workaround is to move /usr/bin to the end of $PATH so Intel's mpiexec is found before Open MPI.
Apparently paraview is equally happy with Open MPI or Intel MPI; it just needs a consistent MPI environment.
This avoids the MPI error, but it just leads to other errors that indicate OpenGL isn't working properly:

./paraview
(   0.669s) [paraview        ]vtkXOpenGLRenderWindow.:251    ERR| vtkXOpenGLRenderWindow (0x45f2a60):
Could not find a decent config
(   0.669s) [paraview        ]vtkXOpenGLRenderWindow.:470    ERR| vtkXOpenGLRenderWindow (0x45f2a60):
Could not find a decent visual
...

This again shows that X2Go needs Mesa. So we're back to using the paraview-mesa command to launch paraview.

Mathematica 12.1 was the next target for updating. Could it too be installed as the default version on Hermes?
A previous Mathematica 12.0 update had been prevented by a Qt5-related graphics problem in X2Go:

Qt issued a fatal error: Could not initialize GLX
Qt tried to load plugins from...

Searching with Google turned up a bug report, where one of the replies proposed a kludge to avoid the error.
Installer: "Could not initialize GLX" on Finish, doesn't launch Creator

The suggested kludge did indeed do the trick! -

QT_XCB_GL_INTEGRATION=none ./mathematica

This hacky "solution" permitted the installation of Mathematica 12.1 as the default version on Hermes.
The variable can't just be added to the default environment because it (ironically) creates problems for ParaView.
WolframScript system integration was installed as well, following the instructions on the Wolfram website.
How do I install Mathematica on Linux?

Finally, a general update was performed. It was deemed unnecessary to update NVIDIA drivers this time around.

yum update
shutdown -r +0

When Hermes came back from updates to the kernel, firmware, Mesa, Qt5, X11, etc., etc., everything still worked!

...As a kind of "cherry on top" at the end of the year, HDF5 (version 1.8.12) was installed in December 2020:

yum install hdf5-devel
yum install hdf5-static


Last updated on 12/18/20 by Steve Lantz (steve.lantz ~at~ cornell.edu)