Abstract

After the current maintenance period, the LHC will provide higher energy collisions with increased luminosity. In order to keep up with these higher rates, ATLAS software needs to speed up substantially. However, ATLAS code is composed of approximately 6M lines, written by many different programmers with different backgrounds, which makes code optimisation a challenge. To help with this effort different profiling tools and techniques are being used. These include well known tools, such as the Valgrind suite and Intel Amplifier; less common tools like Pin, PAPI, and GOoDA; as well as techniques such as library interposing. In this paper we will mainly focus on Pin tools and GOoDA. Pin is a dynamic binary instrumentation tool which can obtain statistics such as call counts, instruction counts and interrogate functions' arguments. It has been used to obtain CLHEP Matrix profiles, operations and vector sizes for linear algebra calculations which has provided the insight necessary to achieve significant performance improvements. Complimenting this, GOoDA, an in-house performance tool built in collaboration with Google, which is based on hardware performance monitoring unit events, is used to identify hot-spots in the code for different types of hardware limitations, such as CPU resources, caches, or memory bandwidth. GOoDA has been used in improvement of the performance of new magnetic field code and identification of potential vectorization targets in several places, such as Runge-Kutta propagation code.

Highlights

  • Large Hadron ColliderLocated at CERN near Geneva 27 km circumference and ∼100 m below surface It is operational since 2010

  • There are 4 detectors located on it, ATLAS is one of two large general purpose detectors It is shutdown for two years for upgrades and maintenance on March 2013 It will operate at higher beam energy and higher luminosity after shutdown

  • ATLAS is composed of different co-centric cylindrical detectors of ∼150 M readout channels It has a three-level trigger system

Read more

Summary

Large Hadron Collider

Located at CERN near Geneva 27 km circumference and ∼100 m below surface It is operational since 2010. ATLAS is composed of different co-centric cylindrical detectors of ∼150 M readout channels It has a three-level trigger system. Level-1 trigger is hardware based and located in the detector. It reduces 40 MHz input rate to 75 kHz Level 2 and Level 3 are software based triggers running on ∼16k core pc farm, reducing final event rate to 300 Hz at ∼1.6 MB/ev Trigger will be upgraded to 1 kHz output in 2015. Selected events are stored and offline processed in more detail Both offline processing and online selection is done with the same software with a different configuration. With the increase in LHC energy, collision rate, event complexity and trigger output ATLAS software needs to speedup up to 3 times. Configuration is done in Python 64-bit application consumes ∼4 GB memory big challenge for many profilers

Profilers commonly used in ATLAS
Profiling GOODA
Hottest functions
Profiling Pin Tools
Improving Tracking Code
Each hot function is instrumented by its respective analysis routine
Findings
Using pin results

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.