2011-03-11 03:54:14 +08:00
/*
2013-01-11 06:44:42 +08:00
* Copyright ( c ) 2012 The Broad Institute
*
* Permission is hereby granted , free of charge , to any person
* obtaining a copy of this software and associated documentation
* files ( the "Software" ) , to deal in the Software without
* restriction , including without limitation the rights to use ,
* copy , modify , merge , publish , distribute , sublicense , and / or sell
* copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following
* conditions :
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND ,
* EXPRESS OR IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY , FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT . IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER LIABILITY ,
* WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING
* FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE .
*/
2011-03-11 03:54:14 +08:00
2010-08-12 05:58:26 +08:00
package org.broadinstitute.sting.queue
import java.io.File
2012-10-20 01:19:56 +08:00
import org.broadinstitute.sting.commandline. { ClassType , Argument }
2010-08-12 05:58:26 +08:00
/* *
* Default settings settable on the command line and passed to CommandLineFunctions .
*/
class QSettings {
2012-01-09 01:11:55 +08:00
@Argument ( fullName = "run_name" , shortName = "runName" , doc = "A name for this run used for various status messages." , required = false )
var runName : String = _
2010-08-12 05:58:26 +08:00
@Argument ( fullName = "job_project" , shortName = "jobProject" , doc = "Default project for compute farm jobs." , required = false )
2011-05-11 21:21:45 +08:00
var jobProject : String = _
2010-08-12 05:58:26 +08:00
2011-03-11 03:54:14 +08:00
@Argument ( fullName = "job_queue" , shortName = "jobQueue" , doc = "Default queue for compute farm jobs." , required = false )
var jobQueue : String = _
2011-08-23 03:12:55 +08:00
@Argument ( fullName = "job_priority" , shortName = "jobPriority" , doc = "Default priority for jobs. Min = 0, Max = 100" , required = false )
2012-10-20 01:19:56 +08:00
@ClassType ( classOf [ Int ] )
2011-02-16 02:26:14 +08:00
var jobPriority : Option [ Int ] = None
2011-08-23 03:12:55 +08:00
@Argument ( fullName = "job_native_arg" , shortName = "jobNative" , doc = "Native arguments to pass to the job runner." , required = false )
2012-01-09 01:11:55 +08:00
var jobNativeArgs : Seq [ String ] = Nil
2011-08-23 03:12:55 +08:00
@Argument ( fullName = "job_resource_request" , shortName = "jobResReq" , doc = "Resource requests to pass to the job runner." , required = false )
2012-01-09 01:11:55 +08:00
var jobResourceRequests : Seq [ String ] = Nil
2011-08-23 03:12:55 +08:00
@Argument ( fullName = "job_environment_name" , shortName = "jobEnv" , doc = "Environment names for the job runner." , required = false )
2012-01-09 01:11:55 +08:00
var jobEnvironmentNames : Seq [ String ] = Nil
2011-08-23 03:12:55 +08:00
2012-08-21 09:39:38 +08:00
@Argument ( fullName = "memory_limit" , shortName = "memLimit" , doc = "Default memory limit for jobs, in gigabytes. If not set defaults to 2GB." , required = false )
2012-10-20 01:19:56 +08:00
@ClassType ( classOf [ Double ] )
2012-08-21 09:39:38 +08:00
var memoryLimit : Option [ Double ] = Some ( 2 )
2010-10-14 23:58:52 +08:00
2012-08-14 03:37:35 +08:00
@Argument ( fullName = "memory_limit_threshold" , shortName = "memLimitThresh" , doc = "After passing this threshold stop increasing memory limit for jobs, in gigabytes." , required = false )
2012-10-20 01:19:56 +08:00
@ClassType ( classOf [ Double ] )
2012-08-14 03:37:35 +08:00
var memoryLimitThreshold : Option [ Double ] = None
2011-08-23 03:12:55 +08:00
@Argument ( fullName = "resident_memory_limit" , shortName = "resMemLimit" , doc = "Default resident memory limit for jobs, in gigabytes." , required = false )
2012-10-20 01:19:56 +08:00
@ClassType ( classOf [ Double ] )
2011-08-23 03:12:55 +08:00
var residentLimit : Option [ Double ] = None
@Argument ( fullName = "resident_memory_request" , shortName = "resMemReq" , doc = "Default resident memory request for jobs, in gigabytes." , required = false )
2012-10-20 01:19:56 +08:00
@ClassType ( classOf [ Double ] )
2011-08-23 03:12:55 +08:00
var residentRequest : Option [ Double ] = None
2012-08-14 03:37:35 +08:00
@Argument ( fullName = "resident_memory_request_parameter" , shortName = "resMemReqParam" , doc = "Parameter for resident memory requests. By default not requested." , required = false )
var residentRequestParameter : String = _
2012-10-13 05:16:56 +08:00
@Argument ( fullName = "job_walltime" , shortName = "wallTime" , doc = "Setting the required DRMAA walltime or LSF run limit." , required = false )
@ClassType ( classOf [ Long ] )
var jobWalltime : Option [ Long ] = None
2011-12-20 04:46:32 +08:00
/* * The name of the parallel environment (required for SGE, for example) */
@Argument ( fullName = "job_parallel_env" , shortName = "jobParaEnv" , doc = "An SGE style parallel environment to use for jobs requesting more than 1 core. Equivalent to submitting jobs with -pe ARG nt for jobs with nt > 1" , required = false )
var parallelEnvironmentName : String = "smp_pe" // Broad default
@Argument ( fullName = "dontRequestMultipleCores" , shortName = "multiCoreJerk" , doc = "If provided, Queue will not request multiple processors for jobs using multiple processors. Sometimes you eat the bear, sometimes the bear eats you." , required = false )
var dontRequestMultipleCores : Boolean = false
2012-08-14 03:37:35 +08:00
@Argument ( fullName = "disableDefaultJavaGCOptimizations" , shortName = "noGCOpt" , doc = "If provided, Queue will not ensure that java GC threads are limited and that the a minimum amount of time is spent in GC." )
var disableDefaultJavaGCOptimizations = false
2010-11-13 04:14:28 +08:00
@Argument ( fullName = "run_directory" , shortName = "runDir" , doc = "Root directory to run functions from." , required = false )
var runDirectory = new File ( "." )
@Argument ( fullName = "temp_directory" , shortName = "tempDir" , doc = "Temp directory to pass to functions." , required = false )
var tempDirectory = new File ( System . getProperty ( "java.io.tmpdir" ) )
2011-03-11 03:54:14 +08:00
@Argument ( fullName = "job_scatter_gather_directory" , shortName = "jobSGDir" , doc = "Default directory to place scatter gather output for compute farm jobs." , required = false )
var jobScatterGatherDirectory : File = _
2010-08-12 05:58:26 +08:00
}