rubykon 0.3.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.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.md +32 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +7 -0
- data/Guardfile +12 -0
- data/LICENSE +22 -0
- data/POSSIBLE_IMPROVEMENTS.md +25 -0
- data/README.md +36 -0
- data/Rakefile +6 -0
- data/benchmark/benchmark.sh +22 -0
- data/benchmark/full_playout.rb +17 -0
- data/benchmark/mcts_avg.rb +23 -0
- data/benchmark/playout.rb +15 -0
- data/benchmark/playout_micros.rb +188 -0
- data/benchmark/profiling/full_playout.rb +7 -0
- data/benchmark/profiling/mcts.rb +6 -0
- data/benchmark/results/HISTORY.md +541 -0
- data/benchmark/scoring.rb +20 -0
- data/benchmark/scoring_micros.rb +60 -0
- data/benchmark/support/benchmark-ips.rb +11 -0
- data/benchmark/support/benchmark-ips_shim.rb +143 -0
- data/benchmark/support/playout_help.rb +13 -0
- data/examples/mcts_laziness.rb +22 -0
- data/exe/rubykon +5 -0
- data/lib/benchmark/avg.rb +14 -0
- data/lib/benchmark/avg/benchmark_suite.rb +59 -0
- data/lib/benchmark/avg/job.rb +92 -0
- data/lib/mcts.rb +11 -0
- data/lib/mcts/examples/double_step.rb +68 -0
- data/lib/mcts/mcts.rb +13 -0
- data/lib/mcts/node.rb +88 -0
- data/lib/mcts/playout.rb +22 -0
- data/lib/mcts/root.rb +49 -0
- data/lib/rubykon.rb +13 -0
- data/lib/rubykon/board.rb +188 -0
- data/lib/rubykon/cli.rb +122 -0
- data/lib/rubykon/exceptions/exceptions.rb +1 -0
- data/lib/rubykon/exceptions/illegal_move_exception.rb +4 -0
- data/lib/rubykon/eye_detector.rb +27 -0
- data/lib/rubykon/game.rb +115 -0
- data/lib/rubykon/game_scorer.rb +62 -0
- data/lib/rubykon/game_state.rb +93 -0
- data/lib/rubykon/group.rb +99 -0
- data/lib/rubykon/group_tracker.rb +144 -0
- data/lib/rubykon/gtp_coordinate_converter.rb +25 -0
- data/lib/rubykon/move_validator.rb +55 -0
- data/lib/rubykon/version.rb +3 -0
- data/rubykon.gemspec +21 -0
- metadata +97 -0
@@ -0,0 +1,541 @@
|
|
1
|
+
## 0.3 (yeez have a look in the logs what changed)
|
2
|
+
|
3
|
+
Benchmarking is anew, with the help of the truffle/graal team a shim for benchmark/ips is in use that doesn't confuse the JIT as much yielding nice results.
|
4
|
+
|
5
|
+
Moreover, a second more macro benchmark is in use that runs a whole actual MCTS with a predefined number of playouts. This is benchmarked using benchmark/avg I wrote to be more suitable for more macro benchmarks. Also it doesn't do anything inbetween warmup and measuring, so it is not confusing truffle as much.
|
6
|
+
|
7
|
+
### Playouts + Scoring
|
8
|
+
|
9
|
+
|
10
|
+
```
|
11
|
+
Running 1.9.3 with
|
12
|
+
Using /home/tobi/.rvm/gems/ruby-1.9.3-p551
|
13
|
+
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]
|
14
|
+
Calculating -------------------------------------
|
15
|
+
9x9 full playout (+ score)
|
16
|
+
24.000 i/100ms
|
17
|
+
13x13 full playout (+ score)
|
18
|
+
10.000 i/100ms
|
19
|
+
19x19 full playout (+ score)
|
20
|
+
4.000 i/100ms
|
21
|
+
-------------------------------------------------
|
22
|
+
9x9 full playout (+ score)
|
23
|
+
252.308 (± 4.8%) i/s - 7.560k
|
24
|
+
13x13 full playout (+ score)
|
25
|
+
107.774 (±11.1%) i/s - 3.190k
|
26
|
+
19x19 full playout (+ score)
|
27
|
+
44.952 (± 8.9%) i/s - 1.344k
|
28
|
+
|
29
|
+
|
30
|
+
Running jruby with
|
31
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.3.0
|
32
|
+
jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa OpenJDK 64-Bit Server VM 25.45-b02 on 1.8.0_45-internal-b14 +jit [linux-amd64]
|
33
|
+
Calculating -------------------------------------
|
34
|
+
9x9 full playout (+ score)
|
35
|
+
38.000 i/100ms
|
36
|
+
13x13 full playout (+ score)
|
37
|
+
17.000 i/100ms
|
38
|
+
19x19 full playout (+ score)
|
39
|
+
7.000 i/100ms
|
40
|
+
-------------------------------------------------
|
41
|
+
9x9 full playout (+ score)
|
42
|
+
405.833 (± 4.9%) i/s - 12.160k
|
43
|
+
13x13 full playout (+ score)
|
44
|
+
181.332 (± 5.5%) i/s - 5.423k
|
45
|
+
19x19 full playout (+ score)
|
46
|
+
73.479 (± 6.8%) i/s - 2.198k
|
47
|
+
|
48
|
+
|
49
|
+
Running rbx-2.5.8 with
|
50
|
+
Using /home/tobi/.rvm/gems/rbx-2.5.8
|
51
|
+
rubinius 2.5.8 (2.1.0 bef51ae3 2015-11-08 3.4.2 JI) [x86_64-linux-gnu]
|
52
|
+
Calculating -------------------------------------
|
53
|
+
9x9 full playout (+ score)
|
54
|
+
18.000 i/100ms
|
55
|
+
13x13 full playout (+ score)
|
56
|
+
9.000 i/100ms
|
57
|
+
19x19 full playout (+ score)
|
58
|
+
4.000 i/100ms
|
59
|
+
-------------------------------------------------
|
60
|
+
9x9 full playout (+ score)
|
61
|
+
199.825 (± 4.0%) i/s - 5.994k
|
62
|
+
13x13 full playout (+ score)
|
63
|
+
92.732 (± 4.3%) i/s - 2.781k
|
64
|
+
19x19 full playout (+ score)
|
65
|
+
40.911 (± 4.9%) i/s - 1.224k
|
66
|
+
|
67
|
+
|
68
|
+
Running jruby-9 with --server -Xcompile.invokedynamic=true -J-Xmx1500m
|
69
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.3.0
|
70
|
+
jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa OpenJDK 64-Bit Server VM 25.45-b02 on 1.8.0_45-internal-b14 +jit [linux-amd64]
|
71
|
+
Calculating -------------------------------------
|
72
|
+
9x9 full playout (+ score)
|
73
|
+
66.000 i/100ms
|
74
|
+
13x13 full playout (+ score)
|
75
|
+
32.000 i/100ms
|
76
|
+
19x19 full playout (+ score)
|
77
|
+
12.000 i/100ms
|
78
|
+
-------------------------------------------------
|
79
|
+
9x9 full playout (+ score)
|
80
|
+
713.264 (± 6.6%) i/s - 21.318k
|
81
|
+
13x13 full playout (+ score)
|
82
|
+
302.691 (±13.2%) i/s - 8.864k
|
83
|
+
19x19 full playout (+ score)
|
84
|
+
121.265 (±14.0%) i/s - 3.540k
|
85
|
+
|
86
|
+
|
87
|
+
Running jruby-1 with
|
88
|
+
Using /home/tobi/.rvm/gems/jruby-1.7.22
|
89
|
+
jruby 1.7.22 (1.9.3p551) 2015-08-20 c28f492 on OpenJDK 64-Bit Server VM 1.8.0_45-internal-b14 +jit [linux-amd64]
|
90
|
+
Calculating -------------------------------------
|
91
|
+
9x9 full playout (+ score)
|
92
|
+
36.000 i/100ms
|
93
|
+
13x13 full playout (+ score)
|
94
|
+
16.000 i/100ms
|
95
|
+
19x19 full playout (+ score)
|
96
|
+
6.000 i/100ms
|
97
|
+
-------------------------------------------------
|
98
|
+
9x9 full playout (+ score)
|
99
|
+
353.815 (±12.7%) i/s - 10.404k
|
100
|
+
13x13 full playout (+ score)
|
101
|
+
163.234 (± 6.7%) i/s - 4.880k
|
102
|
+
19x19 full playout (+ score)
|
103
|
+
63.456 (±15.8%) i/s - 1.842k
|
104
|
+
|
105
|
+
|
106
|
+
Running 2.2 with
|
107
|
+
Using /home/tobi/.rvm/gems/ruby-2.2.3
|
108
|
+
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
|
109
|
+
Calculating -------------------------------------
|
110
|
+
9x9 full playout (+ score)
|
111
|
+
30.000 i/100ms
|
112
|
+
13x13 full playout (+ score)
|
113
|
+
12.000 i/100ms
|
114
|
+
19x19 full playout (+ score)
|
115
|
+
5.000 i/100ms
|
116
|
+
-------------------------------------------------
|
117
|
+
9x9 full playout (+ score)
|
118
|
+
300.910 (± 7.6%) i/s - 8.970k
|
119
|
+
13x13 full playout (+ score)
|
120
|
+
131.262 (±12.2%) i/s - 3.864k
|
121
|
+
19x19 full playout (+ score)
|
122
|
+
55.403 (± 7.2%) i/s - 1.655k
|
123
|
+
|
124
|
+
|
125
|
+
Using /home/tobi/.rvm/gems/ruby-2.2.3 with gemset rubykon
|
126
|
+
Running truffle graal with enough heap space
|
127
|
+
$ JAVACMD=../graalvm-jdk1.8.0/bin/java ../jruby/bin/jruby -X\+T -Xtruffle.core.load_path\=../jruby/truffle/src/main/ruby -r ./.jruby\+truffle_bundle/bundler/setup.rb -e puts\ RUBY_DESCRIPTION
|
128
|
+
jruby 9.0.4.0-SNAPSHOT (2.2.2) 2015-11-08 fd2c179 OpenJDK 64-Bit Server VM 25.40-b25-internal-graal-0.7 on 1.8.0-internal-b132 +jit [linux-amd64]
|
129
|
+
$ JAVACMD=../graalvm-jdk1.8.0/bin/java ../jruby/bin/jruby -X\+T -J-Xmx1500m -Xtruffle.core.load_path\=../jruby/truffle/src/main/ruby -r ./.jruby\+truffle_bundle/bundler/setup.rb benchmark/full_playout.rb
|
130
|
+
Calculating -------------------------------------
|
131
|
+
9x9 full playout (+ score)
|
132
|
+
39.000 i/100ms
|
133
|
+
13x13 full playout (+ score)
|
134
|
+
44.000 i/100ms
|
135
|
+
19x19 full playout (+ score)
|
136
|
+
16.000 i/100ms
|
137
|
+
-------------------------------------------------
|
138
|
+
9x9 full playout (+ score)
|
139
|
+
1.060k (± 16.2%) i/s - 30.654k
|
140
|
+
13x13 full playout (+ score)
|
141
|
+
460.080 (± 17.0%) i/s - 13.332k
|
142
|
+
19x19 full playout (+ score)
|
143
|
+
192.420 (± 14.0%) i/s - 5.632k
|
144
|
+
|
145
|
+
```
|
146
|
+
|
147
|
+
|
148
|
+
### Full MCTS
|
149
|
+
|
150
|
+
|
151
|
+
```
|
152
|
+
Running 1.9.3 with
|
153
|
+
Using /home/tobi/.rvm/gems/ruby-1.9.3-p551
|
154
|
+
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]
|
155
|
+
Running your benchmark...
|
156
|
+
--------------------------------------------------------------------------------
|
157
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
158
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
159
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
160
|
+
Benchmarking finished, here are your reports...
|
161
|
+
|
162
|
+
Warm up results:
|
163
|
+
--------------------------------------------------------------------------------
|
164
|
+
9x9 10_000 iterations 0.97 i/min 61.79 s (avg) (± 6.59%)
|
165
|
+
13x13 2_000 iterations 2.1 i/min 28.6 s (avg) (± 0.92%)
|
166
|
+
19x19 1_000 iterations 1.74 i/min 34.47 s (avg) (± 0.36%)
|
167
|
+
|
168
|
+
Runtime results:
|
169
|
+
--------------------------------------------------------------------------------
|
170
|
+
9x9 10_000 iterations 0.91 i/min 66.29 s (avg) (± 1.85%)
|
171
|
+
13x13 2_000 iterations 2.13 i/min 28.16 s (avg) (± 1.31%)
|
172
|
+
19x19 1_000 iterations 1.61 i/min 37.26 s (avg) (± 2.23%)
|
173
|
+
--------------------------------------------------------------------------------
|
174
|
+
|
175
|
+
|
176
|
+
Running jruby with
|
177
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.3.0
|
178
|
+
jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa OpenJDK 64-Bit Server VM 25.45-b02 on 1.8.0_45-internal-b14 +jit [linux-amd64]
|
179
|
+
Running your benchmark...
|
180
|
+
--------------------------------------------------------------------------------
|
181
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
182
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
183
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
184
|
+
Benchmarking finished, here are your reports...
|
185
|
+
|
186
|
+
Warm up results:
|
187
|
+
--------------------------------------------------------------------------------
|
188
|
+
9x9 10_000 iterations 1.84 i/min 32.63 s (avg) (± 5.13%)
|
189
|
+
13x13 2_000 iterations 4.33 i/min 13.86 s (avg) (± 2.28%)
|
190
|
+
19x19 1_000 iterations 3.62 i/min 16.56 s (avg) (± 5.43%)
|
191
|
+
|
192
|
+
Runtime results:
|
193
|
+
--------------------------------------------------------------------------------
|
194
|
+
9x9 10_000 iterations 1.91 i/min 31.48 s (avg) (± 2.48%)
|
195
|
+
13x13 2_000 iterations 4.33 i/min 13.86 s (avg) (± 4.27%)
|
196
|
+
19x19 1_000 iterations 3.7 i/min 16.23 s (avg) (± 2.48%)
|
197
|
+
--------------------------------------------------------------------------------
|
198
|
+
|
199
|
+
|
200
|
+
Running rbx-2.5.8 with
|
201
|
+
Using /home/tobi/.rvm/gems/rbx-2.5.8
|
202
|
+
rubinius 2.5.8 (2.1.0 bef51ae3 2015-11-08 3.4.2 JI) [x86_64-linux-gnu]
|
203
|
+
Running your benchmark...
|
204
|
+
--------------------------------------------------------------------------------
|
205
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
206
|
+
Finished measuring the run time for 9x9 10_000 iterations
|
207
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
208
|
+
Finished measuring the run time for 13x13 2_000 iterations
|
209
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
210
|
+
Finished measuring the run time for 19x19 1_000 iterations
|
211
|
+
Benchmarking finished, here are your reports...
|
212
|
+
|
213
|
+
Warm up results:
|
214
|
+
--------------------------------------------------------------------------------
|
215
|
+
9x9 10_000 iterations 1.0 i/min 59.76 s (avg) (± 5.83%)
|
216
|
+
13x13 2_000 iterations 2.48 i/min 24.21 s (avg) (± 0.88%)
|
217
|
+
19x19 1_000 iterations 2.12 i/min 28.27 s (avg) (± 1.55%)
|
218
|
+
|
219
|
+
Runtime results:
|
220
|
+
--------------------------------------------------------------------------------
|
221
|
+
9x9 10_000 iterations 1.07 i/min 56.05 s (avg) (± 0.2%)
|
222
|
+
13x13 2_000 iterations 2.48 i/min 24.21 s (avg) (± 0.8%)
|
223
|
+
19x19 1_000 iterations 2.1 i/min 28.52 s (avg) (± 2.59%)
|
224
|
+
--------------------------------------------------------------------------------
|
225
|
+
|
226
|
+
|
227
|
+
Running jruby-9 with --server -Xcompile.invokedynamic=true -J-Xmx1500m
|
228
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.3.0
|
229
|
+
jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa OpenJDK 64-Bit Server VM 25.45-b02 on 1.8.0_45-internal-b14 +jit [linux-amd64]
|
230
|
+
Running your benchmark...
|
231
|
+
--------------------------------------------------------------------------------
|
232
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
233
|
+
Finished measuring the run time for 9x9 10_000 iterations
|
234
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
235
|
+
Finished measuring the run time for 13x13 2_000 iterations
|
236
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
237
|
+
Finished measuring the run time for 19x19 1_000 iterations
|
238
|
+
Benchmarking finished, here are your reports...
|
239
|
+
|
240
|
+
Warm up results:
|
241
|
+
--------------------------------------------------------------------------------
|
242
|
+
9x9 10_000 iterations 3.53 i/min 17.02 s (avg) (± 15.86%)
|
243
|
+
13x13 2_000 iterations 8.59 i/min 6.99 s (avg) (± 1.21%)
|
244
|
+
19x19 1_000 iterations 6.96 i/min 8.62 s (avg) (± 1.65%)
|
245
|
+
|
246
|
+
Runtime results:
|
247
|
+
--------------------------------------------------------------------------------
|
248
|
+
9x9 10_000 iterations 3.77 i/min 15.89 s (avg) (± 1.87%)
|
249
|
+
13x13 2_000 iterations 8.52 i/min 7.04 s (avg) (± 3.46%)
|
250
|
+
19x19 1_000 iterations 7.02 i/min 8.55 s (avg) (± 1.92%)
|
251
|
+
--------------------------------------------------------------------------------
|
252
|
+
|
253
|
+
|
254
|
+
Running jruby-1 with
|
255
|
+
Using /home/tobi/.rvm/gems/jruby-1.7.22
|
256
|
+
jruby 1.7.22 (1.9.3p551) 2015-08-20 c28f492 on OpenJDK 64-Bit Server VM 1.8.0_45-internal-b14 +jit [linux-amd64]
|
257
|
+
Running your benchmark...
|
258
|
+
--------------------------------------------------------------------------------
|
259
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
260
|
+
Finished measuring the run time for 9x9 10_000 iterations
|
261
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
262
|
+
Finished measuring the run time for 13x13 2_000 iterations
|
263
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
264
|
+
Finished measuring the run time for 19x19 1_000 iterations
|
265
|
+
Benchmarking finished, here are your reports...
|
266
|
+
|
267
|
+
Warm up results:
|
268
|
+
--------------------------------------------------------------------------------
|
269
|
+
9x9 10_000 iterations 1.97 i/min 30.51 s (avg) (± 3.66%)
|
270
|
+
13x13 2_000 iterations 4.55 i/min 13.18 s (avg) (± 3.45%)
|
271
|
+
19x19 1_000 iterations 3.87 i/min 15.52 s (avg) (± 1.04%)
|
272
|
+
|
273
|
+
Runtime results:
|
274
|
+
--------------------------------------------------------------------------------
|
275
|
+
9x9 10_000 iterations 2.05 i/min 29.32 s (avg) (± 1.21%)
|
276
|
+
13x13 2_000 iterations 4.57 i/min 13.13 s (avg) (± 2.73%)
|
277
|
+
19x19 1_000 iterations 3.94 i/min 15.23 s (avg) (± 1.61%)
|
278
|
+
--------------------------------------------------------------------------------
|
279
|
+
|
280
|
+
|
281
|
+
Running 2.2 with
|
282
|
+
Using /home/tobi/.rvm/gems/ruby-2.2.3
|
283
|
+
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
|
284
|
+
Running your benchmark...
|
285
|
+
--------------------------------------------------------------------------------
|
286
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
287
|
+
Finished measuring the run time for 9x9 10_000 iterations
|
288
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
289
|
+
Finished measuring the run time for 13x13 2_000 iterations
|
290
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
291
|
+
Finished measuring the run time for 19x19 1_000 iterations
|
292
|
+
Benchmarking finished, here are your reports...
|
293
|
+
|
294
|
+
Warm up results:
|
295
|
+
--------------------------------------------------------------------------------
|
296
|
+
9x9 10_000 iterations 1.50 i/min 40.04 s (avg) (± 0.83%)
|
297
|
+
13x13 2_000 iterations 3.35 i/min 17.90 s (avg) (± 1.65%)
|
298
|
+
19x19 1_000 iterations 2.71 i/min 22.15 s (avg) (± 0.37%)
|
299
|
+
|
300
|
+
Runtime results:
|
301
|
+
--------------------------------------------------------------------------------
|
302
|
+
9x9 10_000 iterations 1.47 i/min 40.68 s (avg) (± 2.28%)
|
303
|
+
13x13 2_000 iterations 3.29 i/min 18.21 s (avg) (± 0.44%)
|
304
|
+
19x19 1_000 iterations 2.72 i/min 22.09 s (avg) (± 1.05%)
|
305
|
+
--------------------------------------------------------------------------------
|
306
|
+
|
307
|
+
|
308
|
+
Running truffle graal with enough heap space
|
309
|
+
$ JAVACMD=../graalvm-jdk1.8.0/bin/java ../jruby/bin/jruby -X\+T -Xtruffle.core.load_path\=../jruby/truffle/src/main/ruby -r ./.jruby\+truffle_bundle/bundler/setup.rb -e puts\ RUBY_DESCRIPTION
|
310
|
+
jruby 9.0.4.0-SNAPSHOT (2.2.2) 2015-11-08 fd2c179 OpenJDK 64-Bit Server VM 25.40-b25-internal-graal-0.7 on 1.8.0-internal-b132 +jit [linux-amd64]
|
311
|
+
$ JAVACMD=../graalvm-jdk1.8.0/bin/java ../jruby/bin/jruby -X\+T -J-Xmx1500m -Xtruffle.core.load_path\=../jruby/truffle/src/main/ruby -r ./.jruby\+truffle_bundle/bundler/setup.rb benchmark/mcts_avg.rb
|
312
|
+
Running your benchmark...
|
313
|
+
--------------------------------------------------------------------------------
|
314
|
+
Finished warm up for 9x9 10_000 iterations, running the real bechmarks now
|
315
|
+
Finished measuring the run time for 9x9 10_000 iterations
|
316
|
+
Finished warm up for 13x13 2_000 iterations, running the real bechmarks now
|
317
|
+
Finished measuring the run time for 13x13 2_000 iterations
|
318
|
+
Finished warm up for 19x19 1_000 iterations, running the real bechmarks now
|
319
|
+
Finished measuring the run time for 19x19 1_000 iterations
|
320
|
+
Benchmarking finished, here are your reports...
|
321
|
+
|
322
|
+
Warm up results:
|
323
|
+
--------------------------------------------------------------------------------
|
324
|
+
9x9 10_000 iterations 1.88 i/min 31.86 s (avg) (± 94.52%)
|
325
|
+
13x13 2_000 iterations 3.96 i/min 15.14 s (avg) (± 159.39%)
|
326
|
+
19x19 1_000 iterations 9.65 i/min 6.22 s (avg) (± 10.24%)
|
327
|
+
|
328
|
+
Runtime results:
|
329
|
+
--------------------------------------------------------------------------------
|
330
|
+
9x9 10_000 iterations 5.04 i/min 11.90 s (avg) (± 7.95%)
|
331
|
+
13x13 2_000 iterations 13.86 i/min 4.33 s (avg) (± 15.73%)
|
332
|
+
19x19 1_000 iterations 9.49 i/min 6.32 s (avg) (± 8.33%)
|
333
|
+
--------------------------------------------------------------------------------
|
334
|
+
```
|
335
|
+
|
336
|
+
|
337
|
+
## 0.2 (Simplified board representation)
|
338
|
+
|
339
|
+
Notable is that these changes weren't done for performance reasons apparent in these benchmarks, as benchmark-ips does run GC so the lack of GC runs should not affect it. Maybe the benefit of creating less objects.
|
340
|
+
|
341
|
+
Some ruby versions showed no notable differences (rbx, jruby 9k) while others (CRuby, jruby 1.7) showed nice gains. On 19x19 CRuby 2.2.3 went 25 --> 34, jruby 1.7 went 43 --> 54.
|
342
|
+
|
343
|
+
```
|
344
|
+
Running rbx with
|
345
|
+
Using /home/tobi/.rvm/gems/rbx-2.5.2
|
346
|
+
Calculating -------------------------------------
|
347
|
+
9x9 full playout (+ score)
|
348
|
+
7.000 i/100ms
|
349
|
+
13x13 full playout (+ score)
|
350
|
+
4.000 i/100ms
|
351
|
+
19x19 full playout (+ score)
|
352
|
+
1.000 i/100ms
|
353
|
+
-------------------------------------------------
|
354
|
+
9x9 full playout (+ score)
|
355
|
+
117.110 (± 7.7%) i/s - 2.331k
|
356
|
+
13x13 full playout (+ score)
|
357
|
+
53.714 (± 7.4%) i/s - 1.068k
|
358
|
+
19x19 full playout (+ score)
|
359
|
+
23.817 (±12.6%) i/s - 467.000
|
360
|
+
Running 1.9.3 with
|
361
|
+
Using /home/tobi/.rvm/gems/ruby-1.9.3-p551
|
362
|
+
Calculating -------------------------------------
|
363
|
+
9x9 full playout (+ score)
|
364
|
+
15.000 i/100ms
|
365
|
+
13x13 full playout (+ score)
|
366
|
+
6.000 i/100ms
|
367
|
+
19x19 full playout (+ score)
|
368
|
+
2.000 i/100ms
|
369
|
+
-------------------------------------------------
|
370
|
+
9x9 full playout (+ score)
|
371
|
+
149.826 (± 6.0%) i/s - 3.000k
|
372
|
+
13x13 full playout (+ score)
|
373
|
+
66.382 (± 9.0%) i/s - 1.320k
|
374
|
+
19x19 full playout (+ score)
|
375
|
+
28.114 (±10.7%) i/s - 554.000
|
376
|
+
Running jruby-dev-graal with -X+T -J-Xmx1500m
|
377
|
+
Using /home/tobi/.rvm/gems/jruby-dev-graal
|
378
|
+
Calculating -------------------------------------
|
379
|
+
9x9 full playout (+ score)
|
380
|
+
1.000 i/100ms
|
381
|
+
13x13 full playout (+ score)
|
382
|
+
1.000 i/100ms
|
383
|
+
19x19 full playout (+ score)
|
384
|
+
1.000 i/100ms
|
385
|
+
Calculating -------------------------------------
|
386
|
+
9x9 full playout (+ score)
|
387
|
+
9.828 (± 40.7%) i/s - 158.000
|
388
|
+
13x13 full playout (+ score)
|
389
|
+
4.046 (± 24.7%) i/s - 70.000
|
390
|
+
19x19 full playout (+ score)
|
391
|
+
5.289 (± 37.8%) i/s - 87.000
|
392
|
+
Running jruby with
|
393
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.1.0
|
394
|
+
Calculating -------------------------------------
|
395
|
+
9x9 full playout (+ score)
|
396
|
+
11.000 i/100ms
|
397
|
+
13x13 full playout (+ score)
|
398
|
+
10.000 i/100ms
|
399
|
+
19x19 full playout (+ score)
|
400
|
+
4.000 i/100ms
|
401
|
+
-------------------------------------------------
|
402
|
+
9x9 full playout (+ score)
|
403
|
+
243.322 (± 7.8%) i/s - 4.829k
|
404
|
+
13x13 full playout (+ score)
|
405
|
+
105.500 (± 6.6%) i/s - 2.100k
|
406
|
+
19x19 full playout (+ score)
|
407
|
+
45.046 (± 8.9%) i/s - 896.000
|
408
|
+
Running jruby-1 with
|
409
|
+
Using /home/tobi/.rvm/gems/jruby-1.7.22
|
410
|
+
Calculating -------------------------------------
|
411
|
+
9x9 full playout (+ score)
|
412
|
+
14.000 i/100ms
|
413
|
+
13x13 full playout (+ score)
|
414
|
+
12.000 i/100ms
|
415
|
+
19x19 full playout (+ score)
|
416
|
+
5.000 i/100ms
|
417
|
+
-------------------------------------------------
|
418
|
+
9x9 full playout (+ score)
|
419
|
+
279.079 (±11.8%) i/s - 5.488k
|
420
|
+
13x13 full playout (+ score)
|
421
|
+
128.978 (± 7.0%) i/s - 2.568k
|
422
|
+
19x19 full playout (+ score)
|
423
|
+
54.526 (± 9.2%) i/s - 1.085k
|
424
|
+
Running 2.2 with
|
425
|
+
Using /home/tobi/.rvm/gems/ruby-2.2.3
|
426
|
+
Calculating -------------------------------------
|
427
|
+
9x9 full playout (+ score)
|
428
|
+
18.000 i/100ms
|
429
|
+
13x13 full playout (+ score)
|
430
|
+
8.000 i/100ms
|
431
|
+
19x19 full playout (+ score)
|
432
|
+
3.000 i/100ms
|
433
|
+
-------------------------------------------------
|
434
|
+
9x9 full playout (+ score)
|
435
|
+
183.983 (± 4.9%) i/s - 3.672k
|
436
|
+
13x13 full playout (+ score)
|
437
|
+
80.525 (± 6.2%) i/s - 1.608k
|
438
|
+
19x19 full playout (+ score)
|
439
|
+
34.117 (± 8.8%) i/s - 678.000
|
440
|
+
```
|
441
|
+
|
442
|
+
## 0.1 (first really naive implementation)
|
443
|
+
|
444
|
+
```
|
445
|
+
Running rbx with
|
446
|
+
Using /home/tobi/.rvm/gems/rbx-2.5.2
|
447
|
+
Calculating -------------------------------------
|
448
|
+
9x9 full playout (+ score)
|
449
|
+
4.000 i/100ms
|
450
|
+
13x13 full playout (+ score)
|
451
|
+
3.000 i/100ms
|
452
|
+
19x19 full playout (+ score)
|
453
|
+
1.000 i/100ms
|
454
|
+
-------------------------------------------------
|
455
|
+
9x9 full playout (+ score)
|
456
|
+
112.237 (±11.6%) i/s - 2.212k
|
457
|
+
13x13 full playout (+ score)
|
458
|
+
52.475 (± 9.5%) i/s - 1.041k
|
459
|
+
19x19 full playout (+ score)
|
460
|
+
22.600 (±13.3%) i/s - 442.000
|
461
|
+
Running 1.9.3 with
|
462
|
+
Using /home/tobi/.rvm/gems/ruby-1.9.3-p551
|
463
|
+
Calculating -------------------------------------
|
464
|
+
9x9 full playout (+ score)
|
465
|
+
10.000 i/100ms
|
466
|
+
13x13 full playout (+ score)
|
467
|
+
4.000 i/100ms
|
468
|
+
19x19 full playout (+ score)
|
469
|
+
2.000 i/100ms
|
470
|
+
-------------------------------------------------
|
471
|
+
9x9 full playout (+ score)
|
472
|
+
111.529 (± 8.1%) i/s - 2.220k
|
473
|
+
13x13 full playout (+ score)
|
474
|
+
48.059 (±10.4%) i/s - 952.000
|
475
|
+
19x19 full playout (+ score)
|
476
|
+
19.788 (±15.2%) i/s - 390.000
|
477
|
+
Running jruby-dev-graal with -X+T -J-Xmx1500m
|
478
|
+
Using /home/tobi/.rvm/gems/jruby-dev-graal
|
479
|
+
Calculating -------------------------------------
|
480
|
+
9x9 full playout (+ score)
|
481
|
+
1.000 i/100ms
|
482
|
+
13x13 full playout (+ score)
|
483
|
+
1.000 i/100ms
|
484
|
+
19x19 full playout (+ score)
|
485
|
+
1.000 i/100ms
|
486
|
+
Calculating -------------------------------------
|
487
|
+
9x9 full playout (+ score)
|
488
|
+
5.787 (± 34.6%) i/s - 102.000
|
489
|
+
13x13 full playout (+ score)
|
490
|
+
3.598 (± 27.8%) i/s - 67.000
|
491
|
+
19x19 full playout (+ score)
|
492
|
+
1.849 (± 0.0%) i/s - 36.000
|
493
|
+
Running jruby with
|
494
|
+
Using /home/tobi/.rvm/gems/jruby-9.0.1.0
|
495
|
+
Calculating -------------------------------------
|
496
|
+
9x9 full playout (+ score)
|
497
|
+
9.000 i/100ms
|
498
|
+
13x13 full playout (+ score)
|
499
|
+
10.000 i/100ms
|
500
|
+
19x19 full playout (+ score)
|
501
|
+
4.000 i/100ms
|
502
|
+
-------------------------------------------------
|
503
|
+
9x9 full playout (+ score)
|
504
|
+
237.441 (±11.0%) i/s - 4.680k
|
505
|
+
13x13 full playout (+ score)
|
506
|
+
105.639 (± 9.5%) i/s - 2.090k
|
507
|
+
19x19 full playout (+ score)
|
508
|
+
44.741 (±11.2%) i/s - 884.000
|
509
|
+
Running jruby-1 with
|
510
|
+
Using /home/tobi/.rvm/gems/jruby-1.7.22
|
511
|
+
Calculating -------------------------------------
|
512
|
+
9x9 full playout (+ score)
|
513
|
+
11.000 i/100ms
|
514
|
+
13x13 full playout (+ score)
|
515
|
+
9.000 i/100ms
|
516
|
+
19x19 full playout (+ score)
|
517
|
+
4.000 i/100ms
|
518
|
+
-------------------------------------------------
|
519
|
+
9x9 full playout (+ score)
|
520
|
+
224.768 (±15.6%) i/s - 4.356k
|
521
|
+
13x13 full playout (+ score)
|
522
|
+
105.326 (± 7.6%) i/s - 2.097k
|
523
|
+
19x19 full playout (+ score)
|
524
|
+
43.576 (±11.5%) i/s - 864.000
|
525
|
+
Running 2.2 with
|
526
|
+
Using /home/tobi/.rvm/gems/ruby-2.2.3
|
527
|
+
Calculating -------------------------------------
|
528
|
+
9x9 full playout (+ score)
|
529
|
+
14.000 i/100ms
|
530
|
+
13x13 full playout (+ score)
|
531
|
+
6.000 i/100ms
|
532
|
+
19x19 full playout (+ score)
|
533
|
+
2.000 i/100ms
|
534
|
+
-------------------------------------------------
|
535
|
+
9x9 full playout (+ score)
|
536
|
+
139.838 (± 6.4%) i/s - 2.786k
|
537
|
+
13x13 full playout (+ score)
|
538
|
+
60.935 (± 8.2%) i/s - 1.212k
|
539
|
+
19x19 full playout (+ score)
|
540
|
+
25.423 (±11.8%) i/s - 502.000
|
541
|
+
```
|