nera 0.5.2 → 0.6.0
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/History.txt +6 -0
- data/lib/nera/nera_cui.rb +1 -1
- data/lib/nera/nera_job_layer_controller.rb +4 -0
- data/lib/nera/nera_parameter_layer_controller.rb +6 -1
- data/lib/nera/nera_parameter_records.rb +36 -0
- data/lib/nera/nera_run_layer_controller.rb +8 -0
- data/lib/nera.rb +1 -1
- data/test/test_nera_job_layer_controller.rb +49 -0
- data/test/test_nera_parameter_layer_controller.rb +19 -4
- data/test/test_nera_parameter_records.rb +13 -0
- data/test/test_nera_run_layer_controller.rb +16 -0
- data/website/index.html +1 -1
- data/website/temporary/temp.html +1 -1
- metadata +2 -2
data/History.txt
CHANGED
data/lib/nera/nera_cui.rb
CHANGED
@@ -180,7 +180,7 @@ HEADER
|
|
180
180
|
when "return to simulator layer"
|
181
181
|
return :simulator_layer
|
182
182
|
when "create a new parameter set"
|
183
|
-
plist = plc.
|
183
|
+
plist = plc.get_parameter( @parameter_id)
|
184
184
|
new_param_hash = Dialog::set_multiple_values( plist, "Input the new parameter set")
|
185
185
|
f = plc.create_a_new_parameter_set( new_param_hash)
|
186
186
|
if f
|
@@ -58,6 +58,10 @@ module NERA
|
|
58
58
|
end
|
59
59
|
|
60
60
|
public
|
61
|
+
def parameters_list
|
62
|
+
@param_records.list_all
|
63
|
+
end
|
64
|
+
|
61
65
|
def parameters_list_in_csv
|
62
66
|
l_active = @param_records.list_active
|
63
67
|
header = @param_records.keys.dup
|
@@ -108,7 +112,7 @@ module NERA
|
|
108
112
|
return found_ids
|
109
113
|
end
|
110
114
|
|
111
|
-
def
|
115
|
+
def get_parameter( param_id = nil)
|
112
116
|
param_list = []
|
113
117
|
@sim_class::Parameters.each do |elem| param_list << elem.dup end
|
114
118
|
if param_id
|
@@ -119,6 +123,7 @@ module NERA
|
|
119
123
|
end
|
120
124
|
return param_list
|
121
125
|
end
|
126
|
+
alias :list_of_parameters :get_parameter
|
122
127
|
|
123
128
|
def path_to_param_layer
|
124
129
|
return @db_folders.path_to_parameter_layer( @sim_class)
|
@@ -153,6 +153,42 @@ module NERA
|
|
153
153
|
@db.find_by_id( id)
|
154
154
|
end
|
155
155
|
|
156
|
+
# method to find similar parameter sets.
|
157
|
+
# argument ( parameter_id to compare, parameter name)
|
158
|
+
# return the array having arrays of [ found_id, values of the parameter].
|
159
|
+
# example:
|
160
|
+
# param_recs.find_similar_parameter_sets( 3, :L)
|
161
|
+
# # => [ [1,18],[2,22],[10,128] ]
|
162
|
+
# For this case, param_id 1,2,3,10 have the same parameters except for :L.
|
163
|
+
# :L for param_id 1, 2, 10 are 18, 22, and 128, respectively.
|
164
|
+
#
|
165
|
+
# If the parameter set specified by the first argument <param_id> is not found,
|
166
|
+
# nil is returned.
|
167
|
+
#
|
168
|
+
# If the simulator does not have the parameter specified by the second argument <param>,
|
169
|
+
# nil is returned.
|
170
|
+
#
|
171
|
+
# If a similar parameter is not found, [] is returned.
|
172
|
+
def find_similar_parameter_sets( param_id, param_key)
|
173
|
+
return nil unless @sim_class::Parameters.any? do |prm| prm[0] == param_key end
|
174
|
+
found = find_by_id( param_id.to_i)
|
175
|
+
return nil unless found
|
176
|
+
match = {}
|
177
|
+
@sim_class::Parameters.each do |prm|
|
178
|
+
next if prm[0] == param_key
|
179
|
+
match[ prm[0] ] = prm[2]
|
180
|
+
match[ prm[0] ] = found[ prm[0] ] if found.has_key?( prm[0] )
|
181
|
+
end
|
182
|
+
list = @db.find_all do |r|
|
183
|
+
next if r[:id] == param_id
|
184
|
+
match.all? do |k, val| r[k] == val end
|
185
|
+
end
|
186
|
+
|
187
|
+
a = list.to_a.map do |rec| [ rec[:id], rec[param_key] ] end
|
188
|
+
sorted = a.sort_by do |elem| elem[1] end
|
189
|
+
return sorted
|
190
|
+
end
|
191
|
+
|
156
192
|
def update_to_state_active( id)
|
157
193
|
raise ArgumentError unless id.is_a?(Integer)
|
158
194
|
found = @db.find_by_id( id)
|
@@ -61,6 +61,10 @@ module NERA
|
|
61
61
|
def path_to_run_layer
|
62
62
|
return @db_folders.path_to_run_layer( @sim_instance.class, @param_id)
|
63
63
|
end
|
64
|
+
|
65
|
+
def all_runs_list
|
66
|
+
return @run_records.list_all
|
67
|
+
end
|
64
68
|
|
65
69
|
def all_runs_list_in_csv
|
66
70
|
list = @run_records.list_all
|
@@ -170,6 +174,10 @@ module NERA
|
|
170
174
|
return destroyed_jobids
|
171
175
|
end
|
172
176
|
|
177
|
+
def find_similar_parameter_sets(parameter_key)
|
178
|
+
@param_records.find_similar_parameter_sets( @param_id, parameter_key)
|
179
|
+
end
|
180
|
+
|
173
181
|
def analysis_methods
|
174
182
|
found = @sim_instance.public_methods.find_all do |meth|
|
175
183
|
meth =~ /^analyze_/
|
data/lib/nera.rb
CHANGED
@@ -32,6 +32,55 @@ class TC_NERA_JOB_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
32
32
|
def test_path_to_job_layer
|
33
33
|
assert_equal( @dbf.path_to_job_layer, @jlc.path_to_job_layer)
|
34
34
|
end
|
35
|
+
|
36
|
+
def test_not_finished_list
|
37
|
+
l = @jlc.not_finished_list
|
38
|
+
assert_equal( 3, l.size)
|
39
|
+
assert_equal( 1, l[0][:id])
|
40
|
+
assert_equal( :created, l[0][:state])
|
41
|
+
assert_equal( "Ising", l[0][:simulator])
|
42
|
+
assert_equal( 1, l[0][:parameter_id])
|
43
|
+
assert_equal( 1, l[0][:run_id])
|
44
|
+
assert_equal( 1, l[0][:number_of_runs])
|
45
|
+
assert( l[0].has_key?(:created_at) )
|
46
|
+
assert( l[0].has_key?(:updated_at) )
|
47
|
+
assert_equal( 2, l[1][:id])
|
48
|
+
assert_equal( :created, l[1][:state])
|
49
|
+
assert_equal( "Ising", l[1][:simulator])
|
50
|
+
assert_equal( 1, l[1][:parameter_id])
|
51
|
+
assert_equal( 2, l[1][:run_id])
|
52
|
+
assert_equal( 1, l[1][:number_of_runs])
|
53
|
+
assert( l[1].has_key?(:created_at) )
|
54
|
+
assert( l[1].has_key?(:updated_at) )
|
55
|
+
assert_equal( 3, l[2][:id])
|
56
|
+
assert_equal( :created, l[2][:state])
|
57
|
+
assert_equal( "Ising", l[2][:simulator])
|
58
|
+
assert_equal( 1, l[2][:parameter_id])
|
59
|
+
assert_equal( 3, l[2][:run_id])
|
60
|
+
assert_equal( 1, l[2][:number_of_runs])
|
61
|
+
assert( l[2].has_key?(:created_at) )
|
62
|
+
assert( l[2].has_key?(:updated_at) )
|
63
|
+
|
64
|
+
f = @jlc.cancel_jobs( [2])
|
65
|
+
l = @jlc.not_finished_list
|
66
|
+
assert_equal( 2, l.size)
|
67
|
+
assert_equal( 1, l[0][:id])
|
68
|
+
assert_equal( :created, l[0][:state])
|
69
|
+
assert_equal( "Ising", l[0][:simulator])
|
70
|
+
assert_equal( 1, l[0][:parameter_id])
|
71
|
+
assert_equal( 1, l[0][:run_id])
|
72
|
+
assert_equal( 1, l[0][:number_of_runs])
|
73
|
+
assert( l[0].has_key?(:created_at) )
|
74
|
+
assert( l[0].has_key?(:updated_at) )
|
75
|
+
assert_equal( 3, l[1][:id])
|
76
|
+
assert_equal( :created, l[1][:state])
|
77
|
+
assert_equal( "Ising", l[1][:simulator])
|
78
|
+
assert_equal( 1, l[1][:parameter_id])
|
79
|
+
assert_equal( 3, l[1][:run_id])
|
80
|
+
assert_equal( 1, l[1][:number_of_runs])
|
81
|
+
assert( l[1].has_key?(:created_at) )
|
82
|
+
assert( l[1].has_key?(:updated_at) )
|
83
|
+
end
|
35
84
|
|
36
85
|
def test_not_finished_list_in_csv
|
37
86
|
h, l = @jlc.not_finished_list_in_csv
|
@@ -81,6 +81,21 @@ class TC_NERA_PARAM_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
81
81
|
assert( loaded[0].has_key?( :num_finished_runs) ) # format is converted when reverted
|
82
82
|
assert( loaded[0].has_key?( :num_all_runs) )
|
83
83
|
end
|
84
|
+
|
85
|
+
def test_parameter_sets_list
|
86
|
+
l = @plc.parameters_list
|
87
|
+
assert_equal( [], l)
|
88
|
+
l << {:id => 1}
|
89
|
+
l = @plc.parameters_list
|
90
|
+
assert_equal( [], l)
|
91
|
+
f = @plc.create_a_new_parameter_set( {:L => 96, :K => 0.25, :tmax => 128} )
|
92
|
+
l = @plc.parameters_list
|
93
|
+
assert_equal( 1, l.size)
|
94
|
+
assert_equal( 1, l[0][:id])
|
95
|
+
assert_equal( 96, l[0][:L])
|
96
|
+
assert_equal( 0.25, l[0][:K])
|
97
|
+
assert_equal( 128, l[0][:tmax])
|
98
|
+
end
|
84
99
|
|
85
100
|
def test_parameters_list_in_csv
|
86
101
|
header, list = @plc.parameters_list_in_csv
|
@@ -145,8 +160,8 @@ class TC_NERA_PARAM_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
145
160
|
assert_nil( @plc.find_ids_by_parameter_hash( {:L => 999}))
|
146
161
|
end
|
147
162
|
|
148
|
-
def
|
149
|
-
p1 = @plc.
|
163
|
+
def test_get_parameter
|
164
|
+
p1 = @plc.get_parameter
|
150
165
|
p2 = [ [:L, Integer, 32],
|
151
166
|
[:K, Float, 0.223],
|
152
167
|
[:tmax, Integer, 512]
|
@@ -154,14 +169,14 @@ class TC_NERA_PARAM_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
154
169
|
assert_equal( p2, p1)
|
155
170
|
|
156
171
|
add_three
|
157
|
-
p3 = @plc.
|
172
|
+
p3 = @plc.get_parameter(2)
|
158
173
|
p4 = [ [:L, Integer, 64],
|
159
174
|
[:K, Float, 0.02],
|
160
175
|
[:tmax, Integer, 2]
|
161
176
|
]
|
162
177
|
assert_equal( p4, p3)
|
163
178
|
|
164
|
-
p5 = @plc.
|
179
|
+
p5 = @plc.get_parameter(5)
|
165
180
|
pp p5
|
166
181
|
assert_equal( p2, p5)
|
167
182
|
end
|
@@ -228,6 +228,19 @@ class TC_NERA_PARAM_RECS < Test::Unit::TestCase
|
|
228
228
|
@db.find_by_id("3")
|
229
229
|
}
|
230
230
|
end
|
231
|
+
|
232
|
+
def test_find_similar_parameter_sets
|
233
|
+
add_three
|
234
|
+
assert_nil( @db.find_similar_parameter_sets( 0, :L) )
|
235
|
+
assert_nil( @db.find_similar_parameter_sets( 1, :unknown) )
|
236
|
+
assert_nil( @db.find_similar_parameter_sets( 4, :tmax) )
|
237
|
+
assert_equal( [ [1, 32] ] , @db.find_similar_parameter_sets( 2, :L) )
|
238
|
+
assert_equal( [] , @db.find_similar_parameter_sets( 3, :L) )
|
239
|
+
|
240
|
+
p4 = { :L => 16, :K => 0.22, :tmax => 512 }
|
241
|
+
@db.add(p4)
|
242
|
+
assert_equal( [ [4,16],[1,32] ] , @db.find_similar_parameter_sets(2, :L) )
|
243
|
+
end
|
231
244
|
|
232
245
|
def test_update_state
|
233
246
|
add_three
|
@@ -46,6 +46,16 @@ class TC_NERA_RUN_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
46
46
|
assert_equal( @rlc.path_to_run_layer, @dbf.path_to_run_layer(Ising,1) )
|
47
47
|
end
|
48
48
|
|
49
|
+
def test_all_runs_list
|
50
|
+
l = @rlc.all_runs_list
|
51
|
+
assert_equal( [], l)
|
52
|
+
@rlc.create_jobs( 2, 3)
|
53
|
+
l = @rlc.all_runs_list
|
54
|
+
assert_equal( 6, l.size)
|
55
|
+
assert( l.all? do |rec| rec.is_a?(Hash) end )
|
56
|
+
assert( l.all? do |rec| rec[:state]==:not_finished end )
|
57
|
+
end
|
58
|
+
|
49
59
|
def test_all_runs_list_in_csv
|
50
60
|
header, list = @rlc.all_runs_list_in_csv
|
51
61
|
str = "id, state, created_at, job_id, seed, start_at, finish_at, included_at, real_time, user_time, host_name, omp_threads, mpi_processes"
|
@@ -187,6 +197,12 @@ class TC_NERA_RUN_LAYER_CONTROLLER < Test::Unit::TestCase
|
|
187
197
|
assert_equal( 1, l.size)
|
188
198
|
end
|
189
199
|
|
200
|
+
def test_find_similar_parameter_sets
|
201
|
+
assert_equal( [], @rlc.find_similar_parameter_sets( :L))
|
202
|
+
assert_equal( [], @rlc.find_similar_parameter_sets( :K))
|
203
|
+
assert_nil( @rlc.find_similar_parameter_sets( :unknown))
|
204
|
+
end
|
205
|
+
|
190
206
|
def test_analyze
|
191
207
|
logp = @db_folder+'/Tables/logfile.txt'
|
192
208
|
s1 = File.open(logp,'r').readlines.size
|
data/website/index.html
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
<div class="sidebar">
|
35
35
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/nera"; return false'>
|
36
36
|
<p>Get Version</p>
|
37
|
-
<a href="http://rubyforge.org/projects/nera" class="numbers">0.
|
37
|
+
<a href="http://rubyforge.org/projects/nera" class="numbers">0.6.0</a>
|
38
38
|
</div>
|
39
39
|
</div>
|
40
40
|
<h2>What</h2>
|
data/website/temporary/temp.html
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
<div class="sidebar">
|
35
35
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/nera"; return false'>
|
36
36
|
<p>Get Version</p>
|
37
|
-
<a href="http://rubyforge.org/projects/nera" class="numbers">0.
|
37
|
+
<a href="http://rubyforge.org/projects/nera" class="numbers">0.6.0</a>
|
38
38
|
</div>
|
39
39
|
</div>
|
40
40
|
<p>The database created by nera is a hierarchical database which consists of three layers.<br />
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yohsuke Murase
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-06 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|