comana 0.0.9 → 0.0.10
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/CHANGES +20 -0
- data/Gemfile +10 -4
- data/Rakefile +26 -9
- data/VERSION +1 -1
- data/bin/machinestatus +189 -0
- data/bin/scpall +64 -0
- data/bin/sshall +58 -0
- data/example/dot.clustersetting +15 -0
- data/lib/comana.rb +12 -1
- data/lib/comana/clustersetting.rb +55 -0
- data/lib/comana/computationmanager.rb +10 -10
- data/lib/comana/hostinspector.rb +4 -0
- data/lib/comana/hostinspector/pbsnodes.rb +51 -0
- data/lib/comana/hostinspector/ping.rb +34 -0
- data/lib/comana/hostselector.rb +45 -0
- data/lib/comana/queuesubmitter.rb +39 -64
- data/memo.txt +2 -0
- data/test/helper.rb +17 -0
- data/{spec → test}/locked/input_a +0 -0
- data/{spec → test}/locked/input_b +0 -0
- data/{spec → test}/locked/lock_comana/dummy +0 -0
- data/{spec → test}/locked_outputted/input_a +0 -0
- data/{spec → test}/locked_outputted/input_b +0 -0
- data/{spec → test}/locked_outputted/lock_comana/dummy +0 -0
- data/{spec → test}/locked_outputted/output +0 -0
- data/{spec/queuesubmitter/locked/lock_queuesubmitter → test/not_executable}/dummy +0 -0
- data/{spec → test}/not_started/input_a +0 -0
- data/{spec → test}/not_started/input_b +0 -0
- data/{spec → test}/outputted/input_a +0 -0
- data/{spec → test}/outputted/input_b +0 -0
- data/{spec → test}/outputted/output +0 -0
- data/test/pbsnodes/Br09.xml +11 -0
- data/test/pbsnodes/Br10.xml +2 -0
- data/test/pbsnodes/Ge00.xml +2 -0
- data/test/pbsnodes/Ge08.xml +1 -0
- data/test/pbsnodes/all.xml +1 -0
- data/{spec/queuesubmitter/unlocked → test/queuesubmitter/locked/lock_queuesubmitter}/dummy +0 -0
- data/test/queuesubmitter/unlocked/dummy +0 -0
- data/test/test_clustersetting.rb +116 -0
- data/test/test_computationmanager.rb +131 -0
- data/test/test_hostinspector_pbsnodes.rb +92 -0
- data/test/test_hostinspector_ping.rb +21 -0
- data/test/test_hostselector.rb +57 -0
- data/test/test_queuesubmitter.rb +214 -0
- metadata +92 -49
- data/comana.gemspec +0 -84
- data/dot.machineinfo +0 -14
- data/lib/comana/machineinfo.rb +0 -44
- data/spec/computationmanager_spec.rb +0 -158
- data/spec/machineinfo +0 -7
- data/spec/machineinfo_spec.rb +0 -52
- data/spec/queuesubmitter_spec.rb +0 -263
- data/spec/spec_helper.rb +0 -12
@@ -4,7 +4,7 @@
|
|
4
4
|
# This class profides a framework of scientific computation.
|
5
5
|
# Users have to redefine some methods in subclasses for various computation.
|
6
6
|
#
|
7
|
-
class ComputationManager
|
7
|
+
class Comana::ComputationManager
|
8
8
|
class NotImplementedError < Exception; end
|
9
9
|
class AlreadyStartedError < Exception; end
|
10
10
|
class ExecuteError < Exception; end
|
@@ -47,6 +47,15 @@ class ComputationManager
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
# Return latest modified time of files in calc dir recursively.
|
51
|
+
# require "find"
|
52
|
+
def latest_modified_time
|
53
|
+
tmp = Dir.glob("#{@dir}/**/*").max_by do |file|
|
54
|
+
File.mtime(file)
|
55
|
+
end
|
56
|
+
File.mtime(tmp)
|
57
|
+
end
|
58
|
+
|
50
59
|
private
|
51
60
|
|
52
61
|
# Redefine in subclass, e.g.,
|
@@ -60,15 +69,6 @@ class ComputationManager
|
|
60
69
|
raise NotImplementedError, "#{self.class}::prepare_next need to be redefined"
|
61
70
|
end
|
62
71
|
|
63
|
-
# Return latest modified time of files in calc dir recursively.
|
64
|
-
# require "find"
|
65
|
-
def latest_modified_time
|
66
|
-
tmp = Dir.glob("#{@dir}/**/*").max_by do |file|
|
67
|
-
File.mtime(file)
|
68
|
-
end
|
69
|
-
File.mtime(tmp)
|
70
|
-
end
|
71
|
-
|
72
72
|
def started?
|
73
73
|
return true if File.exist?( "#{@dir}/#{@lockdir}" )
|
74
74
|
return false
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require 'rexml/document'
|
5
|
+
#
|
6
|
+
#
|
7
|
+
#
|
8
|
+
class Comana::HostInspector::Pbsnodes
|
9
|
+
attr_reader :name, :state, :np, :properties, :ntype, :gpus, :status
|
10
|
+
|
11
|
+
class UnknownNodeError < Exception; end
|
12
|
+
|
13
|
+
def initialize(hostname, pbs_server = nil)
|
14
|
+
@hostname = hostname
|
15
|
+
command = "pbsnodes -x #{hostname}"
|
16
|
+
command = "pbsnodes -x -s #{pbs_server} #{hostname}" if pbs_server
|
17
|
+
command = "cat test/pbsnodes/#{hostname}.xml" if $TEST
|
18
|
+
#command = "cat test/pbsnodes/#{hostname}.xml"
|
19
|
+
parse `#{command} 2> /dev/null`
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def parse(str)
|
25
|
+
doc = REXML::Document.new(str)
|
26
|
+
#pp doc.elements["/Data/Node/name" ] == nil
|
27
|
+
if doc.elements["/Data/Node/name" ] == nil
|
28
|
+
raise UnknownNodeError
|
29
|
+
end
|
30
|
+
|
31
|
+
@name = doc.elements["/Data/Node/name" ].text
|
32
|
+
@state = doc.elements["/Data/Node/state" ].text
|
33
|
+
@np = doc.elements["/Data/Node/np" ].text
|
34
|
+
@properties = doc.elements["/Data/Node/properties"].text
|
35
|
+
@ntype = doc.elements["/Data/Node/ntype" ].text
|
36
|
+
@gpus = doc.elements["/Data/Node/gpus" ].text
|
37
|
+
|
38
|
+
#status
|
39
|
+
@status = {}
|
40
|
+
elem = doc.elements["/Data/Node/status"]
|
41
|
+
if elem
|
42
|
+
#doc.elements["/Data/Node/status"].text.to_s.split(",").each do |equation|
|
43
|
+
elem.text.split(",").each do |equation|
|
44
|
+
left = equation.split("=")[0]
|
45
|
+
right = equation.split("=")[1].to_s
|
46
|
+
@status[left] = right
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
#
|
5
|
+
#
|
6
|
+
#
|
7
|
+
class Comana::HostInspector::Ping
|
8
|
+
PING_MIN_INTERVAL = 1
|
9
|
+
|
10
|
+
#
|
11
|
+
def initialize(hostname)
|
12
|
+
@hostname = hostname
|
13
|
+
@alive = ping
|
14
|
+
end
|
15
|
+
|
16
|
+
#Return true if ping respond from the host.
|
17
|
+
#Return false if no ping respond from the host.
|
18
|
+
def alive?
|
19
|
+
@alive
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
#Try ping three times.
|
25
|
+
#Return true if at least one time responds.
|
26
|
+
#def ping3
|
27
|
+
def ping
|
28
|
+
3.times do
|
29
|
+
return true if system("ping -c 1 -W #{PING_MIN_INTERVAL} #{@hostname} 2> /dev/null 1> /dev/null")
|
30
|
+
end
|
31
|
+
return false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require "yaml"
|
5
|
+
|
6
|
+
#
|
7
|
+
#
|
8
|
+
#
|
9
|
+
class Comana::HostSelector
|
10
|
+
class NoEntryError < Exception; end
|
11
|
+
|
12
|
+
#Argument 'groups_hosts' should be a hash;
|
13
|
+
#the keys are group name, and the value is the hostnames of the member.
|
14
|
+
def initialize(groups_hosts)
|
15
|
+
@groups_hosts = groups_hosts
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.load_file(file = Comana::ClusterSetting::DEFAULT_DATA_FILE)
|
19
|
+
#pp Comana::ClusterSetting::DEFAULT_DATA_FILE
|
20
|
+
yaml = YAML.load_file(file)
|
21
|
+
groups_hosts = {}
|
22
|
+
yaml["groups"].each do |key, val|
|
23
|
+
groups_hosts[key] = val["members"]
|
24
|
+
end
|
25
|
+
self.new(groups_hosts)
|
26
|
+
end
|
27
|
+
|
28
|
+
#Return all hosts included with sorted order.
|
29
|
+
def select_all
|
30
|
+
@groups_hosts.values.flatten.delete_if{|v| v == nil}.sort
|
31
|
+
end
|
32
|
+
|
33
|
+
#Return member hosts in indicated group.
|
34
|
+
def select_group(group)
|
35
|
+
raise NoEntryError unless @groups_hosts.keys.include? group
|
36
|
+
@groups_hosts[group]
|
37
|
+
end
|
38
|
+
|
39
|
+
#Return all groups with sorted order.
|
40
|
+
def groups
|
41
|
+
@groups_hosts.keys.sort
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
@@ -2,13 +2,13 @@
|
|
2
2
|
# coding: utf-8
|
3
3
|
|
4
4
|
require "fileutils"
|
5
|
-
require "comana/computationmanager.rb"
|
6
|
-
require "comana/
|
5
|
+
#require "comana/computationmanager.rb"
|
6
|
+
#require "comana/clustersetting.rb"
|
7
7
|
|
8
8
|
#
|
9
9
|
#
|
10
10
|
#
|
11
|
-
class QueueSubmitter < ComputationManager
|
11
|
+
class Comana::QueueSubmitter < Comana::ComputationManager
|
12
12
|
SCRIPT = "script.sh"
|
13
13
|
PROLOGUE = "prologue_script.sh"
|
14
14
|
EPILOGUE = "epilogue_script.sh"
|
@@ -19,65 +19,25 @@ class QueueSubmitter < ComputationManager
|
|
19
19
|
class InvalidArgumentError < Exception; end
|
20
20
|
|
21
21
|
# opts is a hash includes data belows:
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
22
|
+
# :command => executable command line written in script.
|
23
|
+
# :cluster => name of cluster.
|
24
|
+
# :target => calculation as ComputationManager subclass.
|
25
25
|
# Note that this is not target name, to check calculatable.
|
26
26
|
def initialize(opts)
|
27
|
-
|
28
|
-
|
29
|
-
raise InitializeError
|
27
|
+
[:target, :command].each do |symbol|
|
28
|
+
raise InitializeError, "No '#{symbol}' in argument 'opts'" unless opts.has_key?(symbol)
|
29
|
+
#raise InitializeError unless opts.has_key?(symbol)
|
30
30
|
end
|
31
31
|
|
32
|
-
super(opts[
|
32
|
+
super(opts[:target].dir)
|
33
33
|
|
34
|
-
@command = opts[
|
35
|
-
@cluster = opts[
|
36
|
-
@
|
34
|
+
@command = opts[:command]
|
35
|
+
@cluster = opts[:cluster]
|
36
|
+
@num_nodes = opts[:num_nodes]
|
37
|
+
@priority = opts[:priority]
|
37
38
|
@lockdir = "lock_queuesubmitter"
|
38
39
|
end
|
39
40
|
|
40
|
-
## Check and correct options given as hash, 'opts', using machineinfo.
|
41
|
-
## Return hash corrected.
|
42
|
-
## 'opts' must have keys of
|
43
|
-
## "number"
|
44
|
-
## "cluster"
|
45
|
-
## "target"
|
46
|
-
## machineinfo is a MachineInfo class instance.
|
47
|
-
#def self.correct_options(opts, machineinfo)
|
48
|
-
# # option analysis
|
49
|
-
# ["target", "number", "cluster"].each do |symbol|
|
50
|
-
# raise InitializeError, "No #{symbol} in argument 'opts'" unless opts.has_key?(symbol)
|
51
|
-
# end
|
52
|
-
|
53
|
-
|
54
|
-
# #unless ary.size == 1
|
55
|
-
# # raise InitializeError, "Not one target indicated: #{ary.join(", ")}."
|
56
|
-
# #end
|
57
|
-
|
58
|
-
# #unless opts["cluster"]
|
59
|
-
# # raise InvalidArgumentError,
|
60
|
-
# # "-c option not set."
|
61
|
-
# #end
|
62
|
-
|
63
|
-
# ## Number of nodes: number, key string, or default value(1).
|
64
|
-
# #if opts["number"].to_i > 0
|
65
|
-
# # opts["number"] = opts["number"].to_i
|
66
|
-
# #else
|
67
|
-
# # number = machineinfo.get_info(opts["cluster"])[opts["number"]]
|
68
|
-
# # if number
|
69
|
-
# # opts["number"] = number
|
70
|
-
# # else
|
71
|
-
# # raise InvalidArgumentError,
|
72
|
-
# # "No entry '#{opts["number"]}' in machineinfo: #{machineinfo.inspect}."
|
73
|
-
# # end
|
74
|
-
# #end
|
75
|
-
# #opts["number"] ||= 1
|
76
|
-
|
77
|
-
|
78
|
-
# opts
|
79
|
-
#end
|
80
|
-
|
81
41
|
def calculate
|
82
42
|
# prologue
|
83
43
|
prologue_path = "#{@dir}/#{PROLOGUE}"
|
@@ -94,7 +54,7 @@ class QueueSubmitter < ComputationManager
|
|
94
54
|
File.open(script_path, "w") { |io| dump_script(io) }
|
95
55
|
|
96
56
|
# run
|
97
|
-
system("cd #{@dir}; qsub -l prologue=#{prologue_path} -l epilogue=#{epilogue_path} #{script_path}")
|
57
|
+
system("cd #{@dir}; qsub -l prologue=#{prologue_path} -l epilogue=#{epilogue_path} #{script_path} > jobid.log")
|
98
58
|
end
|
99
59
|
|
100
60
|
# Raise QueueSubmitter::PrepareNextError when called.
|
@@ -135,15 +95,30 @@ class QueueSubmitter < ComputationManager
|
|
135
95
|
end
|
136
96
|
|
137
97
|
def dump_script(io = nil)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
"
|
146
|
-
|
98
|
+
lines = []
|
99
|
+
lines << "#! /bin/sh"
|
100
|
+
lines << "#PBS -N #{@dir}"
|
101
|
+
|
102
|
+
if @num_nodes || @cluster
|
103
|
+
tmp = []
|
104
|
+
@num_nodes ||= 1
|
105
|
+
tmp << "nodes=#{@num_nodes}"
|
106
|
+
tmp << "ppn=1"
|
107
|
+
#pp @cluster
|
108
|
+
tmp << @cluster if @cluster
|
109
|
+
lines << "#PBS -l #{tmp.join(":")},walltime=#{WALLTIME}"
|
110
|
+
else
|
111
|
+
lines << "#PBS -l walltime=#{WALLTIME}"
|
112
|
+
end
|
113
|
+
|
114
|
+
lines << "#PBS -p #{@priority}" if @priority
|
115
|
+
|
116
|
+
lines << "#PBS -j oe"
|
117
|
+
lines << ""
|
118
|
+
lines << "cd ${PBS_O_WORKDIR} && \\"
|
119
|
+
lines << "#{@command}"
|
120
|
+
|
121
|
+
str = lines.join("\n")
|
147
122
|
|
148
123
|
if io
|
149
124
|
io.puts str
|
data/memo.txt
CHANGED
data/test/helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
|
12
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
require 'comana'
|
15
|
+
|
16
|
+
class Test::Unit::TestCase
|
17
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<Data><Node><name>Br10</name><state>free</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><status>rectime=1368099478,varattr=,jobs=,state=free,netload=1636471502,gres=,loadave=0.00,ncpus=4,physmem=12322444kb,availmem=20402856kb,totmem=20702856kb,idletime=1389153,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Br10 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node></Data>
|
2
|
+
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<Data><Node><name>Ge00</name><state>job-exclusive</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><jobs>0/6073.os.calc.atom</jobs><status>rectime=1368442164,varattr=,jobs=6073.os.calc.atom,state=free,netload=18920135352,gres=,loadave=0.63,ncpus=4,physmem=4046772kb,availmem=12143912kb,totmem=12427184kb,idletime=2697087,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node></Data>
|
2
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
pbsnodes: Unknown node MSG=cannot locate specified node
|
@@ -0,0 +1 @@
|
|
1
|
+
<Data><Node><name>Os.calc.atom</name><state>free</state><np>1</np><properties>headnode</properties><ntype>cluster</ntype><status>rectime=1368030627,varattr=,jobs=,state=free,netload=1198157106,gres=,loadave=0.27,ncpus=4,physmem=8260672kb,availmem=15844000kb,totmem=16636988kb,idletime=153,nusers=3,nsessions=113,sessions=390 23881 936 1381 2109 2431 2534 3078 26547 3858 4619 4711 5199 5214 5426 5441 5456 5471 5486 5851 5866 5875 5881 6093 6108 6123 6138 18344 6190 6205 6220 6235 6302 6623 13788 6709 12896 18148 8684 9493 12135 12530 12572 12573 12574 12575 12693 12699 12708 12709 12711 12895 12944 13813 14019 14374 15422 15440 15458 15553 16096 16111 17718 17733 17748 17763 17779 17794 17809 17824 17839 17854 18028 18043 18058 18073 18088 18103 18118 18133 18163 19893 20053 20069 20085 20100 20252 20268 20284 20300 20317 20333 20825 20842 20858 20873 20888 20903 20918 20933 21015 21030 21308 21363 23711 25816 26457 26466 27261 27325 29508 29509 31629,uname=Linux Os.calc.atom 3.0.0-16-generic-pae #28-Ubuntu SMP Fri Jan 27 19:24:01 UTC 2012 i686,opsys=linux</status><gpus>0</gpus></Node><Node><name>Dm00</name><state>down</state><np>1</np><properties>Dm</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Dm01</name><state>down</state><np>1</np><properties>Dm</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Ga00</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030621,varattr=,jobs=,state=free,netload=69851681776,gres=,loadave=0.00,ncpus=4,physmem=8121324kb,availmem=16186112kb,totmem=16501736kb,idletime=7725500,nusers=1,nsessions=3,sessions=10270 15747 20635,uname=Linux Ga00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga01</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030623,varattr=,jobs=111.os 133.os 150.os,state=free,netload=59314173024,gres=,loadave=0.00,ncpus=4,physmem=2047500kb,availmem=10226720kb,totmem=10427912kb,idletime=13308540,nusers=1,nsessions=6,sessions=13227 14983 17853 18165 22434 22969,uname=Linux Ga01 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga02</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030622,varattr=,jobs=,state=free,netload=32766499218,gres=,loadave=0.00,ncpus=4,physmem=8121324kb,availmem=16235508kb,totmem=16501736kb,idletime=7171946,nusers=1,nsessions=4,sessions=12014 17527 23793 23842,uname=Linux Ga02 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga03</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030628,varattr=,jobs=,state=free,netload=6679686917,gres=,loadave=0.00,ncpus=4,physmem=5987316kb,availmem=13985572kb,totmem=14367728kb,idletime=358187361,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ga03 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga04</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030634,varattr=,jobs=,state=free,netload=29611034893,gres=,loadave=0.00,ncpus=4,physmem=2047500kb,availmem=10258572kb,totmem=10427912kb,idletime=1404624,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ga04 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga05</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030626,varattr=,jobs=,state=free,netload=9088442032,gres=,loadave=0.00,ncpus=4,physmem=2047500kb,availmem=10261384kb,totmem=10427912kb,idletime=1403803,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ga05 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga06</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030628,varattr=,jobs=,state=free,netload=32066540217,gres=,loadave=0.00,ncpus=4,physmem=5987316kb,availmem=14101824kb,totmem=14367728kb,idletime=8932720,nusers=1,nsessions=3,sessions=12006 17289 22060,uname=Linux Ga06 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ga07</name><state>free</state><np>1</np><properties>Ga</properties><ntype>cluster</ntype><status>rectime=1368030625,varattr=,jobs=,state=free,netload=9149709759,gres=,loadave=0.00,ncpus=4,physmem=8121324kb,availmem=16275868kb,totmem=16501736kb,idletime=14740550,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ga07 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge00</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030628,varattr=,jobs=,state=free,netload=18367671323,gres=,loadave=0.00,ncpus=4,physmem=4046772kb,availmem=12229228kb,totmem=12427184kb,idletime=2285552,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge01</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030620,varattr=,jobs=,state=free,netload=7916710860,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16314708kb,totmem=16564128kb,idletime=1405515,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge01 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge02</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030621,varattr=,jobs=,state=free,netload=7788575420,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16316144kb,totmem=16564128kb,idletime=1403473,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge02 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge03</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030626,varattr=,jobs=,state=free,netload=4163597694,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16319836kb,totmem=16564128kb,idletime=1430409,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge03 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge04</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030635,varattr=,jobs=,state=free,netload=5552599895,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16316672kb,totmem=16564128kb,idletime=1402965,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge04 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge05</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030625,varattr=,jobs=,state=free,netload=7130218246,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16320492kb,totmem=16564128kb,idletime=1402705,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge05 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge06</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030614,varattr=,jobs=,state=free,netload=13627533917,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16315984kb,totmem=16564128kb,idletime=1402526,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge06 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Ge07</name><state>free</state><np>1</np><properties>Ge</properties><ntype>cluster</ntype><status>rectime=1368030613,varattr=,jobs=,state=free,netload=9201946467,gres=,loadave=0.00,ncpus=4,physmem=8183716kb,availmem=16320620kb,totmem=16564128kb,idletime=1402269,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Ge07 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se00</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5355.os.calc.atom</jobs><status>rectime=1368030620,varattr=,jobs=5355.os.calc.atom,state=free,netload=9736407152,gres=,loadave=3.43,ncpus=4,physmem=8183720kb,availmem=11863532kb,totmem=16564132kb,idletime=1399468,nusers=1,nsessions=2,sessions=5042 5061,uname=Linux Se00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se01</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5353.os.calc.atom</jobs><status>rectime=1368030628,varattr=,jobs=5353.os.calc.atom,state=free,netload=7376186931,gres=,loadave=2.16,ncpus=4,physmem=8183720kb,availmem=13888436kb,totmem=16564132kb,idletime=1324074,nusers=1,nsessions=2,sessions=4792 4811,uname=Linux Se01 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se02</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5371.os.calc.atom</jobs><status>rectime=1368030619,varattr=,jobs=5371.os.calc.atom,state=free,netload=8986014562,gres=,loadave=3.74,ncpus=4,physmem=8183720kb,availmem=14759572kb,totmem=16564132kb,idletime=1334092,nusers=1,nsessions=2,sessions=4885 4904,uname=Linux Se02 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se03</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5361.os.calc.atom</jobs><status>rectime=1368030614,varattr=,jobs=5361.os.calc.atom,state=free,netload=2751431505,gres=,loadave=3.05,ncpus=4,physmem=8183720kb,availmem=14508576kb,totmem=16564132kb,idletime=1333989,nusers=1,nsessions=2,sessions=4461 4480,uname=Linux Se03 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se04</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5356.os.calc.atom</jobs><status>rectime=1368030635,varattr=,jobs=5356.os.calc.atom,state=free,netload=5379625209,gres=,loadave=2.16,ncpus=4,physmem=8183720kb,availmem=11790392kb,totmem=16564132kb,idletime=1334009,nusers=1,nsessions=2,sessions=4584 4603,uname=Linux Se04 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se05</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5370.os.calc.atom</jobs><status>rectime=1368030619,varattr=,jobs=5370.os.calc.atom,state=free,netload=5699408350,gres=,loadave=1.36,ncpus=4,physmem=8183720kb,availmem=13416348kb,totmem=16564132kb,idletime=1333991,nusers=1,nsessions=2,sessions=4730 4749,uname=Linux Se05 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se06</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5363.os.calc.atom</jobs><status>rectime=1368030612,varattr=,jobs=5363.os.calc.atom,state=free,netload=2494147097,gres=,loadave=1.73,ncpus=4,physmem=8183720kb,availmem=14538196kb,totmem=16564132kb,idletime=1333984,nusers=1,nsessions=2,sessions=4298 4317,uname=Linux Se06 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se07</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5369.os.calc.atom</jobs><status>rectime=1368030618,varattr=,jobs=5369.os.calc.atom,state=free,netload=6931198579,gres=,loadave=3.92,ncpus=4,physmem=8183720kb,availmem=13950288kb,totmem=16564132kb,idletime=1333991,nusers=1,nsessions=2,sessions=4623 4642,uname=Linux Se07 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se08</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5352.os.calc.atom</jobs><status>rectime=1368030614,varattr=,jobs=5352.os.calc.atom,state=free,netload=4312193224,gres=,loadave=1.66,ncpus=4,physmem=8183720kb,availmem=14416132kb,totmem=16564132kb,idletime=1324026,nusers=1,nsessions=2,sessions=4109 4128,uname=Linux Se08 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se09</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5357.os.calc.atom</jobs><status>rectime=1368030630,varattr=,jobs=5357.os.calc.atom,state=free,netload=5165453701,gres=,loadave=2.40,ncpus=4,physmem=8183720kb,availmem=11941196kb,totmem=16564132kb,idletime=1324040,nusers=1,nsessions=2,sessions=4816 4835,uname=Linux Se09 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se10</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5373.os.calc.atom</jobs><status>rectime=1368030629,varattr=,jobs=5373.os.calc.atom,state=free,netload=5750396025,gres=,loadave=3.29,ncpus=4,physmem=8183720kb,availmem=15528716kb,totmem=16564132kb,idletime=1324037,nusers=1,nsessions=2,sessions=4659 4678,uname=Linux Se10 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se11</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5354.os.calc.atom</jobs><status>rectime=1368030612,varattr=,jobs=5354.os.calc.atom,state=free,netload=4492406234,gres=,loadave=3.97,ncpus=4,physmem=8183720kb,availmem=14660388kb,totmem=16564132kb,idletime=1324020,nusers=1,nsessions=2,sessions=4624 4643,uname=Linux Se11 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se12</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5372.os.calc.atom</jobs><status>rectime=1368030631,varattr=,jobs=5372.os.calc.atom,state=free,netload=5936157085,gres=,loadave=3.95,ncpus=4,physmem=8183720kb,availmem=14472768kb,totmem=16564132kb,idletime=1324039,nusers=1,nsessions=2,sessions=4797 4816,uname=Linux Se12 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se13</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5358.os.calc.atom</jobs><status>rectime=1368030632,varattr=,jobs=5358.os.calc.atom,state=free,netload=5314053766,gres=,loadave=3.92,ncpus=4,physmem=8183720kb,availmem=14557156kb,totmem=16564132kb,idletime=1324040,nusers=1,nsessions=2,sessions=4624 4643,uname=Linux Se13 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se14</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5366.os.calc.atom</jobs><status>rectime=1368030615,varattr=,jobs=5366.os.calc.atom,state=free,netload=6106491084,gres=,loadave=3.36,ncpus=4,physmem=8183720kb,availmem=11860388kb,totmem=16564132kb,idletime=1324023,nusers=1,nsessions=2,sessions=4712 4731,uname=Linux Se14 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se15</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5368.os.calc.atom</jobs><status>rectime=1368030617,varattr=,jobs=5368.os.calc.atom,state=free,netload=5638979565,gres=,loadave=3.79,ncpus=4,physmem=8183720kb,availmem=14491576kb,totmem=16564132kb,idletime=1324023,nusers=1,nsessions=2,sessions=4800 4819,uname=Linux Se15 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se16</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5367.os.calc.atom</jobs><status>rectime=1368030616,varattr=,jobs=5367.os.calc.atom,state=free,netload=5555901152,gres=,loadave=3.95,ncpus=4,physmem=8183720kb,availmem=11885964kb,totmem=16564132kb,idletime=1324033,nusers=1,nsessions=2,sessions=4744 4763,uname=Linux Se16 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se17</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5360.os.calc.atom</jobs><status>rectime=1368030641,varattr=,jobs=5360.os.calc.atom,state=free,netload=6303963588,gres=,loadave=2.75,ncpus=4,physmem=8183720kb,availmem=11938020kb,totmem=16564132kb,idletime=1324046,nusers=1,nsessions=2,sessions=4952 4971,uname=Linux Se17 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se18</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5365.os.calc.atom</jobs><status>rectime=1368030616,varattr=,jobs=5365.os.calc.atom,state=free,netload=6013322999,gres=,loadave=3.95,ncpus=4,physmem=8183720kb,availmem=11943572kb,totmem=16564132kb,idletime=1324018,nusers=1,nsessions=2,sessions=4955 4974,uname=Linux Se18 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se19</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5362.os.calc.atom</jobs><status>rectime=1368030607,varattr=,jobs=5362.os.calc.atom,state=free,netload=3813542995,gres=,loadave=1.40,ncpus=4,physmem=8183720kb,availmem=13469744kb,totmem=16564132kb,idletime=1324011,nusers=1,nsessions=2,sessions=4496 4515,uname=Linux Se19 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se20</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5359.os.calc.atom</jobs><status>rectime=1368030636,varattr=,jobs=5359.os.calc.atom,state=free,netload=2637240703,gres=,loadave=3.66,ncpus=4,physmem=8183720kb,availmem=13435216kb,totmem=16564132kb,idletime=1324040,nusers=1,nsessions=2,sessions=4232 4251,uname=Linux Se20 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Se21</name><state>job-exclusive</state><np>1</np><properties>Se</properties><ntype>cluster</ntype><jobs>0/5364.os.calc.atom</jobs><status>rectime=1368030614,varattr=,jobs=5364.os.calc.atom,state=free,netload=2677808969,gres=,loadave=2.22,ncpus=4,physmem=8183720kb,availmem=15021240kb,totmem=16564132kb,idletime=1324017,nusers=1,nsessions=2,sessions=4319 4338,uname=Linux Se21 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Br00</name><state>free</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><status>rectime=1368030623,varattr=,jobs=,state=free,netload=1553455155,gres=,loadave=0.00,ncpus=4,physmem=12323308kb,availmem=20394224kb,totmem=20703720kb,idletime=1320591,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Br00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Br01</name><state>free</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><status>rectime=1368030641,varattr=,jobs=,state=free,netload=1553051810,gres=,loadave=0.00,ncpus=4,physmem=12323308kb,availmem=20396152kb,totmem=20703720kb,idletime=1320383,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Br01 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Br02</name><state>free</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><status>rectime=1368030633,varattr=,jobs=,state=free,netload=1553034711,gres=,loadave=0.00,ncpus=4,physmem=12322444kb,availmem=20403812kb,totmem=20702856kb,idletime=1320376,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Br02 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Br03</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br04</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br05</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br06</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br07</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br08</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br09</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br10</name><state>free</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><status>rectime=1368030628,varattr=,jobs=,state=free,netload=1552655743,gres=,loadave=0.00,ncpus=4,physmem=12322444kb,availmem=20403112kb,totmem=20702856kb,idletime=1320303,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Br10 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Br11</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br12</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br13</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br14</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br15</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br16</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br17</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br18</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br19</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br20</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br21</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br22</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br23</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br24</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br25</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br26</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br27</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br28</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br29</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br30</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br31</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br32</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br33</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br34</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Br35</name><state>down</state><np>1</np><properties>Br</properties><ntype>cluster</ntype><gpus>0</gpus></Node><Node><name>Kr00</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030627,varattr=,jobs=,state=free,netload=3830581534,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24426956kb,totmem=24762832kb,idletime=1228492,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr00 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Kr01</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030630,varattr=,jobs=,state=free,netload=1717186267,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24444292kb,totmem=24762832kb,idletime=1254681,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr01 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Kr02</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030628,varattr=,jobs=,state=free,netload=6803442050,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24440432kb,totmem=24762832kb,idletime=1254677,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr02 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Kr03</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030623,varattr=,jobs=,state=free,netload=7358379418,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24440900kb,totmem=24762832kb,idletime=1254670,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr03 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Kr04</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030627,varattr=,jobs=,state=free,netload=1667982689,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24446604kb,totmem=24762832kb,idletime=1252839,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr04 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node><Node><name>Kr05</name><state>free</state><np>1</np><properties>Kr</properties><ntype>cluster</ntype><status>rectime=1368030633,varattr=,jobs=,state=free,netload=6378427822,gres=,loadave=0.00,ncpus=8,physmem=16382420kb,availmem=24439312kb,totmem=24762832kb,idletime=1254676,nusers=0,nsessions=? 0,sessions=? 0,uname=Linux Kr05 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64,opsys=linux</status><gpus>0</gpus></Node></Data>
|
File without changes
|
File without changes
|
@@ -0,0 +1,116 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require "helper"
|
5
|
+
require "fileutils"
|
6
|
+
|
7
|
+
#require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
|
8
|
+
#require "comana/clustersetting.rb"
|
9
|
+
|
10
|
+
class TC_ClusterSetting < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@mi00 = Comana::ClusterSetting.new({
|
13
|
+
"pbs_server" => "P00",
|
14
|
+
"groups" => {
|
15
|
+
"A" => {
|
16
|
+
"data1" => "A-1",
|
17
|
+
"data2" => "A-2",
|
18
|
+
"members" => ["A00", "A01"]
|
19
|
+
},
|
20
|
+
"B" => {
|
21
|
+
"data1" => "B-1",
|
22
|
+
"data2" => "B-2",
|
23
|
+
"members" => ["B00", "B01", "B02"]
|
24
|
+
},
|
25
|
+
"C" => { #No member
|
26
|
+
"data1" => "A-1",
|
27
|
+
"data2" => "A-2",
|
28
|
+
},
|
29
|
+
}
|
30
|
+
})
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_load_file
|
34
|
+
assert_equal("P00", @mi00.pbs_server)
|
35
|
+
|
36
|
+
data_file = "example/dot.clustersetting"
|
37
|
+
assert_nothing_raised{
|
38
|
+
Comana::ClusterSetting.load_file(data_file)
|
39
|
+
}
|
40
|
+
|
41
|
+
#context "not exist clustersetting file" do
|
42
|
+
assert_raise(Errno::ENOENT){ Comana::ClusterSetting.load_file("") }
|
43
|
+
end
|
44
|
+
|
45
|
+
#mi00 = Comana::ClusterSetting.load_file(data_file)
|
46
|
+
#mi00.groups.should == {
|
47
|
+
# "A" => {
|
48
|
+
# "data1" => "A-1",
|
49
|
+
# "data2" => "A-2",
|
50
|
+
# "members" => ["A00", "A01"]
|
51
|
+
# },
|
52
|
+
# "B" => {
|
53
|
+
# "data1" => "B-1",
|
54
|
+
# "data2" => "B-2",
|
55
|
+
# "members" => ["B00", "B01", "B02"]
|
56
|
+
# },
|
57
|
+
#}
|
58
|
+
|
59
|
+
def test_belonged_cluster
|
60
|
+
assert_equal("A" , @mi00.belonged_cluster("A00"))
|
61
|
+
assert_equal("A" , @mi00.belonged_cluster("A01"))
|
62
|
+
assert_equal("B" , @mi00.belonged_cluster("B00"))
|
63
|
+
assert_equal("B" , @mi00.belonged_cluster("B01"))
|
64
|
+
assert_equal("B" , @mi00.belonged_cluster("B02"))
|
65
|
+
assert_raise(Comana::ClusterSetting::NoEntryError){ @mi00.settings_host("NONE")}
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_settings_group
|
69
|
+
assert_equal(
|
70
|
+
{
|
71
|
+
"data1" => "A-1",
|
72
|
+
"data2" => "A-2",
|
73
|
+
"members" => ["A00", "A01"]
|
74
|
+
},
|
75
|
+
@mi00.settings_group("A")
|
76
|
+
)
|
77
|
+
|
78
|
+
assert_equal(
|
79
|
+
{
|
80
|
+
"data1" => "B-1",
|
81
|
+
"data2" => "B-2",
|
82
|
+
"members" => ["B00", "B01", "B02"]
|
83
|
+
},
|
84
|
+
@mi00.settings_group("B")
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_settings_host
|
89
|
+
assert_equal(
|
90
|
+
{
|
91
|
+
"data1" => "A-1",
|
92
|
+
"data2" => "A-2",
|
93
|
+
"members" => ["A00", "A01"]
|
94
|
+
},
|
95
|
+
@mi00.settings_host("A00")
|
96
|
+
)
|
97
|
+
|
98
|
+
assert_equal(
|
99
|
+
{
|
100
|
+
"data1" => "B-1",
|
101
|
+
"data2" => "B-2",
|
102
|
+
"members" => ["B00", "B01", "B02"]
|
103
|
+
},
|
104
|
+
@mi00.settings_host("B00")
|
105
|
+
)
|
106
|
+
|
107
|
+
#assert_equal(nil, @mi00.settings_host("NONE"))
|
108
|
+
assert_raise(Comana::ClusterSetting::NoEntryError){ @mi00.settings_host("NONE")}
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_clusters
|
112
|
+
assert_equal(["A", "B", "C"], @mi00.clusters)
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|