Status of Storm+Lustre and Multi-VO Support
YAN Tian for Distributed Computing Group Meeting
- Oct. 23, 2014
Multi-VO Support YAN Tian for Distributed Computing Group Meeting - - PowerPoint PPT Presentation
Status of Storm+Lustre and Multi-VO Support YAN Tian for Distributed Computing Group Meeting Oct. 23, 2014 StoRM + Lustre: Test Bed SE server configuration: This test machine is originally prepared for dCache+Lustre frontend, Model Dell
SE server configuration:
Model Dell PowerEdger R620 CPU Xeon E5-2609 v2 @ 2.50 GHz CPU Cores 8 cores Memory 64 GB HDD scsi 300 GB Network 1 eth0: 1 Gbps Network 2 eth4: 10 Gbps A symblic link to Lustre directory , User can access files in this directory through StoRM webDAV portal This test machine is originally prepared for dCache+Lustre frontend, thus with good network performance
v.s. When Lustre is busy:
4 processes 8 processes
Modify namespace.xml is under trying.
from DIRAC.Core.Base import Script Script.parseCommandLine() from ILCDIRAC.Interfaces.API.DiracILC import DiracILC dirac = DiracILC(True,“my_job_repository.rep") from ILCDIRAC.Interfaces.API.NewInterface.UserJob import UserJob job = UserJob() job.setName("MyJobName") job.setJobGroup("Agroup") job.setCPUTime(86400) from ILCDIRAC.Interface.API.NewInterface.Application import Mokka, Marlin mo = Mokka() mo.setLogFile(“sim-job.log”) mo.setInputFile(“init.macro”) mo.setOutputFile(“E250-CDR_wo_Pnnh.eL.eR.001.slcio”) mo.setNumberOfEvents(1000) job.append(mo) mar = Marlin() mar.setParameters(“value”) mar.getInputFromApp(mo) job.append(mar) job.submit(dirac)
applications stack dirac instance is job reciever define and set para. for app.
$ dirac-repo-monitor repo.cfg
call 3 methods
Generation: Whizard, Pythia, StdHepCut Simulation: Mokka, SLIC Reconstruction: Marlin, LCSIM, SLICPandora Analysis: Marlin, ROOT, Druid, etc…
$ dirac-ilc-show-software
– ILCDIRAC.Interfaces.API.NewInterface.Application (base class) – ILCDIRAC.Interfaces.API.NewInterface.Applications
from ILCDIRAC.Interface.API.NewInterface.Application import Mokka mo = Mokka() mo.setParameters1(“value1”) mo.setParameters2(“value2”) job.append(mo)
A Generic application for executable outside ILCsoft, e.g.
ga = GenericApplication() ga.setScript(“boss.exe”) ga.setArguments(“jobOptions.txt”)
$ tar czf lib.tar.gz lib/ $ dirac-dms-add-files /ilc/user/i/initial/some/path/lib.tar.gz lib.tar.gz CERN-SRM $ dirac-dms-remove-files /ilc/user/i/initial/some/path/lib.tar.gz
job.setInputSandbox("LFN:/ilc/user/i/initial/some/path/lib.tar.gz")
Dirac Job DiracILC UserJob ProductionJob Application Applications ModuleBase MokkaAnalysis MarlinAnalysis PhthiaAnalysis etc… Spliter? DIRAC classes ILC-DIRAC classes
called by Job Agent
from ILCDIRAC.Workflow.Modules import MokkaAnalysis ma = MokkaAnalysis() ma.execute()
In this module:
1. retrieve job parameters 2. write a shell script to
a) set environment b) run application c) return status code