Timings for CMIOTA
These timings relate to the CMIOTA5 puzzle in the last issue. Unfortunately there was not room to print them in Vector. Ed.
Here are the results of our timings. The numbers identify the best algorithm (e.g. 5 means CMIOTA5).
Best algorithms for APL*PLUS PC
2 Columns |
4 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 9 | 1 | 1 | 1 | 1 | 9 | 9 | 5 | 5 | 5 | |
8 | 1 | 1 | 1 | 1 | 1 | 9 | 7 | 5 | 5 | 5 | |
64 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 10 | 10 | 10 | |
256 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 10 | 10 | 10 | |
2048 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 10 | 10 | 10 |
8 Columns |
16 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 2 | 2 | 2 | 5 | 5 | 9 | 5 | 5 | 5 | 5 | |
8 | 2 | 2 | 2 | 2 | 2 | 4 | 4 | 5 | 5 | 5 | |
64 | 2 | 2 | 2 | 10 | 10 | 4 | 4 | 10 | 10 | 10 | |
256 | 2 | 2 | 10 | 10 | 10 | 4 | 4 | 4 | 10 | 10 | |
2048 | 4 | 4 | 4 | 10 | 10 | 4 | 4 | 4 | 10 | 10 |
Best algorithms for APL*PLUS II
2 Columns |
4 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 9 | 9 | 9 | 9 | 5 | 3 | 3 | 3 | 3 | 3 | |
8 | 9 | 8 | 6 | 6 | 6 | 3 | 3 | 3 | 3 | 3 | |
64 | 8 | 8 | 6 | 6 | 6 | 3 | 3 | 3 | 3 | 3 | |
256 | 4 | 6 | 6 | 6 | 6 | 3 | 3 | 3 | 3 | 3 | |
2048 | 4 | 4 | 6 | 6 | 6 | 3 | 3 | 3 | 3 | 3 |
8 Columns |
16 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 2 | 8 | 9 | 9 | 5 | 9 | 9 | 9 | 9 | 5 | |
8 | 8 | 9 | 9 | 9 | 9 | 8 | 9 | 9 | 9 | 9 | |
64 | 8 | 8 | 10 | 10 | 10 | 8 | 8 | 10 | 10 | 10 | |
256 | 8 | 4 | 10 | 10 | 10 | 4 | 4 | 10 | 10 | 10 | |
2048 | 4 | 4 | 10 | 10 | 10 | 4 | 4 | 10 | 10 | 10 |
Best algorithms for Mainframe APL2
2 Columns |
4 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 8 | 8 | 6 | 6 | 6 | 8 | 8 | 8 | 5 | 5 | |
8 | 9 | 9 | 6 | 6 | 6 | 9 | 9 | 12 | 12 | 7 | |
64 | 9 | 6 | 6 | 6 | 6 | 9 | 9 | 12 | 7 | 7 | |
256 | 9 | 6 | 6 | 6 | 6 | 9 | 12 | 7 | 7 | 7 | |
2048 | 9 | 6 | 6 | 6 | 6 | 9 | 12 | 7 | 7 | 7 |
8 Columns |
16 Columns |
||||||||||
Rows in: |
|||||||||||
Right |
2 | 8 | 64 | 256 | 2048 | 2 | 8 | 64 | 256 | 2048 | |
Left 2 | 8 | 8 | 8 | 5 | 5 | 8 | 8 | 8 | 5 | 5 | |
8 | 9 | 9 | 12 | 12 | 7 | 9 | 8 | 12 | 12 | 12 | |
64 | 9 | 9 | 12 | 7 | 7 | 9 | 8 | 12 | 12 | 12 | |
256 | 9 | 12 | 7 | 7 | 7 | 9 | 12 | 12 | 12 | 12 | |
2048 | 9 | 12 | 7 | 7 | 7 | 9 | 12 | 12 | 12 | 10 |
We should tell you our APL version number, hardware processor size, whether a coprocessor was present, and so on. But we won’t. These parameters are probably different for you. Even if they’re not, we don’t think you should rely on our timings. Frankly, these numbers are not as hard as they look. In some cases, the winning algorithm changed from one test to the next. For such “ties” we chose the algorithm we liked the most, the one that seemed to fit best in the chart. We opted for symmetry and intuitive results rather than a thorough statistical regimen.
So sue us.
The point of these timings is to illustrate the KIND of effects you can expect to see as you vary the size of the arguments and as you move from one implementation of APL to another. Do you own timings if important.
Reprinted with kind permission from Zark APL Tutor News, a quarterly publication of Zark Incorporated, 23 Ketchbrook Lane, Ellington, CT06029, USA