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...
Autor principal: | |
---|---|
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 |