Cargando…

Evolution of the ATLAS Software Framework towards Concurrency

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...

Descripción completa

Detalles Bibliográficos
Autores principales: Jones, Roger, Stewart, Graeme, Leggett, Charles, Wynne, Benjamin
Lenguaje:eng
Publicado: 2014
Materias:
Acceso en línea:https://dx.doi.org/10.1088/1742-6596/608/1/012037
http://cds.cern.ch/record/1955184
_version_ 1780944434719883264
author Jones, Roger
Stewart, Graeme
Leggett, Charles
Wynne, Benjamin
author_facet Jones, Roger
Stewart, Graeme
Leggett, Charles
Wynne, Benjamin
author_sort Jones, Roger
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. Maximising performance per watt will be a key metric, so all of these cores must be used as efficiently as possible. In order to address the deficiencies of the current framework, ATLAS has embarked upon two projects: first, a practical demonstration of the use of multi-threading in our reconstruction software, using the GaudiHive framework; second, an exercise to gather requirements for an updated framework, going back to the first principles of how event processing occurs. In this paper we report on both these aspects of our work. For the hive based demonstrators, we discuss 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 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. These lessons were fed into our considerations of a new framework and we present preliminary conclusions on this work. In particular we identify areas where the framework can be simplified in order to aid the implementation of a concurrent event processing scheme. Finally, we discuss the practical difficulties involved in migrating a large established code base to a multi-threaded framework and how this can be achieved for LHC Run 3.
id cern-1955184
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2014
record_format invenio
spelling cern-19551842019-09-30T06:29:59Zdoi:10.1088/1742-6596/608/1/012037http://cds.cern.ch/record/1955184engJones, RogerStewart, GraemeLeggett, CharlesWynne, BenjaminEvolution of the ATLAS Software Framework towards ConcurrencyParticle 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. Maximising performance per watt will be a key metric, so all of these cores must be used as efficiently as possible. In order to address the deficiencies of the current framework, ATLAS has embarked upon two projects: first, a practical demonstration of the use of multi-threading in our reconstruction software, using the GaudiHive framework; second, an exercise to gather requirements for an updated framework, going back to the first principles of how event processing occurs. In this paper we report on both these aspects of our work. For the hive based demonstrators, we discuss 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 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. These lessons were fed into our considerations of a new framework and we present preliminary conclusions on this work. In particular we identify areas where the framework can be simplified in order to aid the implementation of a concurrent event processing scheme. Finally, we discuss the practical difficulties involved in migrating a large established code base to a multi-threaded framework and how this can be achieved for LHC Run 3.ATL-SOFT-PROC-2014-008oai:cds.cern.ch:19551842014-10-14
spellingShingle Particle Physics - Experiment
Jones, Roger
Stewart, Graeme
Leggett, Charles
Wynne, Benjamin
Evolution of the ATLAS Software Framework towards Concurrency
title Evolution of the ATLAS Software Framework towards Concurrency
title_full Evolution of the ATLAS Software Framework towards Concurrency
title_fullStr Evolution of the ATLAS Software Framework towards Concurrency
title_full_unstemmed Evolution of the ATLAS Software Framework towards Concurrency
title_short Evolution of the ATLAS Software Framework towards Concurrency
title_sort evolution of the atlas software framework towards concurrency
topic Particle Physics - Experiment
url https://dx.doi.org/10.1088/1742-6596/608/1/012037
http://cds.cern.ch/record/1955184
work_keys_str_mv AT jonesroger evolutionoftheatlassoftwareframeworktowardsconcurrency
AT stewartgraeme evolutionoftheatlassoftwareframeworktowardsconcurrency
AT leggettcharles evolutionoftheatlassoftwareframeworktowardsconcurrency
AT wynnebenjamin evolutionoftheatlassoftwareframeworktowardsconcurrency