10-14 October 2016
San Francisco Marriott Marquis
America/Los_Angeles timezone

AthenaMT: Upgrading the ATLAS Software Framework for the Many-Core World with Multi-Threading

10 Oct 2016, 11:15
GG C1 (San Francisco Mariott Marquis)


San Francisco Mariott Marquis

Oral Track 2: Offline Computing Track 2: Offline Computing


ATLAS's current software framework, Gaudi/Athena, has been very successful for the experiment in LHC Runs 1 and 2. However, its single threaded design has been recognised for some time to be increasingly problematic as CPUs have increased core counts and decreased available memory per core. Even the multi-process version of Athena, AthenaMP, will not scale to the range of architectures we expect to use beyond Run2.

After concluding a rigorous requirements phase, where many design components were examined in detail, ATLAS has begun the migration to a new data-flow driven, multi-threaded framework, which enables the simultaneous processing of singleton, thread unsafe legacy Algorithms, cloned Algorithms that execute concurrently in their own threads with different Event contexts, and fully re-entrant, thread safe Algorithms.

In this paper we will report on the process of modifying the framework to safely process multiple concurrent events in different threads, which entails significant changes in the underlying handling of features such as event and time dependent data, asynchronous callbacks, metadata, integration with the Online High Level Trigger for partial processing in certain regions of interest, concurrent I/O, as well as ensuring thread safety of core services. We will also report on the migration of user code to the new framework, including that of upgrading select Algorithms to be fully re-entrant.

Primary Keyword (Mandatory) Data processing workflows and frameworks/pipelines
Secondary Keyword (Optional) Parallelizarion

Primary author

Charles Leggett (Lawrence Berkeley National Lab. (US))

Presentation Materials

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now