Stefan Lohn (CERN)
Software optimization is a complex process, where the intended improvements have different effects on different platforms, with multiple operating systems and an ongoing introduction of new hardware. In addition several compilers produce differing object-code as result of different internal optimization procedures. To trace back the impact of the optimizations is going to become more difficult. To obtain precise information of the general performance, to make profiling results comparable and to verify the influences of improvements in the framework or of specific algorithms, it is important to rely on standardized profiling and regression tests. Once done, software metrics can be created from the profiling results to monitor the changes in performance and to create reports about on a regular basis if modifications lead to significant performance degradations. The LHCb collaboration develops and maintains large software frameworks for the LHCb experiment, and for the HEP community like Gaudi. In the upcoming years a big refactoring effort is planned to introduce or optimize the utilization of features like vectorization, parallelization, to reduce the influences of hotspots and to evaluate strategies to reduce the impact of bottlenecks. It is crucial to guide the refactoring with a profiling system that gives hints for necessary source-code reengineering and how these optimizations behave with different configurations. To achieve this a system for systematic profiling is set up to run test jobs along with the new build system based on the open-source project Jenkins. Summary data are abstracted from the detailed profiling results to be visualized on a web based analysis platform and more detailed information can be accessed through a public network file system. In order to improve the optimization process and to focus the labor intensive developments on crucial issues it is necessary to evaluate the benefits of such a profiling service, to point out limitations, and to reuse features of already widespread profiling software.