This web page discusses the performance of the programs grs1, grs2 and grs3 (available here ) which find all Golomb rulers with n marks and length at most k by exhaustive backtrack search.
Table 1 shows the time on various machines to complete a specific test problem, finding the unique ruler with 13 marks and length 106. See below for instructions on how to run this problem.
| Machine and compiler information | Times (in seconds) | |||||||
|---|---|---|---|---|---|---|---|---|
| model | chip | Mhz | compiler | options | who | grs1 | grs2 | grs3 |
| IBM RS/6000® 44P-170 | 630 | 400 | xlf 8.01 | -O -qarch=pwr3 | jbs | 13.34 | 11.20 | 10.31 |
| IBM RS/6000® 43P-140 | 604e | 332 | xlf 3.02 | -O | jbs | 21.17 | 18.29 | 15.61 |
| IBM SP2® node | 630 | 200 | xlf 5.01 | -O3 -qarch=pwr3 | jbs | 27.47 | 23.61 | 20.94 |
| IBM SP2® node | P2SC | 135 | xlf 6.01 | -O | jbs | 48.17 | 41.80 | 33.86 |
| IBM Intellistation | PIII | 933 | g77 (win) | -O | jbs | 12.96 | 11.65 | 13.32 |
| IBM Aptiva® E34 | AMD K6 | 233 | g77 (win) | -O | jbs | 50.30 | 39.40 | 46.30 |
| IBM Aptiva® E34 | AMD K6 | 233 | g77 (emx) | -O | jbs | 55.83 | 47.30 | 55.66 |
| IBM Thinkpad® 755cx | pentium | 75 | g77 (win) | -O | jbs | 181.21 | 155.17 | 190.12 |
| IBM Thinkpad® 755cx | pentium | 75 | g77 (emx) | -O | jbs | 192.91 | 184.29 | 187.36 |
| IBM S/390® 9672-R66 | G5 | ? | vsf 2.6 | opt(3) | jbs | 49.50 | 50.12 | 58.07 |
| IBM S/390® 9021-9x2 | n/a | 140? | vsf 2.6 | opt(3) | jbs | 98.58 | 84.97 | 105.14 |
The results in table 1 were obtained by:
Table 2 below shows how the solution times vary with problem size. Times are for the grs3 program running on a IBM 43P-140. Relative performance for other cases should be similar to that shown in table 1 above.
| n=marks | k=length | solutions | nodes searched | time(seconds) | nodes/microsecond |
|---|---|---|---|---|---|
| 10 | 55 | 1 | 56265 | .02 | ? |
| 11 | 72 | 2 | 994323 | .29 | 3.43 |
| 12 | 85 | 1 | 2585331 | .85 | 3.04 |
| 13 | 106 | 1 | 49441242 | 15.61 | 3.17 |
| 14 | 127 | 1 | 421952981 | 140.97 | 2.99 |
| 15 | 151 | 1 | 6316962547 | 2140.84 | 2.95 |
In order to run the test you may have to modify the source to use a timing subroutine appropriate for your system. Then compile (you may wish to experiment with optimization options) and start the program. Enter from the terminal (unit 5)
0001300106You should see the following written to the terminal (unit 6). This may take a few hundred seconds on a slow machine. The first two lines will be written first, then the third line a bit later.
0 7 8 17 21 36 47 63 69 81
101 104 106
n= 13 k= 106 solutions= 1 time= xxx.xxxxxx nodes= 49441242.
You can now terminate the program by entering
0At this point there should be a disk file (fortran unit 1) containing the Golomb ruler found. It should look like this:
13 106
0 7 8 17 21 36 47 63 69 81
101 104 106
0 0
(The program grver will independently verify that this is a Golomb
ruler.)
Of course the time output (in seconds) will be system dependent, the rest of the output should be exactly as shown above (or something is wrong).
[
IBM Research home page |
James B. Shearer's home page
]
[
IBM home page |
Order |
Search |
Contact IBM |
Legal
]