Comparison between reported performance of GapMiner on CRT mining at a shift of 512 with a varying number of threads devoted to Fermat tests of primality of the gap list contents, as described by j0nn9 in announcing Gapminer mining with the Chinese Remainder Theorem (CRT):
Mining with the CRT is split into sieve and primality testing using separate threads for each.
Setting the parameters
--threads 4 --fermat-threads 1
means: use 3 sieve threads and 1 gap scan thread.The scan threads always pick the most promising gap from the gaplist, therefore the gaplist value should always be at least over 100, but a too high gaplist value can slow down mining, (for example over 9000). You can alter
--sieve-primes
,--threads
or--fermat-threads
to achieve this.
Tests are of increasing values of --fermatthreads
from 1 to 3 where total threads is 4. In order to keep the size of the gaplist within the recommended bounds, the value of --sieve-primes
is adjusted according to the selected value of --fermat-threads
.
(Advice posted to the bitcointalk thread recommends that the optimum value for -d
is “the number of threads minus one”. See the “Focussed comparison test of CRT f=512” for confirmation of this recommendation.)
Column labels map directly to miner output: pps
is average primes per second, tps
is average tests per second, gps
is average gaps per second, glst
is the size of the gaplist and l/s
is the time in seconds to scan the gaplist at the reported rate of gaps per second.
t4-d1-i720000-22m-crt0512
measure | pps | tps | gps | glst | bpc | l/s |
---|---|---|---|---|---|---|
mean | 1040689 | 541175 | 106 | 3672 | 0.59 | 34.50 |
max | 2145069 | 1065529 | 130 | 10544 | 1.16 | 81.11 |
min | 993910 | 5535 | 105 | 112 | 0.01 | 1.07 |
std | 104575 | 308565 | 2 | 2725 | 0.34 | 1147.38 |
t4-d2-i120000-22m-crt0512
measure | pps | tps | gps | glst | bpc | l/s |
---|---|---|---|---|---|---|
mean | 2183195 | 1463491 | 285 | 1804 | 0.65 | 6.32 |
max | 3826268 | 2874007 | 354 | 5585 | 1.49 | 15.78 |
min | 2119943 | 11716 | 280 | 10 | 0.01 | 0.04 |
std | 168763 | 830941 | 9 | 1375 | 0.40 | 159.63 |
t4-d3-i115000-22m-crt0512
measure | pps | tps | gps | glst | bpc | l/s |
---|---|---|---|---|---|---|
mean | 2232791 | 1454262 | 285 | 2755 | 1.29 | 9.65 |
max | 3600458 | 2845990 | 342 | 7581 | 2.51 | 22.17 |
min | 2133573 | 12110 | 278 | 102 | 0.01 | 0.37 |
std | 143957 | 815918 | 9 | 2080 | 0.72 | 221.59 |
t4-d1-i13000-22m-crt0512
measure | pps | tps | gps | glst | bpc | l/s |
---|---|---|---|---|---|---|
mean | 904401 | 92297 | 37 | 259672 | 0.49 | 6970.83 |
max | 1123260 | 183486 | 44 | 744146 | 0.96 | 16912.41 |
min | 882441 | 1148 | 36 | 3299 | 0.00 | 91.64 |
std | 30035 | 52192 | 1 | 194535 | 0.28 | 204349.55 |
The charts included below are for completeness. The figures given are the means and they differ from the means in the above table because, in order to support the different requirements of charting, the first 1/5th of the data is ignored in order to aid visual comparison. The chartline uses the full dataset.
(The last-included chart: -t 4 -d1 -i 13000 -r 22m-crt0512
, is something of a worst-case example and illustrates the penalty of selecting a highly sub-optimal value for --sieve-primes
, 13000 in this instance, resulting in a large gap list taking a relatively long time to scan, reducing performance significantly.)
Replication:
gapminer -o localhost -p 31397 -u $USER -x $USERPASS -e -j 5 -t 4 -d 1 -f 512 -i [as-discovered] -r crt/crt-22m-0512s.txt
gapminer -o localhost -p 31397 -u $USER -x $USERPASS -e -j 5 -t 4 -d 2 -f 512 -i [as-discovered] -r crt/crt-22m-0512s.txt
gapminer -o localhost -p 31397 -u $USER -x $USERPASS -e -j 5 -t 4 -d 3 -f 512 -i [as-discovered] -r crt/crt-22m-0512s.txt