CRAB ile Veri Analizi
TR-Grid sitesinden
GİRİŞ
Bu dokuman CERN twiki sayfasinda yer alan rehber referans alinarak TR-Grid kaynaklari uzerinde CRAB araciligiyla nasil veri analizi yapilacagi amaciyla hazirlanmistir. Ayni islemleri lxplus uzerinde bulunan hesabiniz uzerinden asagidaki sayfada ki bilgileri kullanarakta yapabilirsiniz.
9 Nisan 2010 tarihinde, CMS calisma grubu toplantisinda, TR-Grid uzerinde calisabilmek icin gerekli komutlar ile ilgili sunuma ulasabilmek icin asagida ki linke bakabilirsiniz.
Gereksinimler
Grid Sertifikasi
Yuksek Enerji Fizigi (YEF) kullanicilarimiz icin ayirmis oldugumuz kefal.ulakbim.gov.tr makinesinde kullanici hesabiniz olmasi ve gecerli grid sertifikaniza sahip olmaniz gerekmektedir. Asagida ki yonergeyi takip ederek hem kullanici hesabinizi actirabilir, hem de grid sertifikanizi edinebilirsiniz.
grid-cert-info komutu ile sertifikanizi gorunteleyebilir, sertifikanizi kullanabileceginiz sureyi sorgulayabilirsiniz. Sertifikanizin gecerlilik suresinin dolmus olmasi durumunda grid-teknik at ulakbim.gov.tr adresine durumunuzu bildirebilirsiniz.
Sanal Organizasyon
Sizin icin imzalanmis olan grid sertifikaniz bir sanal organizasyonla (vo) iliskilendirilmelidir. YEF calismayan kullanicilarimiz ulusal sanal organizasyonlarimizdan olan trgrida, trgridb, trgride … sanal organizasyonuna dahil edilmektedir. CRAB ile uretilen veriler uzerinde analiz yapacaksaniz cms organizasyonuna dahil olmalisiniz.
voms-proxy-init –voms cms komutu ile proxy yaratabiliyorsaniz bu vo'ya dahilsiniz demektir. Asagida bu konuyla ilgili bilgi bulabilirsiniz.
SiteDB Kaydi
SiteDB'ye asagida ki yonergeyi takip ederek kayit olmaniz gerekmektedir, boylece analiz sonucu uretmis oldugunuz veri setlerini DBS uzerinden yayinlayabilirsiniz.
Var olan arac ve yazilimlar
Su durumda, WLCG yapisina dahil sitelerde 32 ve 64 bit CMSSW yazilimlari birlikte bulunmaktadir. CMSSW_3_4_* sonrasi 64 bitlik olan analiz yazilimlaridir. Hesaplama merkezleri, hesaplama uclarinda 64 bite gecis yapmislar ve yeni yazilimlar 64 bitlik olarak devam etmektedir. Ancak 32 bitlik yazilimlarda uyumlu bir sekilde calismaktadir.
Referans aldigimiz dokumanlarda CMSSW 2_2_13 kullanildigindan bu dokumanda da ayni yazilim kullanilmaktadir.
32 bitlik METU sitesinde yuklu olan yazilimlari gormek icin;
source /opt/exp_soft/cms/cmsset_default.sh export SCRAM_ARCH=slc4_ia32_gcc345 scram list
64 bitlik yuklu olan yazilimlari gormek icin;
source /opt/exp_soft/cms/cmsset_default.sh export SCRAM_ARCH=slc5_ia32_gcc434 scram list
JobRobot tarafindan WLCG alt yapisina dahil tum hesaplama merkezlerine test isleri gonderilerek sitenin durumu surekli kontrol edilir. Herhangi bir sorunun kaynaklanmasi durumunda site yoneticisine dogrudan iletisime gecilip problemin en kisa zaman da cozulmesi saglanir.
/opt/exp_soft/cms/CRAB/ dizini altinda kurulu olan CRAB araclarini bulabilirsiniz. Burda ki kurulu olan araclari hizlica kullanabileceginiz gibi kendi ev dizininize de kullanmak istediginiz araci kurup kullanabilirsiniz. Ya da bizlere ihtiyac duydugunuz araclari bildirerek kurmamizi saglayabilirsiniz. Bunun icin grid-teknik at ulakbim dot gov dot tr adresi ile irtibata gecebilirsiniz.
Referans aldigimiz dokumanlarda CRAB 2_6_5 kullanilmasi nedeniyle bu dokumanda da ayni surum kullanilmaktadir.
Cevre Degiskenlerin Tanimlanmasi
Asagida ki islemlerin sirasiyla yapilmasi gerekmektedir.
cms ile ilgili komut setlerine erisebilmek icin asagidaki komutu calistirmaniz gerekmektedir.
source /opt/exp_soft/cms/cmsset_default.sh
Kullanacaginiz CMSSW yaziliminin dosyalarini ev dizininizde belirttiginiz yere indirebilirsiniz.
mkdir Tutorial cd Tutorial cmsrel CMSSW_2_2_13 cd CMSSW_2_2_13/src/ cmsenv
Dokumanda belirtilen konfigurasyon dosyasini kullaniyoruz. (tutorial.py)
import FWCore.ParameterSet.Config as cms
process = cms.Process('Tutorial')
process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring())
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10) )
process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )
process.output = cms.OutputModule("PoolOutputModule",
outputCommands = cms.untracked.vstring("drop *", "keep recoTracks_*_*_*"),
fileName = cms.untracked.string('out.root'),
)
process.out_step = cms.EndPath(process.output)
Sistem de kurulu olan CRAB versiyonunu kullanmak icin;
source /opt/exp_soft/cms/CRAB/CRAB_2_6_5/crab.sh
Veri Seti Secimi
CMS'te gonderdiginiz is, veri setinizin oldugu yere gidecektir. Eger analiz etmek istediginiz veri seti METU sitesinde bulunmuyorsa bu is, verinizin oldugu sitede calisacaktir.
Eger METU sitesinde bulunuyorsa diger sitelerde de ayni veri setinin bulunacagi goz onunda bulundurarak crab icerisinde configurasyon dosyasinda ce_white_list parametresini belirleyerek isin burada calismasini saglayabilirsiniz. Bu parametrenin tanimlanmamasi durumunda isiniz METU sitesinde calisabilecegi gibi veri setinin bulundugu diger sitede de calisabilir.
Veriniz METU sitesinde olmasa bile isinizin sonucunda uretilen cikti dosyalarini burada tutabilirsiniz. Tum hesaplama merkezleri birbirlerine akademik ag ile hizli bir sekilde bagli oldugundan uretilen sonuclari bizim siteye gondereblirsiniz. Bunun icin crab.cfg dosyasi icerisinde METU sitesini parametre olarak gecirmelisiniz. Bu dokumdan da baska bir merkezde bulunan veri seti uzerinde analiz edilip sonuclar METU sitesinde yaratilacaktir.
Veri setinizin METU sitesinde bulunmasi ve sonuclarini yine buraya yazdirmaniz islemlerin diger senaryolara gore daha hizli olmasini saglayacaktir. Cunku, hesaplama sonucu uretilen root dosyalari ayni ag icerisinde bulunan depolama elemanlarina, akademik ag uzerinden baska bir ulkede bulunan depolama elemanina gore cok daha hizli bir sekilde yazilacaktir.
Bu dokumanda asagida ki veri seti analiz icin secilmistir.
/QCDpt30/Summer08_IDEAL_V9_v4/GEN-SIM-RECO
Crab.cfg dosyasinin hazirlanmasi
crab.cfg dosyasini ihtiyaciniz dogrultusunda duzenlemeniz gerekmektedir. Yardim dosyasina bakarak bu parametreler hakkinda daha fazla bilgi alabilirsiniz. Asagida temel ihtiyaclar goz ununde bulundurularak hazirlanmis konfigurasyon dosyasini bulundugunuz dizine yaratmaniz gerekmektedir. (crab.cfg)
[CMSSW] total_number_of_events=100 number_of_jobs=10 pset=tutorial.py datasetpath=/QCDpt30/Summer08_IDEAL_V9_v4/GEN-SIM-RECO output_file=out.root
[USER] return_data=0 email=<e-posta adresiniz> copy_data = 1 storage_element = T2_TR_METU publish_data = 1 publish_data_name = <yayinlayacaginiz veri setinin adi> dbs_url_for_publication = http://cmssrv49.fnal.gov:8989/DBS209/servlet/DBSServlet
[CRAB] scheduler=glite jobtype=cmssw server_name = bari
Bu konfigurasyon icerisinde sunucu ismini belirterek (server_name) islerin gonderilmesi esnasinda CRAB sunucusunu kullanacagimizi soyluyoruz. Bu parametre kaldirildiginda herhangi bir CRAB sunucusu kullanmadan islerinizi yollayabilirsiniz, ancak belli bir sayida isin altinda sunucu kullanmadan is gonderebilirsiniz.
Islerin kosturulmasi ve durumlarinin sorgulanmasi
Hazirlamiz oldugumuz isi yaratmak icin;
crab -create
Bu komutu calistirdiktan sonra cikti ekranin da, uzerinde calistiginiz veri setinin ne kadar olay icerdigi, nerelerde bulundugu bilgisini bulabilirsiniz.
crab: Version 2.6.5 running on Wed Feb 24 15:13:10 2010 EET (13:13:10 UTC)
crab. Working options: scheduler glite job type CMSSW server ON working directory /home_palamut1/emrah/Tutorial/CMSSW_2_2_13/src/crab_0_100224_151310/
crab: Downloading config files for WMS: https://cmsweb.cern.ch/crabconf/glite_wms_CERN.conf crab: Contacting Data Discovery Services ... crab: Requested dataset: /QCDpt30/Summer08_IDEAL_V9_v4/GEN-SIM-RECO has 2970000 events in 24 blocks.
crab: May not create the exact number_of_jobs requested. crab: 10 job(s) can run on 100 events.
crab: List of jobs and available destination sites:
Block 1: jobs 1-10: sites: T2_IT_Bari, T3_US_FNALLPC, T2_CN_Beijing
crab: Creating 10 jobs, please wait... crab: Total of 10 jobs created.
Log file is /home_palamut1/emrah/Tutorial/CMSSW_2_2_13/src/crab_0_100224_151310/log/crab.log
Gondermek icin;
crab -submit
CRAB komutlari ile islerinizin durumunu sorgularken rapor edilen ve karsilasmaniz muhtemel olan asagida ki hatayi almaniz durumunda asagida belirtilen komutu calistirmaniz gerekmektedir. Daha fazla bilgi icin:
https://twiki.cern.ch/twiki/bin/view/Main/LSSlc5UIexport PYTHONPATH=${PYTHONPATH}:${GLITE_LOCATION}/lib
Aldiginiz hatanin son satiri: ImportError: No module named _glite_wmsui_LbWrapper
Isinizin durumunu sorgulamak icin;
crab -status
crab: You can also follow the status of this task on : CMS Dashboard: http://dashb-cms-job-task.cern.ch/taskmon.html#task=akkoyun_crab_0_100224_151310_rh2s97 Server page: http://crab1.ba.infn.it:8888/logginfo Your task name is: akkoyun_crab_0_100224_151310_rh2s97
Log file is /home_palamut1/emrah/Tutorial/CMSSW_2_2_13/src/crab_0_100224_151310/log/crab.log
Benzer sekilde islerinizi gondermede kullandiginiz CRAB sunucusunun adresinden de isinizin durumunu sorgulayabilirsiniz. Asagida ki adrese gorev ismini girmeniz gerekmektedir.
http://crab1.ba.infn.it:8888/logginfo
Gonderilen isler asagida ki sekilde sonlandiktan sonra;
ID STATUS E_HOST EXE_EXIT_CODE JOB_EXIT_STATUS -------------------------------------------------------------------------------------------- 1 Done cream-ce-1.ba.infn.it 0 0 2 Done cream-ce-1.ba.infn.it 0 0 3 Done grid-ce-01.ba.infn.it 0 0 4 Done grid-ce-01.ba.infn.it 0 0 5 Done grid-ce-01.ba.infn.it 0 60307 6 Done grid-ce-01.ba.infn.it 0 60307 7 Done grid-ce-01.ba.infn.it 0 0 8 Done cream-ce-1.ba.infn.it 0 0 9 Done cream-ce-1.ba.infn.it 0 0 10 Done cream-ce-1.ba.infn.it 0 0
crab: ExitCodes Summary >>>>>>>>> 8 Jobs with Wrapper Exit Code : 0 List of jobs: 1-4,7-10 See https://twiki.cern.ch/twiki/bin/view/CMS/JobExitCodes for Exit Code meaning
crab: ExitCodes Summary >>>>>>>>> 2 Jobs with Wrapper Exit Code : 60307 List of jobs: 5-6 See https://twiki.cern.ch/twiki/bin/view/CMS/JobExitCodes for Exit Code meaning
crab: 10 Total Jobs
crab: You can also follow the status of this task on : CMS Dashboard: http://dashb-cms-job-task.cern.ch /taskmon.html#task=akkoyun_crab_0_100224_151310_rh2s97 Server page: http://crab1.ba.infn.it:8888/logginfo Your task name is: akkoyun_crab_0_100224_151310_rh2s97
Log file is /home_palamut1/emrah/Tutorial/CMSSW_2_2_13/src/crab_0_100224_151310/log/crab.log
Gondermis oldugum islerin bir kismi WLCG hesaplama elemanlarinin gecmekte oldugu cream ce'ye gonderilmisken diger bir kismi standart ce hesaplama ucuna gonderilmistir. Gonderdigim bu islerden 8 tanesi basarili bir sekilde bitmisken 2 tanesi hata ile sonuclanmis. Hata kodunu internette arattiginizda olusturulan output dosyasinin iki tanesinin sonucunu METU sitesine kopyalanamadigi bilgisi cikartilabilir.
Islerin Sonuclarinin Alinmasi
crab -getoutput komutu ile analiz esnasinda yapilan islerin kayitlarini tutan log dosyalarini edinebilirsiniz. Analiz sonrasi uretilen root dosyalarini alamazsiniz, cunku konfigurasyon dosyasinda sonuclarin dogrudan depaolama elemanina gonderecegimizi soylemistik.
Log dosyalarini inceleyerek hatanin nerede oldugunu bulabilirsiniz. Ornegin 5 ve 6 numarali isler, analiz sonrasi uretilen root dosyalarini METU sitesinde bulunan depolama elemanina kopyalayamadigi icin hatali sonlanmisti. Bu is numarali log dosyalarini incelediginizde (CMSSW_5.stdout)
contents of SE interaction 2010-02-24 14:25:02.132127: Executed: lcg-ls -b -D srmv2 --srm-timeout 2400 --sendreceive-timeout 2400 --connect-timeout 2400 --verbose srm://eymir.grid.metu.edu.tr:8446/srm/managerv2?SFN=/dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/QCDpt30/ emrahtestmetu/85ab15de603ef7cf9b5741fe5fa3c2df/out_5.root Done with exit code: 256 and output: /dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/QCDpt30/emrahtestmetu/85ab15de603ef7cf9b5741fe5fa3c2df/out_5.root: [SE][Ls][SRM_INVALID_PATH] No such file or directory SE type: SRMv2
Checksum type: None Destination SE type: SRMv2 [SE][Mkdir][SRM_DUPLICATION_ERROR] srm://eymir.grid.metu.edu.tr:8446/srm/managerv2?SFN= /dpm/grid.metu.edu.tr/home /cms/store/user/akkoyun/QCDpt30/emrahtestmet/85ab15de603ef7cf9b5741fe5fa3c2df/out_5.root: File exists lcg_cp: File exists
Yukarida da goruldugu uzere lcg-cp komutu ile karsi tarafta hesaplama ucunda (WN) yaratilmis olan lokal dosyayi depolama elemanina gondermeye calisirken hata alinmis. Ileride benzer sekilde islerinizin problemle sonlanmasi ve yardima ihtiyaciniz olmasi durumunda bu log dosyasi ile birlikte sorunuzu grid-teknik@ulakbim.gov.tr adresine yonlendirmeniz problemin anlasilmasi icin daha iyi olacaktir.
Buraya kadar ki kisimda isleriniz WLCG alt yapisinda bulunan bir T2 merkezinde calistirildi ve sonuclari METU sitesine gonderildi. Bu sonuclara kullanici arayuzu uzerinden ulasabilir, kullanici arayuzu makinesinde saklayabilirsiniz. Boylece ilerde bu dosyalar uzerinde tekrar islemler yapmak istediginizde ister kume ister grid alt yapisi kullanilarak hizli bir sekilde analiz yapabilirsiniz.
Eger veri seti METU sitesinde bulunuyorsa (DBS uzerinden sorgulayabilirsiniz) asagidaki parametreleri crab.cfg dosyaniza ekleyerek isinizin burada dogrudan calismasini saglayabilirsiniz. Veri setinin burada olmamasi durumunda transfer isteginde bulunup (Phedex uzerinden) verinin bir kopyasinin burada tutulmasini saglayabilirsiniz.
[GRID] ce_white_list = cox01.grid.metu.edu.tr
Benim is gondermeden once SiteDB'de kayitli oldugum kullanici ismim akkoyun idi. Dolayisiyla uretilen veri setleri asagidaki dizin altina kopyalanmistir.
/dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/
Analiz sonucunda uretilen dosyalari gorebilmem icin oncelikle asagida ki cevre degiskenlerini tanimlamam gerekmektedir.
export DPM_HOST=eymir.grid.metu.edu.tr export DPNS_HOST=eymir.grid.metu.edu.tr rfdir /dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/
drwxrwxr-x 1 123 106 0 Feb 24 15:25 emrahtestmetu
emrahtestmetu adinda klasorun yaratildigini gorebiliyorum. Bu klasorun icerisinde ki root dosyalarini gormek icin;
rfdir /dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/QCDpt30/emrahtestmetu/85ab15de603ef7cf9b5741fe5fa3c2df
-rw-rw-r-- 1 123 106 1449819 Feb 24 15:31 out_1.root
-rw-rw-r-- 1 123 106 1436353 Feb 24 15:30 out_10.root
-rw-rw-r-- 1 123 106 1432600 Feb 24 15:31 out_2.root
-rw-rw-r-- 1 123 106 1446353 Feb 24 15:25 out_3.root
-rw-rw-r-- 1 123 106 1480660 Feb 24 15:25 out_4.root
-rw-rw-r-- 1 123 106 1437861 Feb 24 15:25 out_7.root
-rw-rw-r-- 1 123 106 1459832 Feb 24 15:31 out_8.root
-rw-rw-r-- 1 123 106 1459325 Feb 24 15:30 out_9.root
Boylece hata ile sonuclanmis olan 5 ve 6 disinda ki tum dosyalarin depolama elemaninda bulundugunu gozlemleyebiliyorum. Bunlari ev dizinimde kopyasini alabilmek icin,
rfcp /dpm/grid.metu.edu.tr/home/cms/store/user/akkoyun/QCDpt30/emrahtestmetu/85ab15de603ef7cf9b5741fe5fa3c2df/out_1.root ~emrah/
Analiz Sonuclarinin DBS'te yayinlanmasi
Son olarak uretilen analiz dosyalarinin yayinlanmasi icin crab -publish komutu kullanilir. Bu komut ile konfigurasyon dosyasinda vermis oldugunuz isim ile veri setiniz DBS uzerinden yayimlanir.
DBS'te publish etmeden analiz edilmesi
Eger analiz dosyasini publish etmeden dogrudan SE uzerinde bir kopyasini olusturmak istiyorsaniz konfigurasyon dosyasini asagida ki gibi degistirmeniz gerekmektedir.
[CMSSW] total_number_of_events=10 number_of_jobs=2 pset=tutorial.py datasetpath=/TauolaTTbar/Summer08_IDEAL_V9_AODSIM_v1/AODSIM output_file=out.root
[USER] return_data=0 email=<e-posta adresiniz>
copy_data = 1 storage_element = T2_TR_METU user_remote_dir = metucopytest
[CRAB] scheduler=glite jobtype=cmssw server_name=cern
Analiz Sonrasi Uretilen verilerin alinmasi
Analiz sonrasi uretilen sonuc dosyasinin dogrudan crab araciligiyla lokalde ev dizininize tasimak icin konfigurasyon dosyasi asagida ki gibi duzenlenmelidir.
[CMSSW] total_number_of_events=10 number_of_jobs=2 pset=tutorial.py datasetpath=/TauolaTTbar/Summer08_IDEAL_V9_AODSIM_v1/AODSIM output_file=out.root
[USER] return_data=01 email=<e-posta adresiniz>
[CRAB] scheduler=glite jobtype=cmssw server_name=cern
Hazırlayanlar: Emrah AKKOYUN, TUBITAK-ULAKBIM
Mehmet Vergili, Cukurova Universitesi
18 Mart 2010





