From what I can gather, jip submits jobs to SGE by calling qsub with its arguments and then passing "exec jip exec --db " on stdin. This does not work, at least on the version of SGE installed on our cluster. The job just ends up in the Eqw state. It seems like a much better option is just to call qsub with the -b y option and then pass the jip exec command on the command line. The fix described below works.
Add the following method to db.py/Job:
def get_cluster_command_list(self):
"""Returns the command that should send to the
cluster to run this job as a list of arguments.
:returns: list
"""
if db_in_memory or db_path is None:
return ["jip", "exec", str(self.id)]
else:
return ["jip", "exec", "--db", db_path, str(self.id)]
Then change cluster.py/SGE.submit:
job_cmd = job.get_cluster_command_list()
...
cmd.extend(["-b", "y"])
process = Popen(cmd + job_cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
From what I can gather, jip submits jobs to SGE by calling qsub with its arguments and then passing "exec jip exec --db " on stdin. This does not work, at least on the version of SGE installed on our cluster. The job just ends up in the Eqw state. It seems like a much better option is just to call qsub with the -b y option and then pass the jip exec command on the command line. The fix described below works.
Add the following method to db.py/Job:
Then change cluster.py/SGE.submit:
job_cmd = job.get_cluster_command_list()
...
cmd.extend(["-b", "y"])
process = Popen(cmd + job_cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)