coderunner 0.13.4 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.13.4
1
+ 0.13.5
data/coderunner.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "coderunner"
8
- s.version = "0.13.4"
8
+ s.version = "0.13.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Edmund Highcock"]
@@ -59,6 +59,7 @@ Gem::Specification.new do |s|
59
59
  "lib/coderunner/system_modules/iridis.rb",
60
60
  "lib/coderunner/system_modules/juropa.rb",
61
61
  "lib/coderunner/system_modules/load_leveler.rb",
62
+ "lib/coderunner/system_modules/loki.rb",
62
63
  "lib/coderunner/system_modules/macosx.rb",
63
64
  "lib/coderunner/system_modules/moab.rb",
64
65
  "lib/coderunner/system_modules/new_hydra.rb",
@@ -0,0 +1,45 @@
1
+ class CodeRunner
2
+ require SCRIPT_FOLDER + '/system_modules/moab.rb'
3
+ module Loki
4
+ include Moab
5
+
6
+ def max_ppn
7
+ 8
8
+ end
9
+ def batch_script
10
+ nodes, ppn = @nprocs.split(/x/)
11
+ eputs "Warning: Underuse of nodes (#{ppn} cores per node instead of 4)" if ppn.to_i < 4
12
+ raise "Please specify project" unless @project
13
+ raise "Error: cores per node cannot excede 4" if ppn.to_i > max_ppn
14
+ # raise "Error: project (i.e. budget) not specified" unless @project
15
+ ppn ||= 4
16
+ if @wall_mins
17
+ ep @wall_mins
18
+ hours = (@wall_mins / 60).floor
19
+ mins = @wall_mins.to_i % 60
20
+ secs = ((@wall_mins - @wall_mins.to_i) * 60).to_i
21
+ end
22
+ eputs "Allotted wall time is " + sprintf("%02d:%02d:%02d", hours, mins, secs)
23
+ nprocstot = nodes.to_i * ppn.to_i
24
+ <<EOF
25
+ #!/bin/bash --login
26
+ #PBS -N #{executable_name}.#{job_identifier}
27
+ #PBS -l mppwidth=#{nprocstot}
28
+ #PBS -l mppnppn=#{ppn}
29
+ #{@wall_mins ? "#PBS -l walltime=#{sprintf("%02d:%02d:%02d", hours, mins, secs)}" : ""}
30
+ #{@project ? "#PBS -A #@project" : ""}
31
+ #PBS -q #{@runner.debug ? "debug" : "regular"}
32
+
33
+ ### start of jobscript
34
+ cd $PBS_O_WORKDIR
35
+ echo "workdir: $PBS_O_WORKDIR"
36
+
37
+ echo "Submitting #{nodes}x#{ppn} job on Hector for project #@project..."
38
+
39
+
40
+ EOF
41
+
42
+ end
43
+
44
+ end
45
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coderunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.4
4
+ version: 0.13.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -226,6 +226,7 @@ files:
226
226
  - lib/coderunner/system_modules/iridis.rb
227
227
  - lib/coderunner/system_modules/juropa.rb
228
228
  - lib/coderunner/system_modules/load_leveler.rb
229
+ - lib/coderunner/system_modules/loki.rb
229
230
  - lib/coderunner/system_modules/macosx.rb
230
231
  - lib/coderunner/system_modules/moab.rb
231
232
  - lib/coderunner/system_modules/new_hydra.rb