LHCb Core Software Meeting

Date and Location

22. November 2006
10:00 - 12:10
CERN (2-R-030)


Andres, Chris (phone) Florence, Gloria, Hubert, Juan, Marco Ca., Marco Cl. (minutes), Markus, Nick (phone), Olivier, Pere, Philippe, Thomas, Ulrich


Specific Topics

Usage of microDST instead of n-tuples for analysis (Ulrich Kerzel)

See the slides on the agenda.

We had a long discussion about how to proceed. The idea is to store on DST files only part of the selected events (e.g. only the decay tree) and exploit the Transient Store navigation provided by Gaudi to be able to access the missing information if needed.
This idea is quite appealing. Anyway few technical details need to be sorted out:

  • the cross references (SmartRef) need to be preserved to avoid segmentation faults
  • we cannot remove elements from containers
  • the user analysis code should transparently run on normal DST and uDST

The most promising approach is to copy the data structures to a different sub-directory in the T.S. also copying the referenced objects (deep/recursive copy). To avoid that the network of cross references bring too much in the uDST sub-tree, the tool performing the deep copy should be able to stop at a certain depth removing the unwanted references. To analyze uDST with the same algorithms used for DTS, those algorithms should use "rootOnTES()" to find the data.

The wide adoption of such data format and analysis policy should be approved by the collaboration. A presentation will be needed next week (Chris volunteers).

Ulrich can work on the actual implementation (with help from the core software group).


  • Application Area meeting about GENSER and port of generators to C++.

Software Releases

Gaudi (Hubert)

  • Added option '-m32' to the v18 branch, needed for generation of slc4_ia32 binaries on slc4_amd64 machines.
  • v19
    • almost completed the integration of the new StatusCode (needs tests)
    • merge of the changes in v18
    • the DataStreamTool by Andres and Greig is not ready yet (interfaces to be polished)

Pere prepared a prototype of a plug-in manager based on Reflex (it could be included in ROOT) that allows the instantiation of objects without the need of loading in advance the libraries (ApplicationMgr.DLLs). It works using rootmap files. It allows to remove all the *Shr environment variables, but needs to have the LD_LIBRARY_PATH correctly set (we need the install area). The problems are that protected constructors cannot work, the factories declarations need to be modified (easy if the macros are used). Of course we will need to adapt the pattern for component library in order to generate rootmap files.
If we want to do such a big change, now is the best moment. We agree to use the new plug-in manager from Gaudi v19. It has anyway to be discussed with Atlas.

LHCb, Boole, Brunel (Marco Ca.)

  • Preparing the final DC06 version of Brunel
    • 2 memory leaks fixed
    • fixed a problem with a StatusCode not checked

Philippe noted that we should check the maximum memory usage of our applications to avoid problems on the GRID with systems that have limits on the memory.

Philippe reminded the issue of the SSE2 optimization. The problem is that when a process leave the node because it does not have the SSE2 instruction set, the same node is used right away for another of our processes, causing a misuse of the resources.
We agreed that the SSE2 optimization is important and we should find a way to use both the types of CPU (with and without SSE2). Unfortunately we need to avoid the misuse of resources as soon as possible, which means that we do not have time to find clean solution. The plan is to temporarily remove the -sse2 flag from the next Gaudi v18 and investigate the possibility of defining an alternative platform tag that inherits from the standard slc3 or slc4 tag, but removing the -sse2 option.

Gauss (Gloria)

  • New dec files for 2 new event types.

DaVinci (Juan)

  • Released new DaVinci on Monday.
  • Testing preselections: there is a problem on one of them getting incredibly slow.

Round Table

Marco Ca.
  • age limit
    • currently we keep always 4 files open at the same time (needed when accessing multiple files for one event)
    • the new version of CASTOR is using an LSF queue to limit the number of concurrently opened files, which means that we might not be able to open a new file because our applications are keeping open files that are not really used
    • the next versions of the applications will have better limits defined on a case by case basis (e.x. Brunel need only one file at a time) and the global default will be changed to 3 instead of 4
  • cross compilation
    • we can build and run slc4_ia32_gcc34 applications can run on slc4_amd64_gcc34 systems
    • slc3_ia32_gcc323 applications can run on slc4 systems only with the version of CASTOR found in LCG externals (the system one is linked against gcc 3.4 and cannot be used)
Almost all the applications moved to the new website style (Brunel and LHCb missing).
We need to decide what to do with DBASE and PARAM. Both need a web site, but there is no concept of version of application for them. The scripts need to be modified to take into account this use case.
Working on a generic wrapper for html pages.

-- MarcoClemencic - 24 Nov 2006

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2006-11-24 - MarcoClemencic
    • 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-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback