Looks quite interesting!

I did some tests. Single thread performance is indeed almost identical to LLR64.

However, multithreading doesn't seem to work as expected:

single-threaded:

Code:

time ./rpt 3 234760 1
=== RPT - Riesel Prime Tester v0.0.1 [GWNUM: 29.8 GMP: 6.2.0] ===
LLR testing: 3*2^234760-1 [70671 digits] on 1 threads
step 1. find U0 ...
found V1 [3] using Jacobi Symbols in 0ms
found U0 using Lucas Sequence in 0ms
step 2. LLR test ...
X
LLR took 11946ms
#> 3*2^234760-1 [70671 digits] IS PRIME
real 0m12,006s
user 0m12,932s
sys 0m0,000s

4 threads:

Code:

time ./rpt 3 234760 4
=== RPT - Riesel Prime Tester v0.0.1 [GWNUM: 29.8 GMP: 6.2.0] ===
LLR testing: 3*2^234760-1 [70671 digits] on 4 threads
step 1. find U0 ...
found V1 [3] using Jacobi Symbols in 0ms
found U0 using Lucas Sequence in 1ms
step 2. LLR test ...
X
LLR took 26103ms
#> 3*2^234760-1 [70671 digits] IS PRIME
real 0m26,161s
user 1m6,958s
sys 0m18,038s