Cargando…

Concurrent data structures in the ATLAS offline software

In preparation for Run 3 of the LHC, the ATLAS experiment is modifying its offline software to be fully multithreaded. An important part of this is data structures that can be efficiently and safely concurrently accessed from many threads. A standard way of achieving this is through mutual exclusion...

Descripción completa

Detalles Bibliográficos
Autor principal: Snyder, Scott
Lenguaje:eng
Publicado: 2020
Materias:
Acceso en línea:https://dx.doi.org/10.1051/epjconf/202024505007
http://cds.cern.ch/record/2708895
_version_ 1780965037087653888
author Snyder, Scott
author_facet Snyder, Scott
author_sort Snyder, Scott
collection CERN
description In preparation for Run 3 of the LHC, the ATLAS experiment is modifying its offline software to be fully multithreaded. An important part of this is data structures that can be efficiently and safely concurrently accessed from many threads. A standard way of achieving this is through mutual exclusion; however, the overhead from this can sometimes be excessive. Fully lockless implementations are known for some data structures; however, they are typically complex, and the overhead they require can sometimes be larger than that required for locking implementations. An interesting compromise is to allow lockless access only for reading but not for writing. This often allows the data structures to be much simpler, while still giving good performance for read-mostly access patterns. This note will show some examples of this strategy in data structures used by the ATLAS offline software. It will also give examples of synchronization strategies inspired by read-copy-update, as well as helpers for memoizing values in a multithreaded environment.
id cern-2708895
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2020
record_format invenio
spelling cern-27088952021-03-18T21:39:24Zdoi:10.1051/epjconf/202024505007http://cds.cern.ch/record/2708895engSnyder, ScottConcurrent data structures in the ATLAS offline softwareParticle Physics - ExperimentIn preparation for Run 3 of the LHC, the ATLAS experiment is modifying its offline software to be fully multithreaded. An important part of this is data structures that can be efficiently and safely concurrently accessed from many threads. A standard way of achieving this is through mutual exclusion; however, the overhead from this can sometimes be excessive. Fully lockless implementations are known for some data structures; however, they are typically complex, and the overhead they require can sometimes be larger than that required for locking implementations. An interesting compromise is to allow lockless access only for reading but not for writing. This often allows the data structures to be much simpler, while still giving good performance for read-mostly access patterns. This note will show some examples of this strategy in data structures used by the ATLAS offline software. It will also give examples of synchronization strategies inspired by read-copy-update, as well as helpers for memoizing values in a multithreaded environment.ATL-SOFT-PROC-2020-005oai:cds.cern.ch:27088952020-02-07
spellingShingle Particle Physics - Experiment
Snyder, Scott
Concurrent data structures in the ATLAS offline software
title Concurrent data structures in the ATLAS offline software
title_full Concurrent data structures in the ATLAS offline software
title_fullStr Concurrent data structures in the ATLAS offline software
title_full_unstemmed Concurrent data structures in the ATLAS offline software
title_short Concurrent data structures in the ATLAS offline software
title_sort concurrent data structures in the atlas offline software
topic Particle Physics - Experiment
url https://dx.doi.org/10.1051/epjconf/202024505007
http://cds.cern.ch/record/2708895
work_keys_str_mv AT snyderscott concurrentdatastructuresintheatlasofflinesoftware