I've been running Queue using the DRMAA, and I've noticed one thing which I would like to bring up for discussion. The job names are generated using the following code at this point:
// Set the display name to < 512 characters of the description
// NOTE: Not sure if this is configuration specific?
protected val jobNameLength = 500
protected val jobNameFilter = """[^A-Za-z0-9_]"""
protected def functionNativeSpec = function.jobNativeArgs.mkString(" ")
def start() {
session.synchronized {
val drmaaJob: JobTemplate = session.createJobTemplate
drmaaJob.setJobName(function.description.take(jobNameLength).replaceAll(jobNameFilter, "_"))
[...]
For me this yields names looking something like this:
"__java_____Xmx3072m_____D"
This is not very useful for telling the jobs apart. I'm running my jobs via drmaa on a system using the SLURM resource manager. So the cut-off in the name above can be attributed to the slurm system cutting of the name. Even so, I think that there should be more reasonable ways to create the name - using the function.jobName for example.
So, this leads me to my question - is there any particular reason that the job names are generated the way they are? And if not, do you (the gatk team) want a patch changing this to using the funciton.jobName instead?
Furthermore I would be interested in hearing from other users using gatk queue over drmaa, since I think it might be interesting to develop this further. I have as an example implemented setting a had to implement setting a hard wall time in the jobRunner, since the cluster I'm running on demands this. I'm sure that there are more solutions like that out there, and I would be thrilled to hear about them.