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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +11 -0
  6. data/CHANGELOG.md +32 -0
  7. data/CODE_OF_CONDUCT.md +13 -0
  8. data/Gemfile +7 -0
  9. data/Guardfile +12 -0
  10. data/LICENSE +22 -0
  11. data/POSSIBLE_IMPROVEMENTS.md +25 -0
  12. data/README.md +36 -0
  13. data/Rakefile +6 -0
  14. data/benchmark/benchmark.sh +22 -0
  15. data/benchmark/full_playout.rb +17 -0
  16. data/benchmark/mcts_avg.rb +23 -0
  17. data/benchmark/playout.rb +15 -0
  18. data/benchmark/playout_micros.rb +188 -0
  19. data/benchmark/profiling/full_playout.rb +7 -0
  20. data/benchmark/profiling/mcts.rb +6 -0
  21. data/benchmark/results/HISTORY.md +541 -0
  22. data/benchmark/scoring.rb +20 -0
  23. data/benchmark/scoring_micros.rb +60 -0
  24. data/benchmark/support/benchmark-ips.rb +11 -0
  25. data/benchmark/support/benchmark-ips_shim.rb +143 -0
  26. data/benchmark/support/playout_help.rb +13 -0
  27. data/examples/mcts_laziness.rb +22 -0
  28. data/exe/rubykon +5 -0
  29. data/lib/benchmark/avg.rb +14 -0
  30. data/lib/benchmark/avg/benchmark_suite.rb +59 -0
  31. data/lib/benchmark/avg/job.rb +92 -0
  32. data/lib/mcts.rb +11 -0
  33. data/lib/mcts/examples/double_step.rb +68 -0
  34. data/lib/mcts/mcts.rb +13 -0
  35. data/lib/mcts/node.rb +88 -0
  36. data/lib/mcts/playout.rb +22 -0
  37. data/lib/mcts/root.rb +49 -0
  38. data/lib/rubykon.rb +13 -0
  39. data/lib/rubykon/board.rb +188 -0
  40. data/lib/rubykon/cli.rb +122 -0
  41. data/lib/rubykon/exceptions/exceptions.rb +1 -0
  42. data/lib/rubykon/exceptions/illegal_move_exception.rb +4 -0
  43. data/lib/rubykon/eye_detector.rb +27 -0
  44. data/lib/rubykon/game.rb +115 -0
  45. data/lib/rubykon/game_scorer.rb +62 -0
  46. data/lib/rubykon/game_state.rb +93 -0
  47. data/lib/rubykon/group.rb +99 -0
  48. data/lib/rubykon/group_tracker.rb +144 -0
  49. data/lib/rubykon/gtp_coordinate_converter.rb +25 -0
  50. data/lib/rubykon/move_validator.rb +55 -0
  51. data/lib/rubykon/version.rb +3 -0
  52. data/rubykon.gemspec +21 -0
  53. metadata +97 -0
@@ -0,0 +1,7 @@
1
+ # a simple script doing a full playout to use it with profiling tools
2
+
3
+ require_relative '../../lib/rubykon/'
4
+
5
+ game = Rubykon::Game.new
6
+ playouter = Rubykon::RandomPlayout.new
7
+ p playouter.play(game)
@@ -0,0 +1,6 @@
1
+ require_relative '../../lib/rubykon'
2
+
3
+ game_state = Rubykon::GameState.new
4
+ mcts = MCTS::MCTS.new
5
+
6
+ mcts.start game_state, 200
@@ -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
+ ```