mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Sierpinski/Riesel Base 5 (https://www.mersenneforum.org/forumdisplay.php?f=54)
-   -   A multiple k/c sieve for Sierpinski/Riesel problems (https://www.mersenneforum.org/showthread.php?t=5785)

geoff 2007-02-19 04:51

sr2sieve/sr5sieve 1.4.25
 
This version extends the power residue tests to include 16-th powers. Gain is about 2% for SoB.dat, 1% for riesel.dat, <1% for sr5data.txt.

I can probably keep extending these tests and get some more small gains, but the memory use will increase rapidly, so I'll leave it for now until I can find a less memory intensive way to do it.

geoff 2007-02-21 21:29

sr2sieve/sr5sieve 1.4.27
 
This version fixes the linux64-k8 build which hasn't been working properly since version 1.4.21 due to faulty compile options. It ran extremely slowly unless the -l and -L switches were used to override the default cache sizes.

Also in this version are some new command-line options:

-i --input FILE Read sieve from FILE instead of `sr5data.txt'.
-p --pmin P0 Sieve for factors p in the range P0 <= p <= P1 instead
-P --pmax P1 of reading ranges from work file `sr5work.txt'.
-u --uid STRING Append -STRING to base of per-process file names.

The last of these options can be used to run multiple processes in the same directory (so that sr5data.txt and sr5cache.bin files can be shared without the need to create links).

If you run `sr5sieve -u X' it will read work from sr5work-X.txt, write factors to factorsNNNN-X.txt, checkpoint to checkpoint-X.txt, etc.

em99010pepe 2007-02-21 23:10

geoff,

Can you change the the sr5sieve default cpu priority from normal to idle?

Carlos

rogue 2007-02-21 23:29

[QUOTE=em99010pepe;99140]geoff,

Can you change the the sr5sieve default cpu priority from normal to idle?

Carlos[/QUOTE]

If you are building it yourself, add

SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_IDLE);

to main().

I don't recall which header needs to be included.

em99010pepe 2007-02-23 19:20

geoff,

Can you make that adjustment for the next version?

Thanks,

Carlos

geoff 2007-02-24 01:57

sr2sieve/sr5sieve 1.4.28
 
[QUOTE=em99010pepe;99244]geoff,

Can you make that adjustment for the next version?
[/QUOTE]

This version has two new command line switches:
[code]
-z --idle Run at idle priority. (Default)
-Z --no-idle Don't adjust priority.
[/code]
-Z can be made the default by setting IDLE_DEFAULT=0 in sr5sieve.h

Thanks rogue for the Windows priority setting code.

em99010pepe 2007-02-24 09:42

Thank you geoff.

Carlos

geoff 2007-03-06 21:24

sr1sieve 1.0.12, sr5sieve 1.4.29
 
These versions report the average time per factor on the status line. There is not enough space to display all the information, so the time per factor is displayed alternately with the ETA date.

Also new is that if no command line arguments are given, the program will attempt to read them from a file called sr[125]sieve-command-line.txt in the current directory. The first line of this file should contain the command line exactly as it would be typed from the shell, except that filename wildcards etc. will not be expanded. I have found this feature useful since the Windows machines I use had their command interpreters removed for security reasons.

Cruelty 2007-03-07 11:04

Is cache file created using [i]--cache[/i] switch compatible with different version and platform of sr2sieve, especially when using different [i]--L1-cache[/i] and [i]--L2-cache[/i] switches on each machine?

geoff 2007-03-08 20:54

sr1sieve 1.0.13, sr5sieve 1.4.30
 
These vesions try to detect the L1/L2 cache sizes using the cpuid instruction on x86/x86_64 machines. Sensible defaults should be used if this fails. Running with the `-v/--verbose' switch will cause it to report the cache sizes, and whether they were successfully detected or defaults were used.

The cpuid instruction is bizarrely complicated for Intel machines, it seems to require the source code to be changed each time they release a machine with a slightly different cache structure. Let me know the machine and model information along with the correct cache sizes if it is not being detected correctly. (I expect some newer Intel machines will not be).

You can still use the -l and -L switches to override the default or detected cache sizes, as before.

[QUOTE=Cruelty;100122]Is cache file created using [i]--cache[/i] switch
compatible with different version and platform of sr2sieve, especially when using different [i]--L1-cache[/i] and [i]--L2-cache[/i] switches on each machine?[/QUOTE]

The -c/--cache switch is not related to the -l/--L1-cache and -L/--L2-cache switches, it is just a bad choice of names on my part. I should probably rename --cache to --symbol-cache or something like that.

The cache files (sr1cache.bin, sr2cache.bin, etc.) are not affected by the L1/L2 cache size, but they are dependent on register size, byte order, and possibly compiler. This information is stored in the file so it should be detected when an incompatible file is opened. Also sr1cache.bin is not compatible with sr2cache.bin, even if you happen to be sieving a base 2 sequence, this should be detected too.

Cruelty 2007-03-09 08:32

Thanks for information [I]geoff[/I]! I've been using my fastest machine (C2D) to generate cache files for my other slower PCs: P3 and Celeron M (using i686 and P4 executables respectively). Apparently it worked without any error :smile:


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

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