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

 rogue 2023-05-24 13:46

I have posted mtsieve 2.4.7 to sourceforge. Here is a summary of the changes.

[code]
framework:
Added command line switch -4. Sieving will stop when the factors per
second rate falls below the specified rate. The rates only only evaluated
when the factor rate is computed, which is once per minute.

Added command line switch -5. Sieving will stop when the seconds per
factor rate falls is above specified rate. The rates only only evaluated
when the factor rate is computed, which is once per minute.

fbncsieve: version 1.6.2:
If max p is overridden due to the ability to factor out all composite terms,
then all remaining prime terms will be written the the output file as opposed
to some being written to the <xx>_primes.txt file.

gcwsieve/gcwsievecl: version 1.5.2
Modify output format to gcw_gfn.txt and gcw_mersenne.txt to make more sense.

srsieve2/srsieve2cl: version 1.7
Can now support hundreds of thousands of sequences per execution.

Added command line switch -S to split the sequences into separate files by
best Q for tha sequence. The resulting files should then be run with -q to
ensure that it uses the best Q for that set of sequences.

The software only factors k*b^n+/-c, even if d > 1. When d > 1 a couple
of other checks are in play.

When sieving sequences (k*b^n+/-c)/d where d > 1, terms where d > factor and
gcd(d, factor) > 0 will be not be removed when (k*b^n+/-c) mod factor = 0
because there is no easy way to verify that if factor divides (k*b^n+/-c)
that it also divides (k*b^n+/-c)/d.

Added command line switch -r for use with (k*b^n+/-c)/d sequences where d > 1.
When specified this will remove terms where k*b^n+/-c mod d != 0. If you do not
use -r then pfgw will use floor((k*b^n+/-c)/d) before doing the PRP test.
[/code]

Please let me know if you run into any issues.

 storm5510 2023-05-25 17:14

Something I stumbled upon: If I take an ABCD file created with a v1.6.x version of [I]srsieve2[/I], v1.7 will drop out to the command prompt after displaying, "Split x base x sequences into x base x^y sequences." If I start a new series with v1.7, then there is no problem continuing with an ABCD.

This is easily avoidable if a person is aware of it. I was not until now.

 rogue 2023-05-25 17:44

[QUOTE=storm5510;631245]Something I stumbled upon: If I take an ABCD file created with a v1.6.x version of [I]srsieve2[/I], v1.7 will drop out to the command prompt after displaying, "Split x base x sequences into x base x^y sequences." If I start a new series with v1.7, then there is no problem continuing with an ABCD.

This is easily avoidable if a person is aware of it. I was not until now.[/QUOTE]

Hmm. Post the ABCD file and I will take a look.

 ryanp 2023-05-26 01:51

Is the SVN repo at HEAD missing a file?

[CODE]\$ make -j 8 xyyxsieve
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/App_cpu.o core/App.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/FactorApp_cpu.o core/FactorApp.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/AlgebraicFactorApp_cpu.o core/AlgebraicFactorApp.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/Clock_cpu.o core/Clock.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/Parser_cpu.o core/Parser.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/Worker_cpu.o core/Worker.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/main_cpu.o core/main.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/SharedMemoryItem_cpu.o core/SharedMemoryItem.cpp
g++ -Isieve -m64 -Wall -DUSE_X86 -std=c++11 -O3 -c -o core/HashTable_cpu.o core/HashTable.cpp
make: *** No rule to make target 'core/BigHashTable_cpu.o', needed by 'xyyxsieve'. Stop.
make: *** Waiting for unfinished jobs....[/CODE]

 ryanp 2023-05-26 02:02

1 Attachment(s)
I'm also seeing a segfault with an existing build of [C]xyyxsievecl[/C]:

[CODE]\$ ./xyyxsievecl -i ./cand.txt -o newterms.txt -P 1e11 -G 16 -g 16 -M 1000000
xyyxsieve v1.8.1, a program to find factors numbers of the form x^y+y^x or x^y-y^x
Segmentation fault (core dumped)[/CODE]

cand.txt is attached. I debugged only a little; seems to be something to do with how it allocates the [C]iv_Terms[/C] array. It segfaults on the line assigning to it:

[CODE] if (haveBitMap)
{
iv_Terms[BIT(x, y)] = true; // array seems too small here.
il_TermCount++;
}[/CODE]

 rogue 2023-05-26 12:30

I committed the missing source file.

I will take a look at the segfault today.

Thanks for posting the file. I expect it to be an easy fix, but one never knows...

 storm5510 2023-05-26 15:08

2 Attachment(s)
[QUOTE=rogue;631247]Hmm. Post the ABCD file and I will take a look.[/QUOTE]

Attached are two ABCD files. One ran with v1.6.9 and the other with v1.7. Both are derived from a 60% test I did for R60: 11652*60^n-1. They are identical. I took the one from v1.6.9 and attempted a continuation with v1.70 and it accepted it.

So, some instances, it works and other times not. The best solution is to not cross from one to the other.

 rogue 2023-05-26 15:30

[QUOTE=rogue;631284]I committed the missing source file.

I will take a look at the segfault today.

Thanks for posting the file. I expect it to be an easy fix, but one never knows...[/QUOTE]

The root cause is that your range of x and y are too large and there isn't enough memory for the vector.

Although I have a solution, I don't like it because it negatively impacts performance. I need to spend more time on it.

 ryanp 2023-05-26 15:50

[QUOTE=rogue;631290]The root cause is that your range of x and y are too large and there isn't enough memory for the vector.[/QUOTE]

Ah OK. Presumably I could just split the file into several and then sieve each one separately?

 rogue 2023-05-26 16:57

[QUOTE=ryanp;631291]Ah OK. Presumably I could just split the file into several and then sieve each one separately?[/QUOTE]

In this case yes because most of the performance improvements come from overlapping ranges of y for each x and y for each y.

Now that I think about it I could probably modify it to be more "brute force" depending upon the sparseness of x and y. That shouldn't hurt performance and might even help it.

 storm5510 2023-05-28 23:08

The issue I mentioned with v1.7 of [I]srsieve2[/I] seems to continue. I can create a new sieve by using the [C]-s[/C] switch in the proper form. If I use that output as in input using [C]-i[/C] to elevate the levels of P, then it will drop out to the prompt. I should be able to work up a sample, if you would like.

[U]Edit[/U]: This happens on the [U]Riesel[/U] side only.

This will run properly:

[CODE]srsieve2 -n100e3 -N250e3 -p3 -P1e9 -W7 -r -s"2444*45^n[B]+[/B]1" -o1e9.abcd
srsieve2 -p1e9 -P5e9 -W7 -r -i1e9.abcd -o5e9.abcd[/CODE]

This will not:

[CODE]srsieve2 -n3 -N100e3 -p3 -P1e9 -W7 -s"22*173^n[B]-[/B]1" -o1e9.abcd
[/CODE]

I will stick with v1.6.9 for now.

All times are UTC. The time now is 14:34.