Queue: add -qsub-broad argument

When -qsub-broad is specified instead of -qsub, use the "h_vmem" parameter
instead of "h_rss" to specify memory limit requests.

Also cause the GridEngine native arguments to be output by default to the logger,
instead of only when in debug mode.
This commit is contained in:
David Roazen 2015-04-23 13:46:16 -04:00
parent cb4c3ea09e
commit 19ceca5e86
4 changed files with 26 additions and 6 deletions

View File

@ -98,4 +98,9 @@ class QSettings {
@Argument(fullName="log_directory", shortName="logDir", doc="Directory to write log files into.", required=false)
var logDirectory: File = _
/**
* If set, use Broad-specific cluster settings in the GridEngine job runner. Activated via the -qsub-broad argument in QGraphSettings.
*/
var useBroadClusterSettings: Boolean = false
}

View File

@ -395,12 +395,18 @@ class QGraph extends Logging {
*/
private def runJobs() {
try {
if (settings.bsub)
if (settings.bsub) {
settings.jobRunner = "Lsf706"
else if (settings.qsub)
}
else if (settings.qsub || settings.qsubBroad) {
settings.jobRunner = "GridEngine"
else if (settings.jobRunner == null)
if ( settings.qsubBroad ) {
settings.qSettings.useBroadClusterSettings = true
}
}
else if (settings.jobRunner == null) {
settings.jobRunner = "Shell"
}
commandLineManager = commandLinePluginManager.createByName(settings.jobRunner)
for (mgr <- managers) {

View File

@ -46,6 +46,9 @@ class QGraphSettings {
@Argument(fullName="qsub", shortName="qsub", doc="Equivalent to -jobRunner GridEngine", required=false)
var qsub = false
@Argument(fullName="qsub-broad", shortName="qsub-broad", doc="Equivalent to -qsub, but uses GridEngine parameters specific to the Broad GridEngine cluster", required=false)
var qsubBroad = false
@Argument(fullName="status",shortName="status",doc="Get status of jobs for the qscript",required=false)
var getStatus = false

View File

@ -58,8 +58,14 @@ class GridEngineJobRunner(session: Session, function: CommandLineFunction) exten
nativeSpec += " -l %s=%dM".format(function.qSettings.residentRequestParameter, function.residentRequest.map(_ * 1024).get.ceil.toInt)
// If the resident set size limit is defined specify the memory limit
if (function.residentLimit.isDefined)
nativeSpec += " -l h_rss=%dM".format(function.residentLimit.map(_ * 1024).get.ceil.toInt)
if (function.residentLimit.isDefined) {
var memoryLimitParameter : String = "h_rss"
if (function.qSettings.useBroadClusterSettings) {
memoryLimitParameter = "h_vmem"
}
nativeSpec += " -l %s=%dM".format(memoryLimitParameter, function.residentLimit.map(_ * 1024).get.ceil.toInt)
}
// If more than 1 core is requested, set the proper request
// if we aren't being jerks and just stealing cores (previous behavior)
@ -82,7 +88,7 @@ class GridEngineJobRunner(session: Session, function: CommandLineFunction) exten
if (priority.isDefined)
nativeSpec += " -p " + priority.get
logger.debug("Native spec is: %s".format(nativeSpec))
logger.info("Native spec is: %s".format(nativeSpec))
(nativeSpec + " " + super.functionNativeSpec).trim()
}
}