Overview of LHCb applications and software environment LHCb software tutorial - March 20111.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

6/4/20151 Introduction LHCb experiment. LHCb experiment. Common schema of the LHCb computing organisation. Common schema of the LHCb computing organisation.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
LHCbPR V2 Sasha Mazurov, Amine Ben Hammou, Ben Couturier 5th LHCb Computing Workshop
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
ATLAS Software Kaushik De University of Texas At Arlington based on a tutorial by P. Calafiura (LBNL) LHC Computing Workshop, Ankara May 2, 2008.
SubVersioN – the new Central Service at DESY by Marian Gawron.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Browsing Data with GaudiPython Disclaimers: 1.I am an apprentice! 2.The porpoise: we think GaudiPython could be quite useful for a LHCb physicist… Browsing.
Configuration Management (CM)
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
The introduction of CMT Version v1r14. General index 1.presentation 2.how to install CMT 3.how to write a requirements file 4.how to use CMT.
EGEE is a project funded by the European Union under contract IST Build Infrastructure & Release Procedures Integration.
Subversion (SVN) Tutorial Source:
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
Bookkeeping Tutorial. Bookkeeping & Monitoring Tutorial2 Bookkeeping content  Contains records of all “jobs” and all “files” that are created by production.
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
ALICE, ATLAS, CMS & LHCb joint workshop on
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
Paris package: practical aspects Installation / presentation To run a simulation Analysis To add a new module to Paris Installation / presentation To run.
LHCb-ATLAS GANGA Workshop, 21 April 2004, CERN 1 DIRAC Software distribution A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
EGEE is a project funded by the European Union under contract IST “Interfacing to the gLite Prototype” Andrew Maier / CERN LCG-SC2, 13 August.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
LHCb Simulation Tutorial CERN, 21 st -22 nd February B 00 l e Detector Simulation Examples.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Bookkeeping Tutorial. 2 Bookkeeping content  Contains records of all “jobs” and all “files” that are produced by production jobs  Job:  In fact technically.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
Part 4: FCM and the UM University of Reading, December 2015.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Marco Cattaneo Core software programme of work Short term tasks (before April 2012) 1.
BESIII Offline Software Development Environment Ma qiumei * Development environment * Configuration & management tool * Software development.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Alexey Badalov Contents Gaudi — LHCb’s software framework GPU Manager CUDA development with Gaudi Testing
CERN Tutorial, September Overview of LHCb applications and software environment.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Bologna Tutorial, June Overview of LHCb applications and software environment.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Pere Mato (CERN) First INFN International School on Architectures, tools and methodologies for developing efficient large scale scientific computing applications.
1 DIRAC Project Status A.Tsaregorodtsev, CPPM-IN2P3-CNRS, Marseille 10 March, DIRAC Developer meeting.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
Starting Analysis with Athena (Esteban Fullana Torregrosa) Rik Yoshida High Energy Physics Division Argonne National Laboratory.
SPI Report for the LHCC Comprehensive Review Stefan Roiser for the SPI project.
Installation of the ALICE Software
Configuration and Build System
ATLAS Software Distribution
Gaudi software release procedures
Plug-in Framework ETICS All Hands – October 2006
NIGHTLY BUILD SCRIPT FOR THE LEVEL-1 TRIGGER ONLINE SOFTWARE
LHCb Software Tutorial
Overview of LHCb applications and software environment
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
2 Getting Started.
2 Getting Started.
2 Getting Started.
Presentation transcript:

Overview of LHCb applications and software environment LHCb software tutorial - March 20111

Analysis Bender LHCb applications LHCb software tutorial - March Simul. Gauss Analysis DaVinci MCHits MicroDST MCParticles GenParticles Event Model / Detector Description / Conditions Gaudi Digit. Boole HLT Moore Reco. Brunel Raw Data DST Stripping DaVinci Ev.Disp. Panoramix

Software organisation LHCb software tutorial - March  Applications are released as a stack of Projects  One project per application  e.g. Brunel, DaVinci  Several independent projects for components  e.g. Lbcom, Rec, Hlt, Analysis, Stripping  Four projects for the framework  Gaudi, LHCb, Phys, Online  Projects are collections of Packages  Group of classes in a logically cohesive physical unit.  Packaging structure reflects on:  Logical structure of the application  Organizational structure of the development team  Package is minimal entity that can be versioned  A project version uniquely defines the versions of the packages it contains, and of the projects it depends on  Users work in the environment defined for a given version of the chosen project  e.g. SetupProject DaVinci v28r1p1 Brunel Lbcom Rec LHCb Gaudi

CMT (Configuration Management Tool) LHCb software tutorial - March  Based around the notion of package  Provides a set of tools for automating the configuration and building of packages CMT requirements code SVN repository What to build How to build Package dependencies makefile DevStudio files Building tools (compilers, linkers, IDEs ) Libraries & Executables

public scripts and configurables, will be on $PYTHONPATH Mandatory documentation directory contains the release.notes file Package: Structure LHCb software tutorial - March cmt srcdoc i686_winxp _vc9_dbg x86_64_slc5 _icc11_opt x86_64-slc5 -gcc43-opt packA $PACKAROOT Mandatory manager directory contains the requirements file public include files #include “packA/xxx.h”... options HatpackA python Job options Generated binary directories

Package versions LHCb software tutorial - March  Packages have several versions  Defined in cmt requirements file  Version number formatted according to convention: v28r1p1  Major version  Indicates a change in the interface: all packages that use it may have to change  Minor version  Indicates an internal only change  Patch version  Not always present. A minor bug fix to an existing release Major version 28 Minor version 1 Patch version 1

Package Categories LHCb software tutorial - March  Application: is a package that sets up the environment and contains the job options needed for configuring and running a program.  Library: contains a list of classes and the list of dependent packages needed to compile it.  Package group: contains a list of other packages with their version number (e.g. LHCbSys)  Interface package: interfacing to packages not managed with CMT (e.g. Python, GSL, ROOT,…)

Link vs. Component Libraries LHCb software tutorial - March  Link libraries are linked to the program executable  (static or dynamic linking)  Base classes, event and geometry data classes  Loaded at program start  Must be found on LD_LIBRARY_PATH  Component libraries are loaded on demand at run-time  Collection of components (Algorithms, Tools, Services, etc.)  “Plug-ins”  No need to recompile or re-link program if plug-in changes

CMT: requirements file LHCb software tutorial - March package MyPackage version v1r0 # Structure, i.e. directories to process. branches cmt doc src # Used packages. use GaudiAlg v* # Component library building rule library MyPackage../src/*.cpp # define component library link options apply_pattern component_library library=MyPackage package MyPackage version v1r0 # Structure, i.e. directories to process. branches cmt doc src # Used packages. use GaudiAlg v* # Component library building rule library MyPackage../src/*.cpp # define component library link options apply_pattern component_library library=MyPackage

CMT: Basic Commands LHCb software tutorial - March  cmt config  Configures the package (creates setup and make files)  Invoked automatically by getpack (see later slide)  cmt show uses  Show dependencies and actual versions used  cmt make  build the current package  cmt broadcast  Recursive CMT command in all used packages found in the current CMT project  e.g. cmt broadcast cmt make  cmt run  Executes in current package environment

Setting the CMT environment LHCb software tutorial - March  Create a working directory for a given project  actually an alias for SetupProject --build-env [ ]  creates working directory and cd to it: ~/cmtuser/ _  Packages are searched for in Projects that are on CMTPROJECTPATH  Default is ${User_release_area}:${LHCBPROJECTPATH}  Add additional paths with --nightly and --dev-dir switches of SetupProject > setenv [ ]

Getting a package LHCb software tutorial - March  The “getpack” command  Script combining “svn checkout” + “cmt config”  If no version given, it suggests the latest version of a package  N.B. Suggested version is not necessarily consistent with current environment; especially if you are not using the latest environment > getpack [hat/] [ ] [head]

Building a package LHCb software tutorial - March  Work in the /cmt directory  / /cmt  Set the CMT configuration ($CMTCONFIG)  Defines platform, compiler, directories where to find binaries  slc5 default: x86_64-slc5-gcc43-opt  LbLogin –c i686-slc5-gcc43-dbg  setenv CMTCONFIG $CMTDEB  Invoke the make command, via cmt  Putting “cmt” in front of any command ensures that the command is executed in a shell that has defined all the environment described by the requirements file > cmt make [-j][target][clean][binclean]

Running the application LHCb software tutorial - March  Set the run time environment  Takes into account value of CMTCONFIG  Needed once at beginning of session, then only if environment changes (new packages checked out, requirements file changed, CMTCONFIG changed, etc.)  Execute the program  But see also cmt run command in hands on > SetupProject  gaudirun.py job.py

SVN (Version Control System) LHCb software tutorial - March  Record the history of your source files  Share your development with other people  Commit often  But only codes that compiles and builds  Tested by nightly builds  LHCb and Gaudi Repositories reside on CERN-IT SVN server  Private repositories are also possible, but must be managed by yourself, see requestinghttp://svn.web.cern.ch/svn/howto.php#creating- requesting

Accessing LHCb SVN server LHCb software tutorial - March  Web browsable  LHCb:  Trac:  WebSVN:  Gaudi:  Trac:  WebSVN:  World readable if authenticated  SSH authentication  Automatic if authenticated in CERN AFS cell (lxplus)  For write access  Register your account in the e-group lhcb-svn-writerslhcb-svn-writers  Detailed instructions at

Emacs customisation LHCb software tutorial - March  A customisation of emacs for LHCb:  Templates for creation of files  E.g. MyAlgorithm.h, MyAlgorithm.cpp, requirements, release.notes etc.  Various shortcuts for code insertions  Optionally, load an EDT keypad emulation  Add following lines to ~/.emacs:  (load (expand-file-name "$EMACSDIR/edt"))  (load (expand-file-name "$EMACSDIR/lhcb"))  Or copy from $EMACSDIR/.emacs

Exercise LHCb software tutorial - March  Now read the web page attached to this lesson in the agenda and work through the exercises