equal
deleted
inserted
replaced
187 ".....2.......7...17..3...9.8..7......2.89.6...13..6....9..5.824.....891..........", |
187 ".....2.......7...17..3...9.8..7......2.89.6...13..6....9..5.824.....891..........", |
188 "3...8.......7....51..............36...2..4....7...........6.13..452...........8..", |
188 "3...8.......7....51..............36...2..4....7...........6.13..452...........8..", |
189 "....14....3....2...7..........9...3.6.1.............8.2.....1.4....5.6.....7.8...", |
189 "....14....3....2...7..........9...3.6.1.............8.2.....1.4....5.6.....7.8...", |
190 "4.....8.5.3..........7......2.....6.....8.4......1.......6.3.7.5..2.....1.4......") |
190 "4.....8.5.3..........7......2.....6.....8.4......1.......6.3.7.5..2.....1.4......") |
191 |
191 |
192 //println("108:\n" ++ pretty(hard_games(108).replaceAll("\\.", " ")) ++ "\n") |
|
193 //println("109:\n" ++ pretty(hard_games(109).replaceAll("\\.", " ")) ++ "\n") |
|
194 |
192 |
195 |
193 |
196 // for measuring time |
194 // for measuring time |
197 def time_needed[T](i: Int, code: => T) = { |
195 def time_needed[T](i: Int, code: => T) = { |
198 val start = System.nanoTime() |
196 val start = System.nanoTime() |
201 (end - start) / i / 1.0e9 |
199 (end - start) / i / 1.0e9 |
202 } |
200 } |
203 |
201 |
204 |
202 |
205 val total = |
203 val total = |
206 (for ((game, i) <- hard_games.zipWithIndex) yield { |
204 (for ((game, i) <- hard_games.zipWithIndex.par) yield { |
207 val secs = time_needed(1, search(game)) |
205 val secs = time_needed(1, search(game)) |
208 println(f"${i}%2.0f: ${game} |${secs}%2.3f secs") |
206 println(f"${i}%2.0f: ${game} |${secs}%2.3f secs") |
209 secs |
207 secs |
210 }).sum |
208 }).sum |
211 |
209 |
214 } |
212 } |
215 |
213 |
216 |
214 |
217 |
215 |
218 // 1 single thread version 800 secs |
216 // 1 single thread version 800 secs |
|
217 // |
219 // 4 cores parallel version on a moderate laptop 400 secs |
218 // 4 cores parallel version on a moderate laptop 400 secs |
220 // 8 cores: 290 secs |
219 // 8 cores: 290 secs |
|
220 // 10 cores: 156 secs |
221 // 18 cores: 142 secs |
221 // 18 cores: 142 secs |
222 |
222 |