Presentation is loading. Please wait.

Presentation is loading. Please wait.

AliEn2 and GSI batch farm/disks/tape Current status Kilian Schwarz.

Similar presentations


Presentation on theme: "AliEn2 and GSI batch farm/disks/tape Current status Kilian Schwarz."— Presentation transcript:

1 AliEn2 and GSI batch farm/disks/tape Current status Kilian Schwarz

2 Status GSI batch farm 4 machines dedicated to ALICE (alice queue) (Dual P4 Xeon 2 GHz, 1 GB RAM) New queue (bsarge) in testing state (ca. 20 Opteron, 2.3 GHz, 4 GB RAM, Currently Debian Sarge 32bit) ROOT/AliRoot exist compiled for Debian Sarge (gcc 3.3.5) access via. Alilogin v4-03-04-sarge. First AliRoot test runs successful

3 Status GSI disk /d/alice01/03/04/05 dedicated for ALICE altogether still 220 GB space free 3 new fileserver provide 8 TB disk space for Grid usage (LCG SRM) – interface to local users still investigated (xrootd ?) 2 new fileservers available with 6 TB disk space. Need to be built in by systems group

4 Status GSI tape 3 ALICE tape archives available Alice (generic use), Aliprod (AliEn use), Aliceraw (for raw data)

5 Status AliEn2 Newest version (AliEn2.5) installed and working

6 production - GSI participates in SC3 and DC05 currently 6 jobs in parallel (alice queue) new Sarge machines being included soon GSI SC3 is planned to run via Christmas holidays At GSI central IT services are not planned to be supervised On new Sarge queue in principle 96 jobs in parallel possible (limited only by GSI bandwidth)

7 Get certificate (http://wiki.gsi.de/Grid)http://wiki.gsi.de/Grid New AliEn user has to be created (workflow unclear !!!) Mkdir $HOME/.alien Echo „export AlIEN_USER=user“ > $HOME/.alien/Environment ln –s $HOME/.globus $HOME/.alien/globus >. /u/aliprod/bin/.alienlogin > alien register-cert (AFS password required) > alien proxy-init > alien (login) Access to AliEn User story discussed in ALICE-LCG- TF: User support and documentation needed SC4: individual user analysis

8 Production via AliEn Ingredients: sim.C, rec.C, simRun.C, production.jdl sim.C void rec() { AliSimulation simu; TStopwatch timer; timer.Start(); sim.Run(); timer.Stop(); timer.Print(); } rec.C void rec() { AliReconstruction reco; TStopwatch timer; timer.Start(); reco.Run(); timer.Stop(); timer.Print(); }

9 simRun.C // #define VERBOSEARGS // simrun.C { // extract the run and event variables given with --run --event int nrun = 0; int nevent = 0; int seed = 0; char sseed[1024]; char srun[1024]; char sevent[1024]; sprintf(srun,""); sprintf(sevent,""); for (int i=0; i Argc();i++){ #ifdef VERBOSEARGS printf("Arg %d: %s\n",i,gApplication- >Argv(i)); #endif if (!(strcmp(gApplication->Argv(i),"--run"))) nrun = atoi(gApplication->Argv(i+1)); sprintf(srun,"%d",nrun); if (!(strcmp(gApplication->Argv(i),"-- event"))) nevent = atoi(gApplication->Argv(i+1)); sprintf(sevent,"%d",nevent); } seed = nrun * 100000 + nevent; sprintf(sseed,"%d",seed); if (seed==0) { fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!\n"); fprintf(stderr,"!!!! WARNING! Seeding variable for MC is 0 !!!!\n"); fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!\n"); } else { fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!\n"); fprintf(stdout,"!!! MC Seed is %d \n",seed); fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!\n"); } // set the seed environment variable gSystem->Setenv("CONFIG_SEED",sseed); gSystem->Setenv("DC_RUN",srun); gSystem->Setenv("DC_EVENT",sevent); gSystem->Exec("cp $ROOTSYS/etc/system.rootrc.rootrc"); gSystem->Exec("aliroot -b -q sim.C > sim.log 2>&1"); gSystem->Exec("aliroot -b -q rec.C > rec.log 2>&1"); } Main à la pâte: simRun.C

10 production.jdl Executable = "aliroot"; Jobtag={"comment:PDC05 flow events“, "round::2005“, "tag:v4-03- 04", "type:Flow"}; Packages={"AliRoot::v4-03-04“, "GEANT3::v1-3"}; TTL = "86400"; Validationcommand ="/alice/cern.ch/user/a/aliprod/prod uction_2005/flow/configs/validation.sh"; Requirements = ( other.CE == "Alice::LCG::Catania" ); InputFile= {"LF:/alice/cern.ch/user/a/aliprod/p dc05_flow/production/configs/Confi g.C", "LF:/alice/cern.ch/user/a/aliprod/pd c05_flow/production/configs/simru n.C", "LF:/alice/cern.ch/user/a/aliprod/pdc05 _flow/production/configs/sim.C", "LF:/alice/cern.ch/user/a/aliprod/pdc05 _flow/production/configs/rec.C" }; OutputArchive={"root_archive:*.root@ Alice::CERN::Castor2", "log_archive:*.log,stdout,stderr@Al ice::CERN::se01"}; OutputDir="/alice/cern.ch/user/a/alipro d/production_2005/flow/output_allfi les/$1/#alien_counter_03i#"; splitarguments="simrun.C --run $1 -- event #alien_counter#"; split="production:1-50"; Workdirectorysize={"1500MB"}; Main à la pâte: jdl

11 Add locally produced files in AliEn File Catalogue e.g. > alien alien:> cd alien:> add ks_newfile file://lxg0503.gsi.de/misc/kschwarz/testjob s/Config.C file://lxg0503.gsi.de/misc/kschwarz/testjob s/Config.C alien:>“Registering file in ALICE::GSI::File“ alien:>“File inserted into catalogue“

12 Submit the job, monitor, get output > alien login alien:> submit production.jdl alien:> top alien:> spy jobID nodeinfo/stdout/stderr alien:> cd outputdirectory alien:> get outputfiles

13 Analysis via AliEn Ingredients: esdanalysis.jdl, AliESD.par (PROOF Archive), AliEnBatchAnalysis.C, esdTree.C/h (Selector files) method: same as with production – create files, register them in AliEn FC, submit job, get output.

14 AliEnBatchAnalysis.C Int_t AlienBatchAnalysis( const char *collectionfile, const char *selectorfile, const char* pararchivename, const char *chainname="esdTree" ) { ////////////////////////////////////////// // Libraries required to load // gSystem.Load("libRAliEn.so"); // gSystem.Load("libXMLIO.so"); gSystem->Load("libapmoncpp.so"); ////////////////////////////////////////// ////////////////////////////////////////////////////////////////// // Setup PAR File if (pararchivename) { char processline[1024]; sprintf(processline,".! tar xvzf %s.par",pararchivename); gROOT->ProcessLine(processline); const char* ocwd = gSystem->WorkingDirectory(); gSystem->ChangeDirectory(pararchivename); // check for BUILD.sh and execute if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { printf("*******************************\n"); printf("*** Building PAR archive ***\n"); printf("*******************************\n"); if (gSystem->Exec("PROOF-INF/BUILD.sh")) { Error("AlienBatchAnalysis","Cannot Build the PAR Archive! - Abort!"); return -1; } // check for SETUP.C and execute if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { printf("*******************************\n"); printf("*** Setup PAR archive ***\n"); printf("*******************************\n"); gROOT->Macro("PROOF-INF/SETUP.C"); } gSystem->ChangeDirectory("../"); } ////////////////////////////////////////////////////////////////// // Connect to AliEn printf("*******************************\n"); printf("*** Connect to AliEn ***\n"); printf("*******************************\n"); TGrid::Connect("alien://"); ////////////////////////////////////////////////////////////////// // Create Collection printf("*******************************\n"); printf("*** Create Collection ***\n"); printf("*** Wk-Dir = |%s| \n",gSystem->WorkingDirectory()); printf("*** Coll = |%s| \n",collectionfile); printf("*******************************\n"); TAlienCollection* coll = TAlienCollection::Open(collectionfile); coll->Print(); ////////////////////////////////////////////////////////////////// printf("*******************************\n"); printf("*** Convert Collection ***\n"); printf("*******************************\n"); TGridResult* result = coll->GetGridResult("",1); TList* analysisfilelist = result->GetFileInfoList(); analysisfilelist->Print();

15 AlienBatchAnalysis.C part 2 ////////////////////////////////////////////////////////////////// // Create A Chain printf("*******************************\n"); printf("*** Create Chain ***\n"); printf("*******************************\n"); TChain* analysischain = new TChain(chainname); analysischain->AddFileInfoList(analysisfilelist); analysischain->Print(); ///////////////////////////////////////////////////////////////// // Run the Analysis Selector printf("*******************************\n"); printf("*** Run Analysis Selector %s\n",selectorfile); printf("*******************************\n"); analysischain->Process(selectorfile);

16 Collection XML file …


Download ppt "AliEn2 and GSI batch farm/disks/tape Current status Kilian Schwarz."

Similar presentations


Ads by Google