Release of Geant4 10.6.p02 against LCG_101 for Gauss Sim10
We need to make a release of Geant4 10.6.p02 with the patch from @clemenci to go ahead with the move to the new cmake
and using LCG_101
.
For Sim10 (lhcb/Gauss%"Gauss v55r4 or v55r0") this is on the Geant4 Sim10
branch and will be v106r2p5. So please go ahead with this.
For Gaussino
(Gaussino/Gaussino%"Gaussino v0r1") and related Gauss (lhcb/Gauss%"Gauss v60r0") we need to have the multithreaded option switched on. This brings a few questions including on which branch to tag.
The cross references between master
and the Sim10
branch are a bit strange (e.g. a commit that is ported shows as parent only one...) but doing a CL diff I see that the only real difference between the two is in CMakeList.txt
where one major difference is in (ref https://gitlab.cern.ch/lhcb/Geant4/-/blob/master/Geant4/G4config/CMakeLists.txt#L48)
if(GEANT4_BUILD_MULTITHREADED)
list(APPEND _geant4_cmake_flags
-DGEANT4_BUILD_MULTITHREADED=ON
-DGEANT4_BUILD_TLS_MODEL=global-dynamic)
endif()
that is then enabled by default in the gaussino nightly slots (see for example https://gitlab.cern.ch/lhcb-core/LHCbNightlyConf/-/blob/master/lhcbnightlyconf/Gauss.py#L191 - by the way it is not in lhcb-gaussino-prerelease).
So additional (related) questions that may help answering the one above:
-
We agreed at the core software that we cannot at this time release a MT version of Geant4 as a platform and we should release an identical version of Geant4 with the MT enabled, called
v106r2p5g1
. This is sustainable as we will keep Geant4 10.6.p02 for Sim10 and move to 10.7.p0X for Gaussino in the not too far future. -
Will we want in the future to have a single thread and a multi thread version of Gaussino/Gauss-on-Gaussino? Do we want to do production tests with one and the other with the 'same' version of Gauss-on-Gaussino? The issue here is really the production and we need to discuss with @fstagni if we need to be able to run both on the grid. 2.1 In the short term we can have a similar version of Gaussino/Gauss v0r1/v60r0 with ST and v0r1g1/v60r0g1 with MT, so that we can do production tests. 2.2 If we need this in the long term can we envision to have a platform-like or nightly like-dependency for this? Can we exploit the same mechanism we use with
GEANT4_TAG
andG4_NATIVE_VERSION
?
Now back to the first question: how do we control the setting of GEANT4_BUILD_MULTITHREADED
when we build the release? We will need to set it when we freeze it but not in master
for now as we want to be able to - at least keep checking in the nightly that we can build in ST.
In this case my proposal would be:
- we keep the
master
branch as-is to allow development and checking ST/MT - we branch from
master
forSim11
with the ONLY difference being we set the environmentGEANT4_BUILD_MULTITHREADED = True
and we tagv106r2p5g1
inSim11
- we make sure
master
andSim11
are always in synch