April 18, 2018 Offline Leads Meeting Notes
Attendees: Herbert Greenlee, Erica Snider, Saba Sehrish, Andrezej Szelc, Tracy Usher
A) Status of LArG4 refactoring: The work is largely complete, except for two modules that have not yet been written: the fast photon propagation / optical digitization module, and the response and digitization module for AuxDet detector elements (outside the TPC). The latter module is experiment / detector dependent, so needs to be provided by the experiments by re-factoring existing detsim modules into the new structure.
LArSoft realizes that refactored LArG4 is critical for MCC9. Since there have been issues with meeting deadlines in this work, we propose that we integrate Wes’s changes for the time being, and replace it with the factorized code once it is ready. Wes will present his changes at a LArSoft coordination meeting. These code bases can co-exist.
B) LArSoft v07 release candidates
There are three release candidates coming up for the LArSoft v07, listed in priority order:
— Geant4 update, a patch release to address the physics bug reported
— LArG4 refactoring
— _art_2.11 migration that requires migration to C++17
Herbert Greenlee mentioned they are already dealing with some of the issues with C++ 17 migration because of the new c2 (clang-based) builds, but moving to C++17 is otherwise not a high priority.
C) Code Integration Model:
— Herbert Greenlee mentioned a concern regarding having to rebuild the products whenever there is a change in LArG4, Geant. The LArSoft proposal is to decouple or abstract away from the Geant4 and Genie products so that experiments can choose what version they need. To achieve that, LArSoft will have to not depend on Geant4. There will need to be a new interface product and LArSoft will need to provide a module that will interact with Geant4 output data products.
— More generally, we will likely need to discuss how to deal with different versions of reconstruction among the experiments. How can we continue to develop shared code if each experiment needs to create their own forks? We need a consensus answer to this question.
— Comments / feedback about the need of a new code integration model should be send to the larsoft-team.
D) Event Display:
Division agrees it is a high priority to get a better event display. We have developed a set of draft requirements based on input from a number of event display users and developers, and are proceeding with the following plan:
— upgrade the requirements with the feedback we have received so far
— conduct a survey to identify some technical solutions,
— identify some core requirements for evaluation
— implement the core requirements in each solution. A summer student has expressed interest in pursuing this project. If we don’t get that, we can ask SCD for more help.
— From Heidi: all the effort should go to the new display but the new project will not be a fast process
— Push from ICARUS to make improvements in the display
E) Building with clang:
Building with clang on the Mac is slow. We have prelim results that suggest that re-enabling SIP improves the build time by 10 times. The install is also slow. This is caused by a cmake issue that results in all libraries being re-installed, regardless of whether changes were made to them. The problem is that cmake strips rpaths from libraries, then interprets the result as a changed library, even if the library was not rebuilt.
We are starting a project to re-architect the way that some services work in order to be thread safe. This is only necessary for services that change state on an event by event basis, such as those that deal with detector conditional, etc. None of those are currently thread safe.
We are also working to vectorize code.
A separate problem to deal with is managing how we match vectorized libraries to the hardware in an environment where platform capabilities are not uniform (e.g., for grid processing, or cloud processing with GPUs, etc.)
G) Transitioning Gianluca’s work:
Gianluca will be leaving on May 4th.
–thanks to Saba Sehrish for taking notes during the meeting.