Download presentation
Presentation is loading. Please wait.
1
Installation of the ALICE Software
Peter Hristov CERN, March 22, 2006
2
Packages Simulation, reconstruction, analysis
Root Geant3 Fluka AliRoot Grid/distributed computing: VO, etc. LCG AliEn
3
What use cases are you supporting?
Root, Geant3, Fluka, AliRoot: User installation: CVS download of recommended versions Installation for Grid productions/applications: tarballs AliEn: User installation: AliEn installer Production: VO installation
4
Installation: Environment Variables
# ROOT export ROOTSYS=/home/mydir/root export PATH=$PATH:$ROOTSYS/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib # AliRoot export ALICE=/home/mydir/alice export ALICE_ROOT=$ALICE/AliRoot 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/geant3/lib/tgt_${ALICE_TARGET}
5
Root Download (CVS) Login to the ROOT CVS repository if you haven't done it yet: cvs –d login CVS password: cvs Download (check out) the needed ROOT version (v in the example): cvs -d co -r v root
6
Root Configuration: Pythia6
AliRoot supplies libpythia6.so This is a modified version from standard for use with ALICE code. ROOT checks for libPythia6.so and the a common block before the compilation of TPythia6 interface. AliRoot needs ROOT with TPythia6 to compile successfully. => Circular dependence
7
Root Configuration with Pythia6
Configure and “make” Root: no Pythia6 “make all-pythia6” in AliRoot (see below) Create symbolic link between libpythia6.so and libPythai6.so Re-configure Root: libPythia6.so is found Do “make” in $ROOTSYS: obtain the “final” version of Root Do “make” for AliRoot
8
Root: Compilation, Tests
After the configuration optionally edit MyConfig.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”, ”stressLinear”, “stressVector”, etc. Now you have fully operational Root
9
Installation of Geant3 Geant3 compiles with minimal problems. Needs Root to make TGeant3 interface Geant3 must be accessible from $ALICE/geant3 cd $ALICE cvs -d co -r v1-4 geant3 cd geant3 make
10
Fluka Register and get the Fluka library from http://www.fluka.org
Unpack the library in $ALICE/fluka
11
AliRoot Login to the AliRoot CVS repository if you haven't done it yet: cvs –d login CVS password: cvs cd $ALICE Download (check out) the needed AliRoot version (v in the example): cvs -d co -r v AliRoot cd AliRoot; make
12
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 AliEn What different types and categories of tarballs are you supporting? Linux (SLC3) on Pentium, Itanium, Opteron
13
Questions II Support for concurrent versions?
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 AliEn and described in the JDL file How do you handle the dependences? Simple Web page with the recommended sets of Root/Geant3/AliRoot tags
14
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
15
Questions IV Connection with the experiment configuration management system AliEn packman used to register the tarballs Plans to use AliEnBITS 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?
16
Package manager (PackMan)
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 PackMan was supposed to be the EGEE/gLite package manager
17
(Possible) deployment scenarios
Common Packages (ROOT, POOL,..) VO & user Packages Site package cache Worker node cache
18
Creating a package with PackMan
Creating tar file tar czf ROOT.tar.gz Registering the package in the catalogue: (from the alien prompt) packman define ROOT file://myhost/ROOT.tar In the JDL of a job, require the package Submit a JDL like: Executable=“myExec.”; Packages=“ROOT::5.2.0”; InputFile=….
19
Additional package definition
There is also user defined metadata about the package. The metadata includes: Size, dependencies, configuration script, pre- and post- installation 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 AliROOT v file:/tmp/aliroot.tar.gz \ Dependencies=‘ROOT:5.2.0’
20
AliEn BITS: Motivation
Automate the process of building AliEn components Have a current, up to date, installable binary image of AliEn 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
21
AliEn 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 AliEn specifics Checksums for verifying the integrity of the files
22
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 AliEn packages Determine the build order Analyze the dependencies between packages
23
Building Process [2] For each package Generate web pages
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 AliEn tests Cleanup environment Send notification when status changes
24
AliEnBITS: Summary AliEn BITS is a tool for automatizing big projects build process (AliEn 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 end- users
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.