Skip to content

Commit 7925102

Browse files
authored
Merge pull request #54 from liyancn/master
add example of submitting GPU job
2 parents 480640d + 809cd06 commit 7925102

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

examples/submit_gpu_job.py

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from pythonlsf import lsf
2+
3+
4+
def run_job(command):
5+
"""
6+
Run a job...
7+
"""
8+
submitreq = lsf.submit()
9+
submitreq.command = command
10+
#submitreq.options = 0
11+
submitreq.options2 = 0
12+
13+
limits = []
14+
for i in range(0, lsf.LSF_RLIM_NLIMITS):
15+
limits.append(lsf.DEFAULT_RLIMIT)
16+
17+
submitreq.rLimits = limits
18+
19+
submitreq.beginTime = 0
20+
submitreq.termTime = 0
21+
submitreq.numProcessors = 1
22+
submitreq.maxNumProcessors = 1
23+
24+
# below 2 lines section is for using -R rusage to request GPU
25+
#submitreq.resReq = "rusage[ngpus_physical=2:gmodel=K80#12G:nvlink=yes]"
26+
#submitreq.options = lsf.SUB_RES_REQ
27+
28+
# below section is for using -gpu to request GPU
29+
submit_ext = lsf.submit_ext()
30+
submitreq.options2 = lsf.SUB2_MODIFY_PEND_JOB
31+
submitreq.options4 = lsf.SUB4_GPU_REQ
32+
gpuOpt = {}
33+
gpuOpt[lsf.JDATA_EXT_GPU_NUM] = "2"
34+
gpuOpt[lsf.JDATA_EXT_GPU_MODE] = "3"
35+
#gpuOpt[lsf.JDATA_EXT_GPU_MPS_ENABLE] = "-1"
36+
#gpuOpt[lsf.JDATA_EXT_GPU_JOB_EXCLUSIVE] = "-1"
37+
#gpuOpt[lsf.JDATA_EXT_GPU_MODEL] = ""
38+
#gpuOpt[lsf.JDATA_EXT_GPU_MEM] = ""
39+
#gpuOpt[lsf.JDATA_EXT_GPU_TILE] = ""
40+
#gpuOpt[lsf.JDATA_EXT_GPU_AFFBIND] = "-1"
41+
#gpuOpt[lsf.JDATA_EXT_GPU_BLOCK] = "-1"
42+
#gpuOpt[lsf.JDATA_EXT_GPU_GPACK] = "-1"
43+
#gpuOpt[lsf.JDATA_EXT_GPU_GVENDOR] = "-1"
44+
#gpuOpt[lsf.JDATA_EXT_GPU_RSRC_TYPE] = "0"
45+
#gpuOpt[lsf.JDATA_EXT_GPU_GI_SLICE] = "-1"
46+
#gpuOpt[lsf.JDATA_EXT_GPU_CI_SLICE] = "-1"
47+
48+
submit_ext.keys = lsf.new_intArray(len(gpuOpt))
49+
submit_ext.values = lsf.new_stringArray(len(gpuOpt))
50+
for i in range(len(gpuOpt)):
51+
lsf.intArray_setitem(submit_ext.keys, i, gpuOpt.keys()[i])
52+
lsf.stringArray_setitem(submit_ext.values, i, gpuOpt.values()[i])
53+
submit_ext.num = len(gpuOpt)
54+
submitreq.submitExt = submit_ext
55+
print(submitreq.submitExt.num)
56+
57+
# submit the job request
58+
submitreply = lsf.submitReply()
59+
60+
if lsf.lsb_init("test") > 0:
61+
exit(1)
62+
63+
job_id = lsf.lsb_submit(submitreq, submitreply)
64+
return job_id
65+
66+
67+
if __name__ == '__main__':
68+
print("LSF Clustername is :", lsf.ls_getclustername())
69+
print(run_job("/bin/sleep 10"))

0 commit comments

Comments
 (0)