Installation of the ALICE Software Peter Hristov CERN

  • Slides: 24
Download presentation
Installation of the ALICE Software Peter Hristov CERN, March 22, 2006 1

Installation of the ALICE Software Peter Hristov CERN, March 22, 2006 1

Packages Simulation, reconstruction, analysis Root Geant 3 Fluka Ali. Root Grid/distributed computing: VO, etc.

Packages Simulation, reconstruction, analysis Root Geant 3 Fluka Ali. Root Grid/distributed computing: VO, etc. LCG Ali. En March 22, 2006 P. Hristov 2

What use cases are you supporting? Root, Geant 3, Fluka, Ali. Root: User installation:

What use cases are you supporting? Root, Geant 3, Fluka, Ali. Root: User installation: CVS download of recommended versions Installation for Grid productions/applications: tarballs Ali. En: User installation: Ali. En installer Production: VO installation March 22, 2006 P. Hristov 3

Installation: Environment Variables # ROOT export ROOTSYS=/home/mydir/root export PATH=$PATH: $ROOTSYS/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: $ROOTSYS/lib #

Installation: Environment Variables # ROOT export ROOTSYS=/home/mydir/root export PATH=$PATH: $ROOTSYS/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: $ROOTSYS/lib # Ali. Root export ALICE=/home/mydir/alice export ALICE_ROOT=$ALICE/Ali. Root export ALICE_TARGET=`root-config --arch` export PATH=$PATH: $ALICE_ROOT/bin/tgt_${ALICE_TARGET} export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: $ALICE_ROOT/lib/tgt_${ALICE_TARGET} # GEANT 3 export PLATFORM=`root-config --arch` export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: $ALICE/geant 3/lib/tgt_${ALICE_TARGET} March 22, 2006 P. Hristov 4

Root Download (CVS) Login to the ROOT CVS repository if you haven't done it

Root Download (CVS) Login to the ROOT CVS repository if you haven't done it yet: cvs –d : pserver: cvs@root. cern. ch: /user/cvs login CVS password: cvs Download (check out) the needed ROOT version (v 5 -10 -00 in the example): cvs -d : pserver: cvs@root. cern. ch: /user/cvs co -r v 5 -10 -00 root March 22, 2006 P. Hristov 5

Root Configuration: Pythia 6 Ali. Root supplies libpythia 6. so This is a modified

Root Configuration: Pythia 6 Ali. Root supplies libpythia 6. so This is a modified version from standard for use with ALICE code. ROOT checks for lib. Pythia 6. so and the a common block before the compilation of TPythia 6 interface. Ali. Root needs ROOT with TPythia 6 to compile successfully. => Circular dependence March 22, 2006 P. Hristov 6

Root Configuration with Pythia 6 Configure and “make” Root: no Pythia 6 “make all-pythia

Root Configuration with Pythia 6 Configure and “make” Root: no Pythia 6 “make all-pythia 6” in Ali. Root (see below) Create symbolic link between libpythia 6. so and lib. Pythai 6. so Re-configure Root: lib. Pythia 6. so is found Do “make” in $ROOTSYS: obtain the “final” version of Root Do “make” for Ali. Root March 22, 2006 P. Hristov 7

Root: Compilation, Tests After the configuration optionally edit My. Config. mk. For example add

Root: Compilation, Tests After the configuration optionally edit My. Config. mk. For example add there OPT += -g Do “make; make map” Do “cd test; make” Optionally add “. ” (dot) to LD_LIBRARY_PATH Run “stress”, ”stressgeom”, ”stress. Linear”, “stress. Vector”, etc. Now you have fully operational Root March 22, 2006 P. Hristov 8

Installation of Geant 3 compiles with minimal problems. Needs Root to make TGeant 3

Installation of Geant 3 compiles with minimal problems. Needs Root to make TGeant 3 interface Geant 3 must be accessible from $ALICE/geant 3 cd $ALICE cvs -d : pserver: cvs@root. cern. ch: /user/cvs co -r v 1 -4 geant 3 cd geant 3 make March 22, 2006 P. Hristov 9

Fluka Register and get the Fluka library from http: //www. fluka. org Unpack the

Fluka Register and get the Fluka library from http: //www. fluka. org Unpack the library in $ALICE/fluka March 22, 2006 P. Hristov 10

Ali. Root Login to the Ali. Root CVS repository if you haven't done it

Ali. Root Login to the Ali. Root CVS repository if you haven't done it yet: cvs –d : pserver: cvs@alisoft. cern. ch: /soft/cvsroot login CVS password: cvs cd $ALICE Download (check out) the needed Ali. Root version (v 4 -04 -01 in the example): cvs -d : pserver: cvs@alisoft. cern. ch: /soft/cvsroot co -r v 4 -04 -01 Ali. Root cd Ali. Root; make March 22, 2006 P. Hristov 11

Questions I How the tarballs (rpms) are prepared? By the program librarian. We also

Questions I How the tarballs (rpms) are prepared? By the program librarian. We also include the relevant gcc libraries. Do you have a common repository of tarballs? They are registered/stored in Ali. En What different types and categories of tarballs are you supporting? Linux (SLC 3) on Pentium, Itanium, Opteron March 22, 2006 P. Hristov 12

Questions II What optimizations are put in place to minimize the size of files

Questions II What optimizations are put in place to minimize the size of files to download? Removal of the field maps which are not used Support for concurrent versions? Yes, stored in Ali. En and described in the JDL file How do you handle the dependences? Simple Web page with the recommended sets of Root/Geant 3/Ali. Root tags March 22, 2006 P. Hristov 13

Questions III What tools are used to simplify the task of end-user physicists? No

Questions III What tools are used to simplify the task of end-user physicists? No special tools. The support is via mailing list. Manuals and tutorials recently put in place Are the users satisfied? What are the problems? – No major problems March 22, 2006 P. Hristov 14

Questions IV Connection with the experiment configuration management system Ali. En packman used to

Questions IV Connection with the experiment configuration management system Ali. En packman used to register the tarballs Plans to use Ali. En. BITS for nightly builds and preparation of tarballs What is currently used from what is provided by AA/SPI? What could be provided to simplify your task? March 22, 2006 P. Hristov 15

Package manager (Pack. Man) Definition of a Package Group of libraries and executables that

Package manager (Pack. Man) Definition of a Package Group of libraries and executables that have to be installed in the worker node Do not require root access to be installed Defined either by a VO or by a user Dependencies with other packages Packages configure the environment variables before job execution Pack. Man was supposed to be the EGEE/g. Lite package manager March 22, 2006 P. Hristov 16

(Possible) deployment scenarios Common Packages (ROOT, POOL, . . ) VO & user Packages

(Possible) deployment scenarios Common Packages (ROOT, POOL, . . ) VO & user Packages Site package cache Worker node cache March 22, 2006 P. Hristov 17

Creating a package with Pack. Man Creating tar file tar czf ROOT. tar. gz

Creating a package with Pack. Man Creating tar file tar czf ROOT. tar. gz Registering the package in the catalogue: (from the alien prompt) packman define ROOT 5. 2. 0 file: //myhost/ROOT. tar In the JDL of a job, require the package Submit a JDL like: Executable=“my. Exec. ”; Packages=“ROOT: : 5. 2. 0”; Input. File=…. March 22, 2006 P. Hristov 18

Additional package definition There is also user defined metadata about the package. The metadata

Additional package definition There is also user defined metadata about the package. The metadata includes: Size, dependencies, configuration script, pre- and postinstallation scripts, installation script, pre- and post- remove scripts To define any metadata the user has to : Create the metadata structure for that directory packman define Ali. ROOT v 4. 03. 04 file: /tmp/aliroot. tar. gz Dependencies=‘ROOT: 5. 2. 0’ March 22, 2006 P. Hristov 19

Ali. En BITS: Motivation Automate the process of building Ali. En components Have a

Ali. En BITS: Motivation Automate the process of building Ali. En components Have a current, up to date, installable binary image of Ali. En for different architectures Better understand the dependencies between the packages Perform functional and unit tests at the build time and receive alerts immediately (4 different platforms!) Provide software that works to the end-users March 22, 2006 P. Hristov 20

Ali. En BITS: Building Environment Based on the Konstruct framework used to build KDE

Ali. En BITS: Building Environment Based on the Konstruct framework used to build KDE and dependencies which is itself based on BSD ports system Each package has a directory in a hierarchy For each package there is a Makefile defining a set of variables: • • Name, version, author, web page License information Build and runtime dependencies Master sites for downloading the package source Additional patches for Ali. En specifics Checksums for verifying the integrity of the files March 22, 2006 P. Hristov 21

Building Process [1] Get the available Releases Select the one to be (re)built Fetch

Building Process [1] Get the available Releases Select the one to be (re)built Fetch the latest changes for this release Do a (rsync and) cvs update Select the packages that have to be rebuilt Based on modifications received on cvs update Based on last build status Always rebuild and test Ali. En packages Determine the build order Analyze the dependencies between packages March 22, 2006 P. Hristov 22

Building Process [2] For each package Clean its environment Fetch source archive from master

Building Process [2] For each package Clean its environment Fetch source archive from master sites Generate SLOC statistics Build, install and run tests Create the binary image for binary installations Generate web pages Build / SLOC / Graph dependencies Generate the pages for Ali. En tests Cleanup environment Send notification email when status changes March 22, 2006 P. Hristov 23

Ali. En. BITS: Summary Ali. En BITS is a tool for automatizing big projects

Ali. En. BITS: Summary Ali. En BITS is a tool for automatizing big projects build process (Ali. En -- 184 pkgs) Intelligently select packages that have to be rebuilt Offer different views for packages dependencies - very useful in understanding and managing large projects Provide SLOC statistics Save and present relevant logs on components testing Building and continuous testing is important for delivering high quality software to endusers March 22, 2006 P. Hristov 24