From T3_KR_KNU
Contents
CRAB (CMS Remote Analysis Builder) Quick Start
사전준비
[ 주의 : bash 기준으로 작성되었습니다. 아래 예제의 스크립트 중 자신의 shell에 맞는 스크립트를 사용하시면 됩니다. (ex: tcsh 사용자는 source /cvmfs/cms.cern.ch/cmsset_default.csh 을 활용) ]
cmssw가 설치되지 않았다면
$ set SCRAM_ARCH=slc6_amd64_gcc493 ### 아키텍쳐를 설정합니다.
or
$ export SCRAM_ARCH=slc6_amd64_gcc493
$ source /cvmfs/cms.cern.ch/cmsset_default.sh ### CMS S/W 기본 설정을 로드합니다.
$ cd ~/ ### 자신의 홈디렉토리로 이동합니다. $ mkdir work ### 자신이 원하는 작업디렉토리를 생성합니다. $ scramv1 list CMSSW ### 자신이 사용하고 싶은 CMSSW를 검색합니다. $ scramv1 project CMSSW CMSSW_7_x_x ### 검색 결과 중 자신이 원하는 한 가지의 버전을 선택/설정합니다. (CMSSW_7_x_x 버전을 사용하도록 설정하는 명령어 입니다. 자동으로 해당 버전의 CMSSW 작업 폴더가 생성됩니다.) $ cd CMSSW_7_x_x/src ### 생성한 작업 폴더로 이동합니다. $ scram b -j3 ### 컴파일
cmssw가 이미 설치 되어있다면
# 환경 설정 $ cd CMSSW_7_2_1/src $ source /cvmfs/cms.cern.ch/cmsset_default.sh $ cmsenv
crab3 시작
$ source /cvmfs/cms.cern.ch/crab3/crab.sh # crab 3.3.1607 부터 crab.sh는 light 구현으로 사용환경을 오염(?)시키지 않습니다. 만약 새로운 환경설정파일이 문제을 일으킨다면 다음과 같이 옛날 파일을 사용할 수 있습니다. $ source /cvmfs/cms.cern.ch/crab3/crab_standalone.sh
$ crab submit -c crab3config.py ### 실제 작업을 생성합니다. $ crab status ### 작업 진행 상황을 수시로 모니터링 합니다. (CMS 데시보드에서는 보다 다양한 형태로 자신의 작업 상황을 조회할 수 있습니다. http://dashboard.cern.ch/cms/)
작업 설정 파일
crab 설정 파일을 생성합니다.
$ vi crab3config.py from WMCore.Configuration import Configuration config = Configuration() config.section_('General') config.General.transferOutputs = True config.section_('JobType') config.JobType.psetName = 'myConfig.py' config.JobType.pluginName = 'Analysis' config.JobType.outputFiles = ['outfileName.root'] config.section_('Data') config.Data.inputDataset = '/WplusToENu_CT10_13TeV-powheg-pythia8/Spring14miniaod-PU20bx25_POSTLS170_V5-v1/MINIAODSIM' config.Data.unitsPerJob = 500 config.Data.splitting = 'LumiBased' #config.Data.splitting = 'FileBased' config.Data.publication = False config.section_('User') config.section_('Site') config.Site.whitelist = ['T3_KR_KNU'] config.Site.storageSite = 'T3_KR_KNU'
실행할 작업 명세 파일을 생성합니다
$ vi myConfig.py import FWCore.ParameterSet.Config as cms process = cms.Process('Slurp') 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('outfileName.root'), ) process.out_step = cms.EndPath(process.output)
설정파일과 관련해서 좀더 자세한 사항을 알고 싶다면 아래 문서를 참고하세요
crab 명령어
Task submit
- crab submit [--config/-c <CRAB-configuration-file>]
$ crab submit -c crab3config.py
작업을 submit 합니다.
Task Status
- crab status --dir/-d <CRAB-project-directory>
$ crab status
작업의 상태를 확인합니다. 아래 Dashboard Task Monitoring 에서 사용자 작업의 상태를 좀더 구체적으로 확인할 수 있습니다.
- Dashboard Task Monitoring : http://dashb-cms-job.cern.ch/dashboard/templates/task-analysis/
Task resubmit
- crab resubmit --dir/-d <CRAB-project-directory>
$ crab resubmit -d crab_20220515_173023
작업을 다시 제출합니다.
Task output retrieval
- crab getoutput --dir/-d <CRAB-project-directory> [--jobids <comma-separated-list-of-jobs-and/or-job-ranges>]
$ crab getoutput -d crab_20220515_173023 $ crab getoutput --jobids 1,7,102 $ crab getoutput --jobids 25-115
결과 파일과 로그를 다운로드 합니다.
Task Kill
- crab kill -d <CRAB-project-directory> [--jobids <comma-separated-list-of-jobs-and/or-job-ranges>]
$ crab kill -d crab_20220515_173023 $ crab kill --jobids 1,7,102 $ crab kill --jobids 25-115
작업을 강제 중단시킵니다.
CRAB commands에 대한 상세정보
Task monitoring for the analysis users
Analysis 사용자를 위한 작업 모니터링 이용가이드로 가기
오류 발생시 대처
로크 찾기
- Dashboard Task Monitor에서 본인작업의 로그 찾기
- Dashboard Task Monitor에서는 본인의 작업이 제출된 사이트들과 작업의 로그파일의 확인을 통하여 에러코드 및 오류가 발생하는 사이트를 확인할 수 있습니다.
- 코드에 문제가 없는데도 지속적으로 오류가 발생하는 사이트가 있다면 그 사이트는 다음번 작업 제출시 blacklist에 추가하여 제외해야합니다.
흔히 발생하는 오류
흔히 발생하는 오류들에 대한 해결책이 정리되어 있습니다.
Exit Code 로 오류 원인 찾기
- Exit code 6 with Fatal Root Error
- Exit code 8001 with %MSG-w Missing Dictionary
- Exit code 8020
- Exit code 10034
- Exit code 60302
- Exit code 60307
- Exit code 60317
- Exit code 70500
crab2 사용자를 위한 안내
crab2 와 crab3의 차이점
crab2 설정을 crab3로 변환해주는 툴
crab2cfgTOcrab3py [crab2confgiName.cfg] [crab3configName.py]
CRAB Feedback & CMS Computing Manual
- CRAB 사용시 발생하는 문제점 및 해결방법은 아래 사이트를 참조
https://hypernews.cern.ch/HyperNews/CMS/get/crabFeedback.html
- CMS Computing Manual
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBook
참고 문서
- CRAB online manual and tutorial 아래 문서 리스트는 이 문서에서 발췌하였습니다. Crab에 대한 전반적인 내용이 정리되어 있습니다.
초보자를 위한 문서
- Quickstart guide for CRAB3
- CRAB tutorial (introductory)
- CRAB tutorial (advanced)
- CRAB configuration file
- CRAB commands
- CRAB user functions
- CRAB Advanced topics
- Tips and tricks about CRAB
- CRAB3 frequently asked questions
- CRAB3 common errors