[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