[Halld-offline] System for using GCC 8 with the GlueX software stack

Mark Ito marki at jlab.org
Sat Jul 17 21:13:31 EDT 2021


Folks,

This message describes a first step on a path towards using modern 
versions of the support software packages we use, as well as taking 
advantage of modern C++ features. It describes a system for using GCC 8 
with the GlueX software stack. This is a test system for now, not meant 
for production launches.

RedHat Enterprise Linux 7 was first released in June of 2014. The 
version of CentOS 7 that we use now is based on RHEL 7.7. It uses GCC 
4.8.5 which was released in June of 2015. Note that the latest GCC is 
version 11.1. We have arrived at the point were collaborators would like 
to press forward with modern versions of some of the software tools we 
rely on. In particular, the latest Geant4 requires a compiler more 
advanced than GCC 4.8.5, but clearly if it was not Geant4, then sooner 
or later it would be another package that forces our hand.

I have succeeded in building our standard software with GCC 8.3.1, 
including Xerces-C, CERNLIB, LAPACK, etc. The scheme uses:

1. A Singularity container running  CentOS 7.7. Again, this is the 
distribution we have on the JLab farm.

2. Developer Toolset 8 from Software Collections. This provides an 
environment that uses GCC 8.3.1.

3. A version set that requires a more recent GCC  than is shipped with 
CentOS 7. It is $HALLD_VERSION/version_beta_1.0.xml. Versions have been 
incremented as follows:

  * LAPACK, from 3.6.0 to 3.9.0
  * ROOT, from 6.08.06 to 6.24.0
  * Geant4, from 10.02.p02 to 10.06.p01
  * halld_recon: 4.27.1 to the "version_upgrade_fixes" branch of the
    markito3/halld_recon repository
  * halld_sim: 4.31.0 to the "version_upgrade_fixes" branch of the
    markito3/halld_sim repository
  * gluex_root_analysis: 1.18.0 to the "version_upgrade_fixes" branch of
    the markito3/gluex_root_analysis repository

4. A new release of Build Scripts, version 2.15. This is now installed 
at JLab.

5. A build on the group disk. This one is in 
/group/halld/Software/builds/Linux_CentOS7-x86_64-gcc8.3.1-cntr . It was 
built using the environment provided by 1, 2, 3, and 4 above.

For others to use this build productively, many will have to be able to 
compile their own source code against the build. I've written a HOWTO 
with instructions for accessing the build, both to run the code as is, 
or as a base for development efforts. Find it here:

https://halldweb.jlab.org/wiki/index.php/HOWTO_Run_Gluex_Software_with_GCC_8

The instructions are narrowly tailored to the farm/ifarm at JLab. Folks 
familiar with the techniques will see that the raw materials provided 
can be applied on nearly any modern Linux or Linux-compatible system.

In addition, for running on the OSG and the HPC centers, the 
markito3/gluex_docker_devel container has been re-built to be identical 
to the container specified in the HOWTO, just tweaked for the OSG 
environment. It is available from the singularity.opensciencegrid.org 
CVMFS share. The build itself is available on the 
oasis.opensciencegrid.org CVMFS share.

There are other ways to accomplish the goal of GCC  > 4.8.5 and they are 
being explored as well.

Finally, thanks to Richard Jones for initially suggesting this direction.

   -- Mark


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.jlab.org/pipermail/halld-offline/attachments/20210717/9952ae52/attachment.html>


More information about the Halld-offline mailing list