AthenaMP+AthenaServices: Support executing algorithms/sequences in AthenaMP during PreFork
This is an adaptation of @fwinkl's !55759 (merged) to generic AthenaMP
. In a nutshell, this gives the possibility of executing certain algorithms/sequences during PreFork
incident in AthenaMP
. One can use this to execute the conditions algorithms before the first event, hence sharing the memory across workers even without FAFE.
Based on an 8 process, 10k event AODtoDAOD
test w/ SharedWriter
, vanilla MP uses about 2 GB/worker, executing conditions algorithms before the event loop this way reduces this to 1.5 GB/core, while FAFE still performs the best at 0.9 GB/worker:
We can take a look to see if there is any milage in adopting such an approach in other jobs such as derivation production.