Cargando…
Development of a Next Generation Concurrent Framework for the ATLAS Experiment
The ATLAS experiment has successfully used its Gaudi/Athena software framework for data taking and analysis during the first LHC run, with billions of events successfully processed. However, the design of Gaudi/Athena dates from early 2000 and the software and the physics code has been written using...
Autores principales: | , , , , , |
---|---|
Lenguaje: | eng |
Publicado: |
2015
|
Materias: | |
Acceso en línea: | https://dx.doi.org/10.1088/1742-6596/664/7/072031 http://cds.cern.ch/record/2015225 |
_version_ | 1780946654598266880 |
---|---|
author | Leggett, Charles Stewart, Graeme Calafiura, Paolo Wynne, Benjamin Malon, David Lampl, Walter |
author_facet | Leggett, Charles Stewart, Graeme Calafiura, Paolo Wynne, Benjamin Malon, David Lampl, Walter |
author_sort | Leggett, Charles |
collection | CERN |
description | The ATLAS experiment has successfully used its Gaudi/Athena software framework for data taking and analysis during the first LHC run, with billions of events successfully processed. However, the design of Gaudi/Athena dates from early 2000 and the software and the physics code has been written using a single threaded, serial design. This programming model has increasing difficulty in exploiting the potential of current CPUs, which offer their best performance only through taking full advantage of multiple cores and wide vector registers. Future CPU evolution will intensify this trend, with core counts increasing and memory per core falling. With current memory consumption for 64 bit ATLAS reconstruction in a high luminosity environment approaching 4GB, it will become impossible to fully occupy all cores in a machine without exhausting available memory. However, since maximizing performance per watt will be a key metric, a mechanism must be found to use all cores as efficiently as possible. In this paper we report on our progress with a practical demonstration of the use of multi-threading in the ATLAS reconstruction software, using the GaudiHive framework. We have expanded support to Calorimeter, Inner Detector, and Tracking code, discussing what changes were necessary in order to allow the serially designed ATLAS code to run, both to the framework and to the tools and algorithms used. We report on both the performance gains, and what general lessons were learned about the code patterns that had been employed in the software and which patterns were identified as particularly problematic for multi-threading. We also present our findings on implementing a hybrid multi-threaded / multi-process framework, to take advantage of the strengths of each type of concurrency, while avoiding some of their corresponding limitations. |
id | cern-2015225 |
institution | Organización Europea para la Investigación Nuclear |
language | eng |
publishDate | 2015 |
record_format | invenio |
spelling | cern-20152252022-08-10T13:08:39Zdoi:10.1088/1742-6596/664/7/072031http://cds.cern.ch/record/2015225engLeggett, CharlesStewart, GraemeCalafiura, PaoloWynne, BenjaminMalon, DavidLampl, WalterDevelopment of a Next Generation Concurrent Framework for the ATLAS ExperimentParticle Physics - ExperimentThe ATLAS experiment has successfully used its Gaudi/Athena software framework for data taking and analysis during the first LHC run, with billions of events successfully processed. However, the design of Gaudi/Athena dates from early 2000 and the software and the physics code has been written using a single threaded, serial design. This programming model has increasing difficulty in exploiting the potential of current CPUs, which offer their best performance only through taking full advantage of multiple cores and wide vector registers. Future CPU evolution will intensify this trend, with core counts increasing and memory per core falling. With current memory consumption for 64 bit ATLAS reconstruction in a high luminosity environment approaching 4GB, it will become impossible to fully occupy all cores in a machine without exhausting available memory. However, since maximizing performance per watt will be a key metric, a mechanism must be found to use all cores as efficiently as possible. In this paper we report on our progress with a practical demonstration of the use of multi-threading in the ATLAS reconstruction software, using the GaudiHive framework. We have expanded support to Calorimeter, Inner Detector, and Tracking code, discussing what changes were necessary in order to allow the serially designed ATLAS code to run, both to the framework and to the tools and algorithms used. We report on both the performance gains, and what general lessons were learned about the code patterns that had been employed in the software and which patterns were identified as particularly problematic for multi-threading. We also present our findings on implementing a hybrid multi-threaded / multi-process framework, to take advantage of the strengths of each type of concurrency, while avoiding some of their corresponding limitations.ATL-SOFT-PROC-2015-017oai:cds.cern.ch:20152252015-05-11 |
spellingShingle | Particle Physics - Experiment Leggett, Charles Stewart, Graeme Calafiura, Paolo Wynne, Benjamin Malon, David Lampl, Walter Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title | Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title_full | Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title_fullStr | Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title_full_unstemmed | Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title_short | Development of a Next Generation Concurrent Framework for the ATLAS Experiment |
title_sort | development of a next generation concurrent framework for the atlas experiment |
topic | Particle Physics - Experiment |
url | https://dx.doi.org/10.1088/1742-6596/664/7/072031 http://cds.cern.ch/record/2015225 |
work_keys_str_mv | AT leggettcharles developmentofanextgenerationconcurrentframeworkfortheatlasexperiment AT stewartgraeme developmentofanextgenerationconcurrentframeworkfortheatlasexperiment AT calafiurapaolo developmentofanextgenerationconcurrentframeworkfortheatlasexperiment AT wynnebenjamin developmentofanextgenerationconcurrentframeworkfortheatlasexperiment AT malondavid developmentofanextgenerationconcurrentframeworkfortheatlasexperiment AT lamplwalter developmentofanextgenerationconcurrentframeworkfortheatlasexperiment |