mersenneforum.org  

Go Back   mersenneforum.org > Prime Search Projects > Sierpinski/Riesel Base 5

Reply
 
Thread Tools
Old 2008-03-24, 23:53   #474
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

48516 Posts
Default

Quote:
Originally Posted by lavalamp View Post
Out of extreme, never ending, curiosity, how come there are four srsieves? They all seem to do quite similar things, though obviously they are optimised for particular areas, sr2sieve is more optimised for multiple ks whereas sr1sieve is optimised for a single k, but that could be dealt with using a simple if/else to call a one function or another.
It is a long term goal to combine all the srsieve programs back into one executable and release it as srsieve 1.0.0. There is no technical reason this can't be done, it is just a question of programmer effort. At the moment I find it easier to deal with the program by maintaining 4 seperate but simpler programs than a single more complex one.
geoff is offline   Reply With Quote
Old 2008-04-06, 02:30   #475
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13·89 Posts
Default sr2sieve 1.7.10, sr1sieve 1.3.5

These versions fix a problem introduced in verisons 1.7.0/1.3.0 that caused the elapsed time statistic reported in the checkpoint file and at the end of a range to be inaccurate.
geoff is offline   Reply With Quote
Old 2008-06-09, 02:42   #476
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

22058 Posts
Default srsieve 0.6.12 (Windows 64-bit)

I have built 64-bit Windows srsieve executables for testing.

Because of a bug in GCC 4.3.0 I have provided two executables compiled with different compiler optimisation levels. This bug was avoided in sr1sieve and sr2sieve by reducing the optimisation level from -O2 to -O1, without much affect on performance. However in srsieve the performance loss will probably be more severe because it has more critical code in C rather than assembly.

The compiler bug might not affect srsieve at all, but if it does it is hard to predict what the result will be, a segfault is possible. Please treat both executables with caution and check some results against the 32-bit or Linux versions.

Testing it on the http://www.geocities.com/sr5sieve/sr5check.zip data would be a good idea too: `srsieve sr5check.txt -f -p 100e6 -P 150e6' should find 10533 new factors.
geoff is offline   Reply With Quote
Old 2008-06-12, 15:17   #477
Cruelty
 
Cruelty's Avatar
 
May 2005

2×809 Posts
Default

Geoff,
What is the reason for versions 1.7.11 (sr2sieve) and 1.3.6 (sr1sieve)?
Cruelty is offline   Reply With Quote
Old 2008-06-13, 03:39   #478
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13×89 Posts
Default sr2sieve 1.7.11, sr1sieve 1.3.6

Quote:
Originally Posted by Cruelty View Post
Geoff,
What is the reason for versions 1.7.11 (sr2sieve) and 1.3.6 (sr1sieve)?
These versions fix a bug reported by Chuck Lasher that could cause junk characters to be printed at the end of some screen messages . It showed up when a long file name was specified as argument to the -C switch in sr1sieve.
geoff is offline   Reply With Quote
Old 2008-07-25, 00:13   #479
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13×89 Posts
Default sr2sieve 1.7.12

This version has a new switch `-X --skip-cubic' which causes cubic and higher power residue tests to be skipped. This makes the algorithm more like that used by srsieve 0.6.x, and so might be faster and use less memory when there are very many sequences in the sieve or when the n-range is too short.

If you are currently sieving with srsieve 0.6.x because you have found it to be faster than sr2sieve, please try out sr2sieve -X and let me know whether it is faster.
geoff is offline   Reply With Quote
Old 2008-09-01, 00:01   #480
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13×89 Posts
Default sr5sieve 1.7.15, sr2sieve 1.7.15

Fixes a bug introduced in version 1.7.5 that allowed an invalid argument to the `-p --pmin' switch. This version ensures that the start of the p-range is above the level of the greatest k value in the sieve. (Sieving below this level needs to be done with srsieve instead).

There are new Makefile options for Intel Macs: `make ARCH=x86-osx' will build a 32-bit executable. `make ARCH=x86-64-osx' will build a 64-bit executable. Thanks to Michael Tughan for these contributions. (These options have also been added to the source for sr1sieve-1.3.7).
geoff is offline   Reply With Quote
Old 2008-09-01, 00:04   #481
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13×89 Posts
Default sr5sieve 1.8.0, sr2sieve 1.8.0

I realised that sieving the dual-form sequence b^n+/-k was actually faster than sieving the equivalent standard-form sequence k*b^n+/-1.

For k*b^n+c, previous versions used stored powers b,b^2,b^3,... to solve the equation b^n = -c/k. This was efficient when k=1 (dual form), but when |c|=1 (standard form) a modular inverse was required to find 1/k for each sequence.

This version uses the previous method for dual forms, but for standard forms it instead uses stored powers 1/b,1/b^2,1/b^3,... to solve the equation 1/b^n = -k/c, and so only one modular inverse is required to find 1/b instead of one per sequence to find 1/k.

Sieves with a large number of sequences and a small range of n will benefit most. With this change the current combined SoB.dat (15 sequences) is about 2% faster and the current sr5data.txt (214 sequences) about 12% faster.

The trade-off is that dual and standard forms can no longer be sieved together. There is a new switch `-d --dual'. If this switch is used then .dat format files will be interpreted in dual form (as 1*2^n+/-k instead of k*2^n+/-1). Without this switch dual-form ABCD files will be rejected.
geoff is offline   Reply With Quote
Old 2008-09-03, 02:10   #482
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

48516 Posts
Default sr5sieve 1.8.1, sr2sieve 1.8.1

This version changes the way process priority is set in an attempt to cope with the changing scheduling behaviour on machines with adjustable CPU frequency. This might change again, I am open to suggestions.

This version will no longer change priority by default. The meaning of the -z and -Z switches has changed to:

Code:
 -zz sets lowest priority (Linux nice 20, Windows IDLE)
 -z  sets low priority (Linux nice 10, Windows BELOW_NORMAL)
 -Z  sets high priority (Linux nice -10, Windows ABOVE_NORMAL)
 -ZZ sets highest priority (Linux nice -20, Windows HIGH)
My Linux system doesn't allow programs started by normal users to raise their priority, so -Z and -ZZ have no effect in this case. I believe that -zz will cause the CPU frequency to be lowered on some systems.
geoff is offline   Reply With Quote
Old 2008-09-03, 02:21   #483
mdettweiler
A Sunny Moo
 
mdettweiler's Avatar
 
Aug 2007
USA (GMT-5)

792 Posts
Default

Quote:
Originally Posted by geoff View Post
This version changes the way process priority is set in an attempt to cope with the changing scheduling behaviour on machines with adjustable CPU frequency. This might change again, I am open to suggestions.

This version will no longer change priority by default. The meaning of the -z and -Z switches has changed to:

Code:
 -zz sets lowest priority (Linux nice 20, Windows IDLE)
 -z  sets low priority (Linux nice 10, Windows BELOW_NORMAL)
 -Z  sets high priority (Linux nice -10, Windows ABOVE_NORMAL)
 -ZZ sets highest priority (Linux nice -20, Windows HIGH)
My Linux system doesn't allow programs started by normal users to raise their priority, so -Z and -ZZ have no effect in this case. I believe that -zz will cause the CPU frequency to be lowered on some systems.
So, does this mean that you now have to specify the -z or-zz options, or else it will get set to normal priority, across the board?

Last fiddled with by mdettweiler on 2008-09-03 at 02:22
mdettweiler is offline   Reply With Quote
Old 2008-09-03, 02:36   #484
geoff
 
geoff's Avatar
 
Mar 2003
New Zealand

13·89 Posts
Default

Quote:
Originally Posted by Anonymous View Post
So, does this mean that you now have to specify the -z or-zz options, or else it will get set to normal priority, across the board?
In practice, yes. (Actually it doesn't get set to normal priority, it just doesn't set the priority at all. So without -z, -Z, etc. sr2sieve will run at the same priority as the process that started it. In most cases that will be normal priority).

If anyone has a better plan then this is the time to say so. The problem with the old way of doing it (idle priority by default) is that I am getting a lot of questions about why sr2sieve is running slower on 64-bit operating systems than on 32-bit systems, which is because the (newer) 64-bit OS lowers the CPU frequency in situations that the (older) 32-bit OS doesn't.
geoff is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Very Prime Riesel and Sierpinski k robert44444uk Open Projects 587 2016-11-13 15:26
Sierpinski/ Riesel bases 6 to 18 robert44444uk Conjectures 'R Us 139 2007-12-17 05:17
Sierpinski/Riesel Base 10 rogue Conjectures 'R Us 11 2007-12-17 05:08
Sierpinski / Riesel - Base 23 michaf Conjectures 'R Us 2 2007-12-17 05:04
Sierpinski / Riesel - Base 22 michaf Conjectures 'R Us 49 2007-12-17 05:03

All times are UTC. The time now is 10:55.

Thu Oct 29 10:55:40 UTC 2020 up 49 days, 8:06, 1 user, load averages: 1.37, 1.63, 1.61

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

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.