Cargando…
Optimizing ATLAS code with different profilers
After the current maintenance period, the LHC will provide higher\nenergy collisions with increased luminosity. In order to keep up with\nthese higher rates, ATLAS software needs to speed up\nsubstantially. However, ATLAS code is composed of approximately 6M\nlines, written by many different program...
Autores principales: | , , , |
---|---|
Lenguaje: | eng |
Publicado: |
2013
|
Materias: | |
Acceso en línea: | https://dx.doi.org/10.1088/1742-6596/523/1/012036 http://cds.cern.ch/record/1601771 |
Sumario: | After the current maintenance period, the LHC will provide higher\nenergy collisions with increased luminosity. In order to keep up with\nthese higher rates, ATLAS software needs to speed up\nsubstantially. However, ATLAS code is composed of approximately 6M\nlines, written by many different programmers with different\nbackgrounds, which makes code optimisation a challenge. To help with\nthis effort different profiling tools and techniques are being\nused. These include well known tools, such as the Valgrind suite and\nIntel Amplifier; less common tools like Pin, PAPI, and GOoDA; as well\nas techniques such as library interposing. In this paper we will\nmainly focus on Pin tools and GOoDA. Pin is a dynamic binary\ninstrumentation tool which can obtain statistics such as call counts,\ninstruction counts and interrogate functions' arguments. It has been\nused to obtain CLHEP Matrix profiles, operations and vector sizes for\nlinear algebra calculations which has provided the insight necessary\nto achieve significant performance improvements. Complimenting this,\nGOoDA, an in-house performance tool built in collaboration with\nGoogle, which is based on hardware performance monitoring unit events,\nis used to identify hot-spots in the code for different types of\nhardware limitations, such as CPU resources, caches, or memory\nbandwidth. GOoDA has been used in improvement of the performance of\nnew magnetic field code and identification of potential vectorization\ntargets in several places, such as Runge-Kutta propagation code. |
---|