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_TAGandG4_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
masterbranch as-is to allow development and checking ST/MT - we branch from
masterforSim11with the ONLY difference being we set the environmentGEANT4_BUILD_MULTITHREADED = Trueand we tagv106r2p5g1inSim11 - we make sure
masterandSim11are always in synch