Abstract
AthenaMP is a multi-process version of the ATLAS reconstruction, simulation and data analysis framework Athena. By leveraging Linux fork and copy-on-write mechanisms, it allows for sharing of memory pages between event processors running on the same compute node with little to no change in the application code. Originally targeted to optimize the memory footprint of reconstruction jobs, AthenaMP has demonstrated that it can reduce the memory usage of certain configurations of ATLAS production jobs by a factor of 2. AthenaMP has also evolved to become the parallel event-processing core of the recently developed ATLAS infrastructure for fine-grained event processing (Event Service) which allows the running of AthenaMP inside massively parallel distributed applications on hundreds of compute nodes simultaneously. We present the architecture of AthenaMP, various strategies implemented by AthenaMP for scheduling workload to worker processes (for example: Shared Event Queue and Shared Distributor of Event Tokens) and the usage of AthenaMP in the diversity of ATLAS event processing workloads on various computing resources: Grid, opportunistic resources and HPC.
Highlights
AthenaMP leverages Linux Copy-On-Write for sharing memory pages between processes, which were forked from the same master process
The plot shows the number of CPU-cores used by ATLAS production jobs – serial and MP – on the Grid during one week in February-March 2015
For the Event Service AthenaMP uses the strategy of distributing event tokens to the worker processes
Summary
✔ ATLAS reconstruction is memory-hungry ✔ We needed to have a mechanism for optimizing memory footprint without touching the algorithmic code-base. AthenaMP leverages Linux Copy-On-Write for sharing memory pages between processes, which were forked from the same master process. ✔ Presented at CHEP 2009: “Harnessing multicores: strategies and implementations in ATLAS”, S.Binet et al. Being actively used for running ATLAS production jobs on multi-core resources on the Grid. The master process goes through the initialization phase and forks N sub-processes (workers)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.