The Jiangmen Underground Neutrino Observatory (JUNO) is a multi-purpose neutrino experiment. It consists of a central detector, a water pool and a tracker placed on top. The central detector, which is used for neutrino detection, consists of a 20 kt liquid scintillator target and about 18,000 20-inch photomultiplier tubes (PMTs) to detect scintillation photons. Simulation software is an important part of the JUNO offline software. To speed up the simulation, a parallelized simulation framework has been developed based on the SNiPER framework and Geant4 version 10. The SNiPER task components are in charge of the event loop, which can run in sequential mode, Intel TBB mode and other modes. Based on SNiPER, the simulation framework and its underlying parallel libraries have been decoupled. However, parallelized simulation of correlated events is a challenge. In order to keep the correct event order, a component called global buffer is developed in SNiPER. In this paper, an overview of the parallelized JUNO simulation framework is presented. The global buffer is used in the parallelized event correlation simulation. An event generator produces events with timestamps in sequential mode. These events are put into the global buffer and processed by the detector simulation algorithms in different tasks. After simulation, the events are saved into ROOT files with a ROOT I/O service running in a dedicated thread. Finally, the software performance is presented.
Read full abstract