Class: Origen::Application::LSF::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/origen/application/lsf.rb

Overview

The LSF command configuration that will be used for all submissions to the LSF. An instance of this class is returned via the configuration method and which can be used to modify the LSF behavior on a per-setup basis.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



46
47
48
49
50
51
52
53
54
55
# File 'lib/origen/application/lsf.rb', line 46

def initialize
  @group = Origen.site_config.lsf_group
  @project = Origen.site_config.lsf_project
  @resource = Origen.site_config.lsf_resource
  @queue = Origen.site_config.lsf_queue
  @debug = Origen.site_config.lsf_debug
  @cores = Origen.site_config.lsf_cores
  @max_jobs = Origen.site_config.lsf_max_jobs || 400
  @queue_count_only = Origen.site_config.lsf_queue_count_only || false
end

Instance Attribute Details

#coresObject

Specify the number of cores to use while submitting the job to LSF There is a restriction on the number of cores available per queue name Below is a table:

Queue name	      equivalent		Purpose
interq	          gui			Interactive jobs, like Virtuoso. Max 15 jobs/user
batchq	          normal		CPU intensive batch jobs, 1 .. 3 threads. Specify # of threads with bsub -n option. Slots/user: ~10% of total batch capacity.
batchq_mt	          normal		CPU intensive batch jobs, >= 4 threads. Specify # of threads with bsub -n option. Slots: shared with batchq.
shortq	          short			CPU intensive batch jobs, 1 thread (= 1 core), guaranteed run time 15 minutes. Slots/user: approximately 3x limit in batchq.
offloadq	            -			Used for offloading cpu intensive batch jobs to cloud, see CloudPortal.
                              		Do not submit directly into this queue. No real slot limit. Focused on CPU intensive jobs, not using much memory/data.
distributed	          normal		Run jobs than span multiple hosts.
-			  prio	                High prio queue with low slot count, useful if you don't have slots available in normal queue. See PrioritizingMyJobs.
-			  ondemand     		On-Demand Servers to satisfy urgent and short-term (2 weeks or less) customer compute requirements.
-			  wam	  		WAM cron processing
-			  grid	     		Low-priority batch jobs (random sim, regressions, etc). Access to all spare CPU cycles.


36
37
38
# File 'lib/origen/application/lsf.rb', line 36

def cores
  @cores
end

#debugObject

When set to true no submissions will be made to LSF and instead the command that would have been submitted is printed to the terminal instead



20
21
22
# File 'lib/origen/application/lsf.rb', line 20

def debug
  @debug
end

#groupObject

The group parameter, default: nil



11
12
13
# File 'lib/origen/application/lsf.rb', line 11

def group
  @group
end

#max_jobsObject

default 400. Set number of max jobs (- 100) to be able to run by this user before lsf submission pauses. eg if max jobs you want ran is 500, set to 400, which will block until local submissions is less than 400 at which point it can batch submit up to 100 more jobs



40
41
42
# File 'lib/origen/application/lsf.rb', line 40

def max_jobs
  @max_jobs
end

#projectObject

The project parameter, default: 'msg.te'



13
14
15
# File 'lib/origen/application/lsf.rb', line 13

def project
  @project
end

#queueObject

The queue parameter, default: 'short'



17
18
19
# File 'lib/origen/application/lsf.rb', line 17

def queue
  @queue
end

#queue_count_onlyObject

default false. used when calculating remote job count for comparison with the max jobs parameter If set to true, then only jobs of the specified queue will be counted, effectively making the max_jobs value a max_jobs per queue



44
45
46
# File 'lib/origen/application/lsf.rb', line 44

def queue_count_only
  @queue_count_only
end

#resourceObject

The resource parameter, default: 'linux'



15
16
17
# File 'lib/origen/application/lsf.rb', line 15

def resource
  @resource
end