Software Optimization


Documentation for profiling can be found herer:


Information on HEPSPEC06

Running the DIRAC Benchmark

Use cases


Scripts as representative as possible of the various LHCb computing phases are gathered in AFS in:


In the bin directories the following files are present:

The number of events to process can be passed as argument.

Local installation of Reconstruction

Copy the files:


To your target host.

Then define an env variable called MYSITEROOT, where the software will be installed (several gigs needed).

Doing the following will install the soft and setup the environment:

export MYSITEROOT=`pwd`
export CMTCONFIG=x86_64-slc5-gcc46-opt

then you can run with:



Other test cases are possible, the following presentation shows how to run the HLT algorithms in Brunel for easier tests.

Source-code optimizations


Find here an instruction to use the compilers abillity to Source-Code Vectorization.

Analysis performed

Optimization ideas and results

Here is an (unordered) list of tracks/ideas that could be investigated to see if they can help improve the performance of the LHCb software,in term of both CPU and memory usage

  • Compiler autovectorization (gcc 4.7, icc)
  • Link Time optimization (usable as gcc 4.7)
  • C++ 11 (possibly removes some memory copies)
  • Use of Compiler intrisics to add CPU specific optimizations
  • CPU PMU counters analysis (especiallyLast Level Cache misses) and memory usage optimization
  • mx32 test
  • Test of zram (compressed memory) to limit memory usage
  • kvm usage


Code Analysis Tools

Using Markus's TES Tracer

Detailed Histogram Timing

Use of igprof


c.f. References


-- BenjaminCouturier - 20-Jun-2012

Edit | Attach | Watch | Print version | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r14 - 2013-12-10 - StefanLohn
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback