It's time for some benchmarking

Here are my timing results for f1_nodongle, dmp2mkey v2.5.7.9 and SSP2MK v1.2.

The multi-threading implementation of Git's dmp2mkey and my SSP2MK is completely different and not quite comparable. dmp2mkey uses intervals (eg. thread 1 solves the range 0x80000000-0x8FFFFFFF, thread 2 solves 0x90000000-0x9FFFFFFF, ...) whereas my threads increment a global counter value.

Because of this I've created 5 artificial dongles with completely random algorithm cells for testing purposes (see attachment).

All tests were done on a notebook running an entry-level i7 Q920.

**Real dongles**- 25CF
- f1_nodongle: 313s
- dmp2mkey: 48s
- SSP2MK: 56s

- FEF6 (contains only enhanced algos):
- f1_nodongle: 30s
- dmp2mkey: 60s
- SSP2MK: 21s

- C2A3:
- f1_nodongle: 2s
- dmp2mkey: 2s
- SSP2MK: 1s

- A870:
- f1_nodongle: 3s
- dmp2mkey: 7s
- SSP2MK: 2s

- 2675:
- f1_nodongle: 2s
- dmp2mkey: 3s
- SSP2MK: 1s

**Artificial dongles with 28 random algos**- 8000
- f1_nodongle: 1393s
- dmp2mkey: 456s
- SSP2MK: 251s

- 8001
- f1_nodongle: 1410s
- dmp2mkey: 348s
- SSP2MK: 253s

- 8002
- f1_nodongle: 1324s
- dmp2mkey: 231s
- SSP2MK: 244s

- 8003
- f1_nodongle: 1273s
- dmp2mkey: 313s
- SSP2MK: 229s

- 8004
- f1_nodongle: 901s
- dmp2mkey: 412s
- SSP2MK: 161s

But the most interesting result was an unsolved cell inside dongle 8002

None of the tested solvers were able to compute the algorithm descriptor of cell 40 (see spro8002.reg or sproBAAD.reg).