Beyond the Baskett benchmark

The Benchmark The benchmark is a computer program established by Forest Baskett and used to compare the execution time of various languages and machines [1]. It is a depth-first, recursive, backtracking tree search algorithm to find a solution to a particular puzzle. It searches the tree in a defined order and stops when it finds the first solution. The power of the language and machine are gauged by how long it takes to find that solution. Because the search algorithm uses operations similar to those in many complicated applications, its ranking of computational power is a reasonable guide for many users. ~.hc__PAtzyA._~ The benchmark uses a block packing puzzle invented by John Conway [2]. A total of 18 pieces fill a cube 5 units on a side. There are thirteen pieces of size 1X 2 X 4, three of 1X 1X 3, one of 1X 2 X 2, and one of 2 X 2 X 2. Each piece may be placed in any orientation. There are 572 distinct solutions; multiplying this by 2 for mirror reflections and by 24 for rotations of the completed puzzle yields 27,456 total solutions. Conway's invention of the puzzle includes an insight about where some of the pieces must go. Without this insight the puzzle is difficult to assemble by hand; with the trick it is realtively easy. Also, solutions exist only for two distinct positions of the small cube; and, once the small cube's position is chosen, the 1X 2 X 2 has a unique position in all solutions. The benchmark does not use Conway's insight or the coincidental constraints, though. Its purpose is to provide a standard of computational effort, so it uses a simple exhaustive search. The benchmark does use one insight: it places a 1X 2 X 4 in the corner during initialization, before the actual search begins. There is no need for this, but it is legitimate. Each of the five pieces of other dimensions can occupy only one corner of the completed puzzle. Since there are eight corners, every solution must have a 1X 2 X 4 in some corner, indeed in at least three.