benbotto / rubiks-cube-cracker

An OpenGL Rubik's Cube implementation with an optimal solver. Written in C++.
198 stars 28 forks source link

Hardware behind timings #2

Closed christopherburke closed 3 years ago

christopherburke commented 3 years ago

Not an issue, but I was curious what hardware was used in the timings for solving cubes that you report on the readme?
I am also the one that has been posting on the medium blog about this code asking for some help. I am grateful for your advice as it helped me get a python/cython version to come together and work. With a single core on Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz I was able to solve the 17 turn example in 2 hrs (~3 times slower than your 0.6 hr time to solve). I am working on notes and posting to github. I implemented a parallelized version where the DFS solution is explored starting from a batch of configurations after the first two turns. On the same system using 30 cores I was able to solve the problem in 8 min. Thank you again for taking the time to write up your blog piece, I learned so much from it and it kept me distracted from 2020.

benbotto commented 3 years ago

Hi @christopherburke. The solves were done on an older CPU--an Intel Core i7-2600K Sandy Bridge Quad-Core 3.4GHz--with 8GB of DDR3 2133 RAM.

My program uses some threading, but the solvers are both single-threaded. I thought about implementing a parallelized version, but never got around to it. I actually wanted to implement a parallel version of minimax for a chess program, which also uses IDDFS, but I digress. Anyway, drop me a line when you have your version pushed up to GH. I'd love to see it in action!

Also, I'm glad that my article on Medium helped out!

christopherburke commented 3 years ago

Got the codes commented and notes written up on Github https://github.com/christopherburke/rubik_opt Thanks @benbotto !