mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Software (https://www.mersenneforum.org/forumdisplay.php?f=10)
-   -   mtsieve (https://www.mersenneforum.org/showthread.php?t=23042)

pepi37 2019-08-18 15:42

[QUOTE=rogue;523869]If you use one of these commands: "make twinsieve", "make srsieve2", or
"make xyyxsieve", what happens?[/QUOTE]

make twinsieve works ok and produce twinsieve, and also xyyxsieve



make srsieve2


make srsieve2
make: *** No rule to make target 'sierpinksi_riesel/SierpinskiRieselApp.o', needed by 'srsieve2'. Stop.

Dylan14 2019-08-18 17:21

[QUOTE=Dylan14;523870]Not sure if this is a bug or not, but I am trying to sieve the gap


[CODE]n 4900-4999 7e8-10e8[/CODE]in gfndsieve for someone to test for the FermatSearch. However, it seems that gfndsieve is having a bit of trouble with this range:

(some output involving term numbers not matching)
[/QUOTE]


I figured the problem out. The sieve has to start as a single thread process and then after the initial sieve is done, then multiple threads can be used.

rogue 2019-08-18 19:55

[QUOTE=pepi37;523872]make twinsieve works ok and produce twinsieve, and also xyyxsieve



make srsieve2


make srsieve2
make: *** No rule to make target 'sierpinksi_riesel/SierpinskiRieselApp.o', needed by 'srsieve2'. Stop.[/QUOTE]

Sorry, but that is due to a misspelling in the path. I correctly the misspelling of the folder name, but didn't save the change to the makefile. It should be "sierpinski_riesel" not "sierpinksi_riesel" in the makefile. Fix that and you should be able to build.

rogue 2019-08-18 19:56

[QUOTE=Dylan14;523877]I figured the problem out. The sieve has to start as a single thread process and then after the initial sieve is done, then multiple threads can be used.[/QUOTE]

A number of sieves, due to the high percentage of terms removed with the initial block of primes, only run a single thread for that block an in effort to avoid some of of the throttling that occurs when multiple threads try to access the same memory.

To get to multiple threads more quickly, use -w to specify smaller chunks of primes.

rogue 2019-08-29 01:56

I posted version 1.9.5 of the framework. The only change is that I fixed the factor rate calculation.

ET_ 2019-08-29 11:22

[QUOTE=rogue;524767]I posted version 1.9.5 of the framework. The only change is that I fixed the factor rate calculation.[/QUOTE]

I ran make and found:

#include "CIsOneSubsequenceHelper.h" - the correct file name is CisOneSubsequenceHelper.h

dm_divisor/DMDivisorApp.cpp
gfn_divisor/GFNDivisorApp.cpp
fixed_bnc/FixedBNCApp.cpp
fixed_kbn/FixedKBNApp.cpp
kbb/KBBApp.cpp
sierpinski_riesel/SierpinskiRieselApp.cpp
twin/TwinApp.cpp
ALL have wrong permissions (I had to chmod 666 to them)

core/../opencl/Device.h:19:13: fatal error: CL/cl.h: File or directory not existing
And setting ENABLE_GPU=no does not work either.

Luigi

rogue 2019-08-29 13:38

[QUOTE=ET_;524782]I ran make and found:

#include "CIsOneSubsequenceHelper.h" - the correct file name is CisOneSubsequenceHelper.h

dm_divisor/DMDivisorApp.cpp
gfn_divisor/GFNDivisorApp.cpp
fixed_bnc/FixedBNCApp.cpp
fixed_kbn/FixedKBNApp.cpp
kbb/KBBApp.cpp
sierpinski_riesel/SierpinskiRieselApp.cpp
twin/TwinApp.cpp
ALL have wrong permissions (I had to chmod 666 to them)

core/../opencl/Device.h:19:13: fatal error: CL/cl.h: File or directory not existing
And setting ENABLE_GPU=no does not work either.

Luigi[/QUOTE]

I'll fix that spelling. Windows doesn't care but OS X and Linux do.

Since the .7z file is created on Windows, I don't know how its permissions correspond to permissions on Linux.

The ENABLE_GPU flag is removed from the makefile. If you have a GPU, then you will need to install an OpenCL SDK. You also might need to modify the GPUCPPFLAGS and GPULDFLAGS in the makefile.

If you do not have a GPU, then use "make cpu_all". It will no build the OpenCL versions of the exes.

Happy5214 2019-08-31 03:31

[QUOTE=rebirther;523871][CODE]n:\riesel-base537 - Kopie>srsieve2 -n2501 -N10000 -P1e9 -spl_remain.txt -fB
srsieve2 v1.1, a program to find factors of k*b^n+c numbers for fixed b and vari
able k and n
Fatal Error: srsieve2: invalid argument -f B[/CODE][/QUOTE]

That's because 'B' is missing from line 114 of SierpinskiRieselApp.cpp:

[CODE]status = Parser::Parse(arg, "ADP", value);[/CODE]

Is base 2 one of the slow bases for srsieve2? I tested 1467763*2^n-1, with n between 1.2e6 and 1.3e6, to P=1e9. srsieve took about [COLOR="Red"]141 seconds[/COLOR]. Here's the srsieve2 output:

[QUOTE]srsieve2 v1.1, a program to find factors of k*b^n+c numbers for fixed b and variable k and n
Sieving with generic logic
Sieve started: 2 < p < 1e9 with 100001 terms (1200000 < n < 1300000, k*2^n+c) (expecting 96656 factors)
Sieving with generic logic
Sieving with generic logic
p=868205083, 244.8K p/sec, 96449 factors found at 1.884 f/sec, 86.8% done. ETC 2019-08-30 22:02
Sieve completed at p=1000000009.
Processor time: 207.48 sec. (0.64 sieving) (1.00 cores)
3534 terms written to b2_n.abcd
Primes tested: 49847480. Factors found: 96467. Remaining terms: 3534. Time: [COLOR=red]208.32 seconds[/COLOR].[/QUOTE]

Multiple threads did yield much better results.

Happy5214 2019-08-31 03:33

Also, in the same file, lines 528 and 530 should have newlines at the ends of the format strings. Right now, the first term is printed on the same line as the BOINC header.

rogue 2019-09-01 13:44

[QUOTE=Happy5214;524883]That's because 'B' is missing from line 114 of SierpinskiRieselApp.cpp:

[CODE]status = Parser::Parse(arg, "ADP", value);[/CODE]

Is base 2 one of the slow bases for srsieve2? I tested 1467763*2^n-1, with n between 1.2e6 and 1.3e6, to P=1e9. srsieve took about [COLOR="Red"]141 seconds[/COLOR].[/QUOTE]

I'll add the missing 'B' and newlines

I have no explanation at this time for the time difference between the two. I suspect is has to do with cache hits and misses because they use the same logic, albeit implemented slightly differently. srsieve2 uses vector<bool> while srsieve uses a bitmap. vector<bool> uses a byte per bit, so that could be the reason. I could play around with changing that to see the impact.

BTW, here are the results on my lnew 6-core l7 laptop:

[code]
srsieve -n1200000 -N1300000 -P1e9 1467763*2^^n-1
srsieve 1.1.4 -- A sieve for integer sequences in n of the form k*b^n+c.
srsieve started: 1200000 <= n <= 1300000, 3 <= p <= 1000000000
Split 1 base 2 sequence into 1 base 2^4 subsequence.
p=557271703, 9296228 p/sec, 96371 terms eliminated, 3630 remain
Sieving 3 <= p <= 1000000000 eliminated 96467 terms, 3534 remain.
Wrote 3534 terms for 1 sequence to srsieve format file `srsieve.out'.
srsieve stopped: at p=1000000000 because --pmax was reached.
Processor time: [COLOR="Red"]104.00[/COLOR] sec

srsieve2 -n1200000 -N1300000 -P1e9 -s1467763*2^^n-1
srsieve2 v1.1, a program to find factors of k*b^n+c numbers for fixed b and variable k and n
Sieving with generic logic
Sieve started: 2 < p < 1e9 with 100001 terms (1200000 < n < 1300000, k*2^n+c) (expecting 96656 factors)
Sieving with generic logic
Sieving with generic logic
p=502635611, 419.7K p/sec, 96350 factors found at 1.612K f/sec, 50.3% done. ETC 2019-09-01 08:59
Sieve completed at p=1000000009.
Processor time: 114.41 sec. (0.28 sieving) (0.98 cores)
3534 terms written to b2_n.abcd
Primes tested: 49847480. Factors found: 96467. Remaining terms: 3534. Time: [COLOR="red"]116.21[/COLOR] seconds.
[/code]

It's still slower, but not by as much as your run.

henryzz 2019-09-01 19:56

Could this be cache size differences? Does srsieve2 adjust for different size caches?


All times are UTC. The time now is 22:08.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.