Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 27
Examples
davidressman edited this page Mar 21, 2013
·
1 revision
This is an example program using the library to submit a job and a job array. To submit, run python example.py /bin/sleep 1.
importdrmaaimportosfromsysimportargv, exitfromtimeimportsleepfrompprintimportpprintNBULKS=1JOB_CHUNK=3OPATH=":"+drmaa.JobTemplate.HOME_DIRECTORY+'/DRMAA_JOB_OUT'definit_job_template(jt, path, args, as_bulk_job):
jt.workingDirectory=drmaa.JobTemplate.HOME_DIRECTORYjt.environment= {'a': 'b', 'c':'d',}
jt.remoteCommand=pathjt.args=argsjt.joinFiles=Trueifas_bulk_job:
jt.outputPath=OPATH+'.'+drmaa.JobTemplate.PARAMETRIC_INDEXelse:
jt.outputPath=OPATHreturnjtdefmain():
iflen(argv) <2:
print"usage: example.py <path-to-job> <arguments>"exit(1)
job_path=argv[1]
s=drmaa.Session()
s.initialize()
# submit some bulk jobsjt=init_job_template(s.createJobTemplate(), job_path, argv[2:], True)
all_jobids= []
foriinrange(NBULKS):
all_jobids+=s.runBulkJobs(jt, 1, JOB_CHUNK, 1)
sleep(1)
print"submitted bulk jobs with jobids:"pprint(all_jobids)
# submit some sequential jobss.deleteJobTemplate(jt)
deljtjt=init_job_template(s.createJobTemplate(), job_path, argv[2:], False)
foriinrange(NBULKS):
all_jobids.append(s.runJob(jt))
sleep(1)
s.synchronize(all_jobids,
drmaa.Session.TIMEOUT_WAIT_FOREVER,
False)
print"synchronized with all jobs"forjidinall_jobids:
print'-'*76info=s.wait(jid, drmaa.Session.TIMEOUT_WAIT_FOREVER)
print"""\id: %(jobId)sexited: %(hasExited)ssignaled: %(hasSignal)swith signal (if signaled): %(terminatedSignal)sdumped core: %(hasCoreDump)saborted: %(wasAborted)sresource usage:%(resourceUsage)s"""%info._asdict()
if__name__=='__main__':
main()