ATLAS Software Infrastructure
Alexander Undrus Introductory talk NPPS group meeting July 2019
ATLAS Software Infrastructure Alexander Undrus Introductory talk - - PowerPoint PPT Presentation
ATLAS Software Infrastructure Alexander Undrus Introductory talk NPPS group meeting July 2019 ATLAS Offline Code Base All-inclusive Athena releases (~ 5 million code lines) Require 240 external packages (mostly supplied by CERN SFT
Alexander Undrus Introductory talk NPPS group meeting July 2019
2
§ Require 240 external packages (mostly supplied by CERN SFT team, ATLAS TDAQ releases, GAUDI architecture framework, generators) § Partial releases for Simulation, Analysis available § Online software is separate, beyond the scope of this talk
Alex Undrus, NPPS Intro, July 2019
18068 21205 10712 1127 376 1320 1586 5000 10000 15000 20000 25000 C++ C/C++ header Python XML Fortran Shell script Cmake
Number of files in Athena
2996880 928141 1162270 341379 69662 57205 0.00E+00 5.00E+05 1.00E+06 1.50E+06 2.00E+06 2.50E+06 3.00E+06 3.50E+06 C++ C/C++ header Python XML Fortran Shell script Cmake
Code lines in Athena
Alex Undrus, NPPS Intro, July 2019
§ Most of them make contributions to code
§ Currently 2 – 3 new developers are granted access to ATLAS Athena project (in GitLab) daily
Active 1 month 47% Active 2 months 31% Active 3 months 22%
Number of Developers
01/21-02/20, 03/21-04/20, 05/21-06/20 156 developers made 2223 commits to ATLAS Athena repository (merge commits excluded)
commits in all periods
commits only in one period
Alex Undrus, NPPS Intro, July 2019
Alex Undrus, NPPS Intro, July 2019
Branch 2 Branch 1
ATLAS does not enforce the ’upstream first’ policy, but allows for changes to be made directly in release branches. Automated daily ’sweeps’ copy those changes into the master branch.
CI BUILDS NIGHTLY BUILDS
Each MR is shifter- reviewed (two level-1 and two level-2 daily)
Alex Undrus, NPPS Intro, July 2019
Nightlies and Continuous Integration (CI) (A. Undrus)
workflow – Jenkins based build and testing systems interconnected with GitLab
users request: 71 JIRA tasks (mostly improvements) were completed in 2019 so far
AtlasSetup build-, run-time environment setup tool (S.Ye)
sessions start with running AtlasSetup
compilers, build tools – used currently or in the past
questions on daily basis
7
Alex Undrus, NPPS Intro, July 2019
8
ATHENA (ATLAS SOFTWARE) GAUDI (CORE
FRAMEWORK)
ATLAS EXTERNALS
LCG (common
HEP software)
ROOT
§ Full automation feasible: code upload via HTTP (no CVMFS)
Friendly Linux, AMD CPUs (ATLAS kits binaries work) PowerPC, 10X of Titan IBM CPUs, GNU Linux (ATLAS kits binaries do not work)
RESULTS § Athena release 21.0.31 was installed and tested on Summit
§ AthSimulation 21.0.34 – Titan, Summit
§ Total compilation time 1 day § 5M ATLAS code lines, 100 externals, 130 generators § Few code adjustments needed (e.g. compiler macro)
Alex Undrus, NPPS Intro, July 2019
9
§ Today: 23 nightly branches (multiple platforms, projects)
§ CI build for each MR creation/update (up to 100 daily) § Comprehensive testing (unit, local and GRID integration) § Excellent stability
20 40 60 80 100 120 2002 2006 2010 2016
Nightly Builds (per day)
20 40 60 80 100 120 2018 2019
CI&Nightly Builds (per day)
Build reduction due to efficient workflow 41 CI, 16 Nightly builds daily 50 CI, 30 nightly builds daily Home-made NICOS NIghtly COntrol System
Alex Undrus, NPPS Intro, July 2019
10
Nightly Farm ~ 1000 cores CI Farm ~ 500 cores
CONTINUOUS INTEGRATION Jenkins Server NIGHTLY SYSTEM Jenkins Server ATLAS git repository
Nightly Releases w/installation kits semi-transient CI Releases w/smoke tests transient Nightly CVMFS server Local unit tests Local integration test framework (ART) GRID-based integration test framework (ART) ‘Persistent’ stable releases CVMFS server Nightlies/CI Oracle Database
Nightlies/CI Web Service powered by [Big]PanDA
Alex Undrus, NPPS Intro, July 2019
11
Alex Undrus, NPPS Intro, July 2019
12
§
Presumably, this was an automated attack with the intention to instantiate crypto-currency mining software on compromised hosts (which didn’ t succeed).
Alex Undrus, NPPS Intro, July 2019
13
CI build machines load monitoring
Build results monitor
in transition to BigPanDA
CI machines performance monitoring
Alex Undrus, NPPS Intro, July 2019
14
Alex Undrus, NPPS Intro, July 2019
15
Alex Undrus, NPPS Intro, July 2019