Skip to content

Instantly share code, notes, and snippets.

@IanSudbery
Last active May 9, 2017 14:40
Show Gist options
  • Save IanSudbery/dc93bff847b1fdd836f5c69b0665d5f9 to your computer and use it in GitHub Desktop.
Save IanSudbery/dc93bff847b1fdd836f5c69b0665d5f9 to your computer and use it in GitHub Desktop.
Test drmaa job submission in a threaded environment
import drmaa
from multiprocessing.pool import ThreadPool
import tempfile
import os
import stat
pool = ThreadPool(2)
session = drmaa.Session()
session.initialize()
def pTask(n):
smt = "ls . > test.out"
script_file = tempfile.NamedTemporaryFile(mode="w", dir=os.getcwd(), delete=False)
script_file.write(smt)
script_file.close()
print "Job is in file %s" % script_file.name
os.chmod(script_file.name, stat.S_IRWXG | stat.S_IRWXU)
jt = session.createJobTemplate()
print "jt created"
jt.jobEnvironment = {'BASH_ENV': '~/.bashrc'}
print "environment set"
jt.remoteCommand = os.path.join(os.getcwd(),script_file.name)
print "remote command set"
jobid = session.runJob(jt)
print "Job submitted with id: %s, waiting ..." % jobid
retval = session.wait(jobid, drmaa.Session.TIMEOUT_WAIT_FOREVER)
pool.map(pTask, (1,))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment