Cargando…

A coherent environment of software improvement tools for CMS

CMS has developed approximately one million lines of C++ code and uses many more from HEP, Grid and public domain projects. We describe a suite of tools which help to manage this complexity by measuring software dependencies, quality metrics, and CPU and memory performance. This coherent environment...

Descripción completa

Detalles Bibliográficos
Autores principales: Eulisse, G, Muzaffar, S, Osborne, I, Taylor, L, Tuura, L A
Lenguaje:eng
Publicado: 2004
Materias:
Acceso en línea:https://dx.doi.org/10.1016/j.nima.2004.07.035
http://cds.cern.ch/record/908988
_version_ 1780908856011915264
author Eulisse, G
Muzaffar, S
Osborne, I
Taylor, L
Tuura, L A
author_facet Eulisse, G
Muzaffar, S
Osborne, I
Taylor, L
Tuura, L A
author_sort Eulisse, G
collection CERN
description CMS has developed approximately one million lines of C++ code and uses many more from HEP, Grid and public domain projects. We describe a suite of tools which help to manage this complexity by measuring software dependencies, quality metrics, and CPU and memory performance. This coherent environment integrates and extends existing open-source tools where possible and provides new in-house components where a suitable solution does not already exist. This is a freely available environment with graphical user interface which can be run on any software without the need to recompile or instrument it. We have developed ignominy which performs software dependency analysis of source code, binary products and external software. CPU profiling is provided based on oprofile, with added features such as profile snapshots, distributed profiling and aggregate profiles for farm systems including server-side tools for collecting profile data. Finally, we have developed a low-overhead performance and memory profiling tool, MemProf, which can perform (gprof-style) hierarchical performance profiling, in a way that works with multiple threads and dynamically loaded libraries (unlike gprof) . It also gathers exact memory allocation profiles including which code allocates most, in what sizes of chunks, for how long, where the memory is getting freed and where it is getting leaked. We describe this tool suite and how it has been used to enhance the quality of CMS software.
id cern-908988
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2004
record_format invenio
spelling cern-9089882019-09-30T06:29:59Zdoi:10.1016/j.nima.2004.07.035http://cds.cern.ch/record/908988engEulisse, GMuzaffar, SOsborne, ITaylor, LTuura, L AA coherent environment of software improvement tools for CMSDetectors and Experimental TechniquesCMS has developed approximately one million lines of C++ code and uses many more from HEP, Grid and public domain projects. We describe a suite of tools which help to manage this complexity by measuring software dependencies, quality metrics, and CPU and memory performance. This coherent environment integrates and extends existing open-source tools where possible and provides new in-house components where a suitable solution does not already exist. This is a freely available environment with graphical user interface which can be run on any software without the need to recompile or instrument it. We have developed ignominy which performs software dependency analysis of source code, binary products and external software. CPU profiling is provided based on oprofile, with added features such as profile snapshots, distributed profiling and aggregate profiles for farm systems including server-side tools for collecting profile data. Finally, we have developed a low-overhead performance and memory profiling tool, MemProf, which can perform (gprof-style) hierarchical performance profiling, in a way that works with multiple threads and dynamically loaded libraries (unlike gprof) . It also gathers exact memory allocation profiles including which code allocates most, in what sizes of chunks, for how long, where the memory is getting freed and where it is getting leaked. We describe this tool suite and how it has been used to enhance the quality of CMS software.oai:cds.cern.ch:9089882004
spellingShingle Detectors and Experimental Techniques
Eulisse, G
Muzaffar, S
Osborne, I
Taylor, L
Tuura, L A
A coherent environment of software improvement tools for CMS
title A coherent environment of software improvement tools for CMS
title_full A coherent environment of software improvement tools for CMS
title_fullStr A coherent environment of software improvement tools for CMS
title_full_unstemmed A coherent environment of software improvement tools for CMS
title_short A coherent environment of software improvement tools for CMS
title_sort coherent environment of software improvement tools for cms
topic Detectors and Experimental Techniques
url https://dx.doi.org/10.1016/j.nima.2004.07.035
http://cds.cern.ch/record/908988
work_keys_str_mv AT eulisseg acoherentenvironmentofsoftwareimprovementtoolsforcms
AT muzaffars acoherentenvironmentofsoftwareimprovementtoolsforcms
AT osbornei acoherentenvironmentofsoftwareimprovementtoolsforcms
AT taylorl acoherentenvironmentofsoftwareimprovementtoolsforcms
AT tuurala acoherentenvironmentofsoftwareimprovementtoolsforcms
AT eulisseg coherentenvironmentofsoftwareimprovementtoolsforcms
AT muzaffars coherentenvironmentofsoftwareimprovementtoolsforcms
AT osbornei coherentenvironmentofsoftwareimprovementtoolsforcms
AT taylorl coherentenvironmentofsoftwareimprovementtoolsforcms
AT tuurala coherentenvironmentofsoftwareimprovementtoolsforcms