mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Hardware > GPU Computing > GpuOwl

Reply
 
Thread Tools
Old 2020-09-08, 21:58   #34
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

37·127 Posts
Default

Mprime/prime95 support PRP-CF. No argument there.

Gpuowl DOES NOT support PRP-CF computations. It has never supported the type 5 PRP residues used for PRP-CF. https://www.mersenneforum.org/showpo...3&postcount=15

Supported features and worktodo syntax are often similar or interchangeable, and sometimes differ between GIMPS applications. This is one of the cases where they differ a lot. Putting prime95-like PRP-CF worktodo lines into a gpuowl worktodo file and running whatever gpuowl makes of them doesn't produce PRP-CF computations, as far as I can tell; it produces PRP tests instead. I've confirmed that with a couple short runs.

I've looked at several sources and found no evidence to support the claim that gpuowl performs PRP-CF, but numerous indications it does not.

Here's how I think gpuowl processes your worktodo line posted previously:
PRP=<AID Removed>,1,2,7877777,-1,99,0,3,5,"47266663,9172685364795810287,125872567825872611377"
as an assignment in gpuowl worktodo probably parses as follows:
PRP=worktype PRP (not PRP-CF)
AID=AID echoed in result output
1=k
2=b
7877777=exponent n
-1=c
99=TF bits completed
0= number of tests saved if P-1 performed (last of gpuowl supported parameters; gpuowl parser seems to stop after here)
3=base to power; ignored by gpuowl
5= PRP-CF residue type in prime95; ONLY TYPE 1 IS SUPPORTED IN THAT VERSION GPUOWL; gpuowl has only ever implemented 0,1,4 and only one of them at any version; ignored by gpuowl
"factor list" ignored by gpuowl, because gpuowl does not support PRP-CF computation.
Then it does a PRP test of kbn+c, 1x2787777-1, which is to say, M7877777, with type 1 residue, base 3, the only type and base that version of gpuowl supports. (Which had factors known for years, so it's already known composite.)

Gpuowl V6.11-364 and v6.11-380's help.txt and readme.md files do not document a PRP-CF function.
From the help.txt:
Code:
-prp <exponent>    : run a single PRP test and exit, ignoring worktodo.txt
-pm1 <exponent>    : run a single P-1 test and exit, ignoring worktodo.txt
-ll <exponent>     : run a single LL test and exit, ignoring worktodo.txt
From readme.md:
Code:
## worktodo.txt
The lines in worktodo.txt must be of one of these forms:
* 70100200
* PRP=FCECE568118E4626AB85ED36A9CC8D4F,1,2,77936867,-1,75,0
The text strings "CF" or "cofactor" do not appear in readme.md or help.txt. Note how it does NOT say PRP= will also do PRP-CF. Note how it does NOT give an example of specifying PRP residue type, or base, or known factors.

Looking at the source code, args.cpp contains no parsing for residue type, base, or known factors. In gpu.cpp, occurrences of the string "factor" relate to P-1 factors found.
In worktodo.cpp, the relevant code snippet is
Code:
    if (kind == "PRP" || kind == "PFactor" || kind == "Pfactor" || kind == "DoubleCheck") {
      char AIDStr[64] = {0};
      if (sscanf(tail, "%32[0-9a-fA-FN/],1,2,%u,-1,%u,%u", AIDStr, &exp, &bitLo, &wantsPm1) == 4
          || sscanf(tail, "%32[0-9a-fA-FN/],%u", AIDStr, &exp) == 2
          || (AIDStr[0]=0, sscanf(tail, "%u", &exp)) == 1) {
        string AID = AIDStr;
        if (AID == "N/A" || AID == "0") { AID = ""; }
        return {{kind == "PRP" ? Task::PRP : (kind == "DoubleCheck" ? Task::LL : Task::PM1), exp, AID, line, B1, B2, bitLo, wantsPm1}};
      }
    }
No residue type, base, or factor input visible there.
But you don't have to take my word for it; Preda, author of gpuowl, has stated gpuowl does not do PRP-CF; 2020-08-06. https://www.mersenneforum.org/showpo...postcount=2391
https://github.com/preda/gpuowl contains no reference to CF or cofactor.
When I put up a poll asking about future enhancements, and included PRP-CF in the list of possibilities, no one objected that it was already supported. https://www.mersenneforum.org/showpo...35&postcount=6
How many of the PRP-CF results from you accepted by the PrimeNet server as such were performed on prime95, versus gpuowl, in this list: https://www.mersenne.org/report_prpc...dispdate=1&B1=

The status for the exponent corresponding to the worktodo line you gave, https://www.mersenne.org/report_exponent/?exp_lo=7877777&exp_hi=&full=1 shows storm5510 ran a type 1 residue PRP on M7877777 (not type 5 PRP-CF) with offset 0, base 3. NOT a type 5 PRP-CF on M7877777/(product of known factors). For that prime95/mprime is needed.

As a confirming experiment, I ran the following worktodo line in gpuowl-win v6.11-340:
Code:
PRP=0,1,2,1257787,-1,70,0,3,5,find-me-a-winning-powerball-number
It accepted the input and ran a normal PRP test on M12577887 in 4 minutes on a GTX480.
Code:
2020-09-08 15:15:24 gpuowl v6.11-340-g41d435f
2020-09-08 15:15:24 config: -device 0 -user kriesel -cpu condorella/rx480 -yield -maxAlloc 7500 -proof 8
2020-09-08 15:15:24 device 0, unique id ''
2020-09-08 15:15:24 condorella/rx480 1257787 FFT: 128K 256:1:256 (9.60 bpw)
2020-09-08 15:15:24 condorella/rx480 Expected maximum carry32: 60000
2020-09-08 15:15:24 condorella/rx480 using long carry kernels
2020-09-08 15:15:27 condorella/rx480 OpenCL args "-DEXP=1257787u -DWIDTH=256u -DSMALL_HEIGHT=256u -DMIDDLE=1u -DPM1=0 -DAMDGPU=1 -DWEIGHT_STEP_MINUS_1=0xa.5644d
df606efp-5 -DIWEIGHT_STEP_MINUS_1=-0xf.a050334c8a45p-6  -cl-unsafe-math-optimizations -cl-std=CL2.0 -cl-finite-math-only "
2020-09-08 15:15:27 condorella/rx480 ASM compilation failed, retrying compilation using NO_ASM
2020-09-08 15:15:32 condorella/rx480 OpenCL compilation in 5.32 s
2020-09-08 15:15:32 condorella/rx480 1257787 OK        0 loaded: blockSize 400, 0000000000000003
2020-09-08 15:15:32 condorella/rx480 1257787 OK      800   0.06%;  172 us/it; ETA 0d 00:04; a0cb6d4276e3bf46 (check 0.07s)
2020-09-08 15:16:02 condorella/rx480 1257787 OK   200000  15.90%;  150 us/it; ETA 0d 00:03; 25ebe34e39ca647b (check 0.06s)
2020-09-08 15:16:32 condorella/rx480 1257787 OK   400000  31.80%;  150 us/it; ETA 0d 00:02; fe2bfeea5734dd7c (check 0.06s)
2020-09-08 15:17:01 condorella/rx480 1257787 OK   600000  47.69%;  145 us/it; ETA 0d 00:02; 0e10714084ddbff9 (check 0.06s)
2020-09-08 15:17:31 condorella/rx480 1257787 OK   800000  63.59%;  148 us/it; ETA 0d 00:01; 27e2b993451c6138 (check 0.07s)
2020-09-08 15:18:01 condorella/rx480 1257787 OK  1000000  79.49%;  148 us/it; ETA 0d 00:01; 4cd95311866a96a2 (check 0.06s)
2020-09-08 15:18:29 condorella/rx480 1257787 OK  1200000  95.39%;  144 us/it; ETA 0d 00:00; 5a5b25f08d9912e4 (check 0.06s)
2020-09-08 15:18:38 condorella/rx480 PP  1257787 / 1257787, 0000000000000001
2020-09-08 15:18:38 condorella/rx480 proof: save residue @ 1257984
2020-09-08 15:18:38 condorella/rx480 1257787 OK  1258000 100.00%;  147 us/it; ETA 0d 00:00; f4d273818ecfa167 (check 0.05s)
2020-09-08 15:18:38 condorella/rx480 {"status":"P", "exponent":"1257787", "worktype":"PRP-3", "res64":"0000000000000001", "residue-type":"1", "errors":{"gerbicz
":"0"}, "fft-length":"131072", "program":{"name":"gpuowl", "version":"v6.11-340-g41d435f"}, "user":"kriesel", "computer":"condorella/rx480", "timestamp":"2020-0
9-08 20:18:38 UTC"}
2020-09-08 15:18:38 condorella/rx480 proof: building level 1, hash fb39419b2846f8a2
2020-09-08 15:18:38 condorella/rx480 proof: building level 2, hash adb074fdf0786521
2020-09-08 15:18:38 condorella/rx480 proof: building level 3, hash e7027375b01a778a
2020-09-08 15:18:39 condorella/rx480 proof: building level 4, hash 02f5a99fbc9b3533
2020-09-08 15:18:39 condorella/rx480 proof: building level 5, hash d7faf41b5ea65ebf
2020-09-08 15:18:39 condorella/rx480 proof: building level 6, hash d4774d2decad9175
2020-09-08 15:18:39 condorella/rx480 proof: building level 7, hash a9b761456b38f66f
 2020-09-08 15:18:40 condorella/rx480 proof: building level 8, hash 230b11d9272f1705
It produces a normal PRP output line. Note no factors found or refuted, no change in residue type, no error messages about excess or invalid input parameters, no winning lottery ticket.But let's try again, on https://www.mersenne.org/report_expo...1947269&full=1 which has a found factor, and introduce a bogus one also.
Code:
PRP=0,1,2,1947269,-1,70,0,3,5,"57431622368499867552481,42"
This produces a normal PRP run, which I'll conceal slightly until Yugi's assigned PRP run is completed.
Code:
2020-09-08 15:35:50 gpuowl v6.11-340-g41d435f
2020-09-08 15:35:50 config: -device 0 -user kriesel -cpu condorella/rx480 -yield -maxAlloc 7500 -proof 8
2020-09-08 15:35:50 device 0, unique id ''
2020-09-08 15:35:50 condorella/rx480 1947269 FFT: 128K 256:1:256 (14.86 bpw)
2020-09-08 15:35:50 condorella/rx480 Expected maximum carry32: F60000
2020-09-08 15:35:51 condorella/rx480 OpenCL args "-DEXP=1947269u -DWIDTH=256u -DSMALL_HEIGHT=256u -DMIDDLE=1u -DPM1=0 -DAMDGPU=1 -DWEIGHT_STEP_MINUS_1=0xd.63584
71d0f798p-7 -DIWEIGHT_STEP_MINUS_1=-0xc.1ecf0f7a74f2p-7  -cl-unsafe-math-optimizations -cl-std=CL2.0 -cl-finite-math-only "
2020-09-08 15:35:52 condorella/rx480 ASM compilation failed, retrying compilation using NO_ASM
2020-09-08 15:35:57 condorella/rx480 OpenCL compilation in 5.47 s
2020-09-08 15:35:57 condorella/rx480 1947269 OK        0 loaded: blockSize 400, 0000000000000003
2020-09-08 15:35:57 condorella/rx480 1947269 OK      800   0.04%;  142 us/it; ETA 0d 00:05; ae6256908288407a (check 0.06s)
2020-09-08 15:36:21 condorella/rx480 1947269 OK   200000  10.27%;  120 us/it; ETA 0d 00:03; 07653d81cf4c22c6 (check 0.05s)
2020-09-08 15:36:44 condorella/rx480 1947269 OK   400000  20.54%;  116 us/it; ETA 0d 00:03; 4d9e463546e40492 (check 0.05s)
2020-09-08 15:37:08 condorella/rx480 1947269 OK   600000  30.81%;  119 us/it; ETA 0d 00:03; 2fb23b1c388b7be5 (check 0.05s)
2020-09-08 15:37:32 condorella/rx480 1947269 OK   800000  41.08%;  119 us/it; ETA 0d 00:02; 06b2307e8825791a (check 0.06s)
2020-09-08 15:37:56 condorella/rx480 1947269 OK  1000000  51.35%;  119 us/it; ETA 0d 00:02; fd8187938ddf7c6c (check 0.05s)
2020-09-08 15:38:18 condorella/rx480 1947269 OK  1200000  61.61%;  112 us/it; ETA 0d 00:01; 93aeeb6fb88ad13b (check 0.05s)
2020-09-08 15:38:43 condorella/rx480 1947269 OK  1400000  71.88%;  123 us/it; ETA 0d 00:01; 20294a5c7a5094ae (check 0.05s)
2020-09-08 15:39:07 condorella/rx480 1947269 OK  1600000  82.15%;  121 us/it; ETA 0d 00:01; 8fa7161ac06799b5 (check 0.05s)
2020-09-08 15:39:31 condorella/rx480 1947269 OK  1800000  92.42%;  118 us/it; ETA 0d 00:00; e1e1cd848ecdd6d9 (check 0.05s)
2020-09-08 15:39:48 condorella/rx480 CC  1947269 / 1947269, 5ecc7c3e83061ccb
2020-09-08 15:39:48 condorella/rx480 proof: save residue @ 1947392
2020-09-08 15:39:48 condorella/rx480 1947269 OK  1947600 100.00%;  116 us/it; ETA 0d 00:00; 7088941f68d96ef9 (check 0.05s)
2020-09-08 15:39:48 condorella/rx480 {"status":"C", "exponent":"1947269", "worktype":"PRP-3", "res64":"5ecc7c3e8306____", "residue-type":"1", "errors":{"gerbicz
":"0"}, "fft-length":"131072", "program":{"name":"gpuowl", "version":"v6.11-340-g41d435f"}, "user":"kriesel", "computer":"condorella/rx480", "timestamp":"2020-0
9-08 20:39:48 UTC"}
2020-09-08 15:39:49 condorella/rx480 proof: building level 1, hash 4b254a55ed1d792e
2020-09-08 15:39:49 condorella/rx480 proof: building level 2, hash faeb44f0ad5a2cd8
2020-09-08 15:39:49 condorella/rx480 proof: building level 3, hash a6f14d4f2654d011
2020-09-08 15:39:49 condorella/rx480 proof: building level 4, hash 72e8df2a742892de
2020-09-08 15:39:49 condorella/rx480 proof: building level 5, hash 2df5ac3e964c225d
2020-09-08 15:39:49 condorella/rx480 proof: building level 6, hash a6de185edde216e1
2020-09-08 15:39:50 condorella/rx480 proof: building level 7, hash 9a169bb441adf958
2020-09-08 15:39:51 condorella/rx480 proof: building level 8, hash e38252ffaa1c86ad
2020-09-08 15:39:54 condorella/rx480 PRP-Proof 'C:\msys64\home\ken\gpuowl-compile\gpuowl-v6.11-340-g41d435f\rx480\1947269\1947269-8.proof' generated
Running a PRP test with gpuowl on a number already having multiple known factors or a factor and multiple matching LL tests accomplishes very little, if anything. Please use prime95 for such PRP-CF intended runs, and gpuowl for PRP, P-1, or LLDC runs that will be useful.

To the best of my knowledge, after years of study and tracking developments as they're announced, and reviewing multiple sources relating to the current state of gpuowl including gpuowl source code, PRP-CF is not supported in ANY GIMPS GPU software. If someone else can provide credible information that some gpu package supports PRP-CF, I'd be glad to add it to the tabulation of available software.

Last fiddled with by kriesel on 2020-09-08 at 21:59
kriesel is online now   Reply With Quote
Old 2020-09-08, 22:59   #35
R. Gerbicz
 
R. Gerbicz's Avatar
 
"Robert Gerbicz"
Oct 2005
Hungary

23×3×59 Posts
Default

Quote:
Originally Posted by kriesel View Post
Mprime/prime95 support PRP-CF. No argument there.

Gpuowl DOES NOT support PRP-CF computations. It has never supported the type 5 PRP residues used for PRP-CF. https://www.mersenneforum.org/showpo...3&postcount=15
Exactly, what I don't understand is that why anyone tries to run something that is clearly not supported, and you can check this easily at https://github.com/preda/gpuowl . It means nothing that it could successfully start such job. you can enter any trash input, if the parser doesn't catch your silly line.

And basically you need only one big division (by mp/d, so there could be a shortcut here because d is "small", a few hundred bits in general) to support prp-cf.
That is ((3^mp) mod mp) mod mp/d [so do a fermat test with base=3^d], here we'll use the smallest non-negative residue at mod. And not forget the 2048 bit tricks to save further tests: https://www.mersenneforum.org/showthread.php?t=23462 .
R. Gerbicz is offline   Reply With Quote
Old 2020-09-08, 23:13   #36
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

125B16 Posts
Default

Quote:
Originally Posted by kriesel View Post
How many of the PRP-CF results from you accepted by the PrimeNet server as such were performed on prime95, versus gpuowl, in this list: https://www.mersenne.org/report_prpc...dispdate=1&B1=
Since they all indicate nonzero shift, and gpuowl does only zero shift, none of them are from gpuowl.
Quote:
Originally Posted by R. Gerbicz View Post
Exactly, what I don't understand is that why anyone tries to run something that is clearly not supported, and you can check this easily at https://github.com/preda/gpuowl . It means nothing that it could successfully start such job. you can enter any trash input, if the parser doesn't catch your silly line.
I assume it's some sort of honest mistake. Perhaps he confused prime95's support with gpuowl, or manual assignment, and gpuowl not throwing an immediate fatal error misled him. Then with the belief somewhat taken root, misreading exponent status pages, result lines, etc. It happens that we sometimes latch on to a wrong hypothesis and get stuck. Been there, done that. I once heard someone at a party state something to the effect that birds were not animals, generating a lot of surprised response.

I'm becoming concerned that gpuowl CF capability may be a misunderstanding shared by others also.

Last fiddled with by kriesel on 2020-09-08 at 23:23
kriesel is online now   Reply With Quote
Old 2020-09-08, 23:24   #37
R. Gerbicz
 
R. Gerbicz's Avatar
 
"Robert Gerbicz"
Oct 2005
Hungary

23×3×59 Posts
Default

Quote:
Originally Posted by R. Gerbicz View Post
And basically you need only one big division (by mp/d)
Hm, but if you use my prp cf method then you can save that annoying large division. So compute just
(3^mp mod mp) mod 2^2048 (or 3^(1+mp)... ) just as if we'd know only d=1, and then apply my prp cf trick. Ofcourse in this setup we're weaker than a regular Fermat test, but not much weaker because d<<2^2048 so we have a very small chance that we'd identify a composite mp/d as a "probable" prime. And the identified composites here are really composites.

ps. not that ideal case, because you need s=3^d mod (mp/d) in the method, so you'd need to compute s with another program with one big division.

Last fiddled with by R. Gerbicz on 2020-09-08 at 23:37
R. Gerbicz is offline   Reply With Quote
Old 2020-09-09, 00:10   #38
storm5510
Random Account
 
storm5510's Avatar
 
Aug 2009
U.S.A.

110100011102 Posts
Default

Quote:
Originally Posted by R. Gerbicz View Post
Exactly, what I don't understand is that why anyone tries to run something that is clearly not supported, and you can check this easily at https://github.com/preda/gpuowl . It means nothing that it could successfully start such job. you can enter any trash input, if the parser doesn't catch your silly line.
If gpuOwl is not built to run CF tests then it needs to be plainly stated in the "readme" document included with each build archive. A person should not have to go digging around on the web to find such information.

I will ignore the "barbs" above and say that I will not belabor this any longer. I will stick with P-1, while it lasts. Once P-1 is gone, then I do not know what will come after. Perhaps nothing.
storm5510 is offline   Reply With Quote
Old 2020-09-09, 00:29   #39
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

37·127 Posts
Default

Quote:
Originally Posted by storm5510 View Post
If gpuOwl is not built to run CF tests then it needs to be plainly stated in the "readme" document included with each build archive.
I don't see why. It doesn't do Proth, Fermat numbers, LLR, generalized repunit, TF, ECM, etc. etc. Documentation is for what it does do. Excluding everything else is implied, in standard fashion.
I don't change the readme.md that gets put in the zip file of Windows builds. At all. It is the creation of Preda and SELROC.

You wouldn't expect CUDALucas to do everything, or disclaim everything else, would you? or CUDAPm1? Or mfaktc?
Gpuowl is actually an outlier in doing more than one computation type on gpu in GIMPS. Which one(s) has changed over time and may again.
As for "barbs", well, none intended from here, and I suggest you chalk up any you percieve, to word choice or something equally benign.
Honestly, trying to help.

Last fiddled with by kriesel on 2020-09-09 at 00:30
kriesel is online now   Reply With Quote
Old 2020-09-09, 01:35   #40
ATH
Einyen
 
ATH's Avatar
 
Dec 2003
Denmark

1011101000112 Posts
Default

Quote:
Originally Posted by storm5510 View Post
If gpuOwl is not built to run CF tests then it needs to be plainly stated in the "readme" document included with each build archive. A person should not have to go digging around on the web to find such information.

I will ignore the "barbs" above and say that I will not belabor this any longer. I will stick with P-1, while it lasts. Once P-1 is gone, then I do not know what will come after. Perhaps nothing.
I think they consider PRP-CF tests as extra feature which would be announced if it was added, but not something they have to say is not included.

It was only added to Prime95 around 2 years ago, at least as a feature recorded and handed out by the server. I think you could manually run PRP CF tests for many years if you wanted.

I'm not sure how PRP-CF tests works but I believe it is fairly different from a standard PRP test which is "just" 3^(Mp-1) (mod Mp) with modular exponentiation, and since Mp is almost a power of 2 it is mostly just modular squarings. I think some more tricks are needed for PRP-CF tests where you test (2^p-1)/knownfactors which is far from a power of 2, and therefore it should not be expected to be implemented just because PRP tests are working.

Also the gpuowl Readme file does not say you can add known factors to the worktodo.txt line:

Quote:
## worktodo.txt
The lines in worktodo.txt must be of one of these forms:
* 70100200
* PRP=FCECE568118E4626AB85ED36A9CC8D4F,1,2,77936867,-1,75,0

Last fiddled with by ATH on 2020-09-09 at 01:38
ATH is offline   Reply With Quote
Old 2020-09-09, 06:45   #41
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

10010010110112 Posts
Default

Quote:
Originally Posted by ATH View Post
Also the gpuowl Readme file does not say you can add known factors to the worktodo.txt line:
That and several other indications were already covered in post 34.
One I missed was the gpuowl primenet.py documentation part of readme.md.

Code:
## Primenet.py Arguments
-h, --help            show this help message and exit\
-u USERNAME           Primenet user name\
-p PASSWORD           Primenet password\
-t TIMEOUT            Seconds to sleep between updates\
--dirs DIR \[DIR ...\]  GpuOwl directories to scan\
--tasks NTASKS        Number of tasks to fetch ahead\
-w \{PRP,PM1,LL_DC,PRP_DC,PRP_WORLD_RECORD,PRP_100M\}   GIMPS work type
Nothing there about PRP_CF or PRP_CF_DC. Since storm5510 is operating manually, not using primenet.py, it would have been easy to miss that one.

Similarly, in the primenet.py code itself:
Code:
workTypes = dict(PRP=150, PM1=4, LL_DC=101, PRP_DC=151, PRP_WORLD_RECORD=152, PRP_100M=153)
The PrimeNet API spec does not make a good reference since it has not been maintained. http://v5.mersenne.org/v5design/v5webAPI_0.97.html#7.0 does not list any work type involving PRP.

Resorting to a prime95 source code download, we see in primenet.h a list of work preference values
Code:
/* Valid work_preference values */
#define PRIMENET_WP_WHATEVER        0    /* Whatever makes most sense */
#define PRIMENET_WP_FACTOR_LMH        1    /* Factor big numbers to low limits */
#define PRIMENET_WP_FACTOR        2    /* Trial factoring */
#define PRIMENET_WP_PMINUS1        3    /* P-1 of small Mersennes --- not supported */
#define PRIMENET_WP_PFACTOR        4    /* P-1 of large Mersennes */
#define PRIMENET_WP_ECM_SMALL        5    /* ECM of small Mersennes looking for first factors */
#define PRIMENET_WP_ECM_FERMAT        6    /* ECM of Fermat numbers */
#define PRIMENET_WP_ECM_CUNNINGHAM    7    /* ECM of Cunningham numbers --- not supported */
#define PRIMENET_WP_ECM_COFACTOR    8    /* ECM of Mersenne cofactors */
#define PRIMENET_WP_LL_FIRST        100    /* LL first time tests */
#define PRIMENET_WP_LL_DBLCHK        101    /* LL double checks */
#define PRIMENET_WP_LL_WORLD_RECORD    102    /* LL test of world record Mersenne */
#define PRIMENET_WP_LL_100M        104    /* LL 100 million digit */
#define PRIMENET_WP_PRP_FIRST        150    /* PRP test of big Mersennes */
#define PRIMENET_WP_PRP_DBLCHK        151    /* PRP double checks */
#define PRIMENET_WP_PRP_WORLD_RECORD    152    /* PRP test of world record Mersennes */
#define PRIMENET_WP_PRP_100M        153    /* PRP test of 100M digit Mersennes */
#define PRIMENET_WP_PRP_COFACTOR    160    /* PRP test of Mersenne cofactors */
#define PRIMENET_WP_PRP_COFACTOR_DBLCHK    161    /* PRP double check of Mersenne cofactors */
and a list of assignment types
Code:
/* This structure is passed for the ga - Get Assignment call */

/* Valid work_types returned by ga */
#define PRIMENET_WORK_TYPE_FACTOR    2
#define PRIMENET_WORK_TYPE_PMINUS1    3
#define PRIMENET_WORK_TYPE_PFACTOR    4
#define PRIMENET_WORK_TYPE_ECM        5
#define PRIMENET_WORK_TYPE_FIRST_LL    100
#define PRIMENET_WORK_TYPE_DBLCHK    101
#define PRIMENET_WORK_TYPE_PRP        150
#define PRIMENET_WORK_TYPE_CERT        200
Assignment result types:
Code:
/* This structure is passed for the ar - Assignment Result call */

#define PRIMENET_AR_NO_RESULT    0    /* No result, just sending done msg */
#define PRIMENET_AR_TF_FACTOR    1    /* Trial factoring, factor found */
#define PRIMENET_AR_P1_FACTOR    2    /* P-1, factor found */
#define PRIMENET_AR_ECM_FACTOR    3    /* ECM, factor found */
#define PRIMENET_AR_TF_NOFACTOR    4    /* Trial Factoring no factor found */
#define PRIMENET_AR_P1_NOFACTOR    5    /* P-1 Factoring no factor found */
#define PRIMENET_AR_ECM_NOFACTOR 6    /* ECM Factoring no factor found */
#define PRIMENET_AR_LL_RESULT    100    /* LL result, not prime */
#define PRIMENET_AR_LL_PRIME    101    /* LL result, Mersenne prime */
#define PRIMENET_AR_PRP_RESULT    150    /* PRP result, not prime */
#define PRIMENET_AR_PRP_PRIME    151    /* PRP result, probably prime */
#define PRIMENET_AR_CERT    200    /* Certification result */
PRP residue types (Note, gpuowl only implemented in various versions, a single type; 1, 4, or 0, where 0 corresponds to the PRP-1 simultaneous P-1 and PRP using IIRC a base determined from the exponent and P-1 bounds. Gpuowl has used type 1 since V6.5-84, July 2019.)
Code:
// There are (at least) 5 PRP residue types for testing N=(k*b^n+c)/d:
#define    PRIMENET_PRP_TYPE_FERMAT    1    // Fermat PRP.  Calculate a^(N-1) mod N.  PRP if result = 1
#define    PRIMENET_PRP_TYPE_SPRP        2    // SPRP variant.  Calculate a^((N-1)/2) mod N.  PRP if result = +/-1
#define    PRIMENET_PRP_TYPE_FERMAT_VAR    3    // Type 1 variant,b=2,d=1. Calculate a^(N-c) mod N.  PRP if result = a^-(c-1)
#define    PRIMENET_PRP_TYPE_SPRP_VAR    4    // Type 2 variant,b=2,d=1. Calculate a^((N-c)/2) mod N.  PRP if result = +/-a^-((c-1)/2)
#define    PRIMENET_PRP_TYPE_COFACTOR    5    // Cofactor variant.  Calculate a^(N*d-1) mod N*d.  PRP if result = a^(d-1) mod N
// Primenet encourages programs to return type 1 PRP residues as that has been the standard for prime95, PFGW, LLR for many years.
// Primenet encourages programs to return type 5 PRP residues for cofactor tests as that allows Gerbicz-error checking and proofs.
This is what a PRP-CF performed by prime95 displays in a user's results listing for an example run:
CPU Name roa
Exponent 10516361
Result type C-PRP

received 2020-09-09 04:06
Age days 0.1
Result M10516361/1072668823/249111559369/788796377818991 : F0C2FEF19EB174A1
Ghz-Days 3.4353

The same exponent in Exponent Status shows the known factors, nonzero shift, PRP residue type 5: https://www.mersenne.org/report_expo...0516361&full=1

Last fiddled with by kriesel on 2020-09-09 at 07:07
kriesel is online now   Reply With Quote
Old 2020-09-09, 12:58   #42
storm5510
Random Account
 
storm5510's Avatar
 
Aug 2009
U.S.A.

32168 Posts
Default

Quote:
Originally Posted by kriesel
Nothing there about PRP_CF or PRP_CF_DC. Since storm5510 is operating manually, not using primenet.py, it would have been easy to miss that one.
I don't use this script. I would have had to install Python. I didn't want to install it. I was getting assignments directly from Primenet's "Get Manual Assignments" page. There are two items in the list specifying "cofactors." First-time and double check.

Quote:
PRP=<AID>,1,2,10516021,-1,"315480631"
Above is an assignment Prime95 is currently running. I have Prime95's work type set to first-time tests on cofactors. The exponent page, here, shows an existing factor as does the example above. There is no previous history other than my assignment. Where did this factor come from?

Having a factor, I don't understand how this could be considered a "first-time" test. The more I think about all of this, the more my head hurts.
storm5510 is offline   Reply With Quote
Old 2020-09-09, 13:46   #43
Uncwilly
6809 > 6502
 
Uncwilly's Avatar
 
"""""""""""""""""""
Aug 2003
101×103 Posts

8,863 Posts
Default

Quote:
Originally Posted by storm5510 View Post
There is no previous history other than my assignment. Where did this factor come from?

Having a factor, I don't understand how this could be considered a "first-time" test. The more I think about all of this, the more my head hurts.
Many of the small factors have been known for a long time and the assignments that generated them were not recorded. Assume that it was known by the ancients. Your PRP-CF is the first test to check if the cofactor is prime.
Uncwilly is offline   Reply With Quote
Old 2020-09-09, 13:52   #44
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

125B16 Posts
Default

Quote:
Originally Posted by storm5510 View Post
The exponent page, here, shows an existing factor as does the example above. There is no previous history other than my assignment. Where did this factor come from?
Having a factor, I don't understand how this could be considered a "first-time" test.
https://www.mersenne.ca/exponent/10516021 shows the factor has k=15. That was found so easily that it was probably found very long ago, and it may predate GIMPS and record keeping of trial factoring levels completed per exponent, or any organized system of assignments / reservations.

Another way the situation may occur, is that old factoring gets removed from the database to manage the database size. See the note about that at the bottom of any https://www.mersenne.org/results/ output:
Code:
*Count does not include any results reported to the old v4  server. Also, to keep the database size down, some TF-LMH result lines  are deleted before 365 days pass. Any factors found, trial factoring  limits, and CPU credits are remembered, but the result lines will not  appear in the table above or appear in the count of total results for  the last 365 days.
(Some people mistakenly believe that the absence of listing a bit level of TF such as in an exponent report means it was skipped, and redo it. Please everyone, don't do that. Duplication of TF already completed is not productive.)

As to why PRP-CF is called a first-time test, it's the first time the cofactor is primality tested. This is the same terminology and similar sequence as for an exponent with no factor found. The usual order when searching for Mersenne primes is TF up to a stopping point, if no factor found yet, run a P-1, if no factor found yet, then a first primality test, then eventually a double check of the primality test, or now a Cert of the proof.

The cofactor being tested for primality in PRP-CF is whatever is left after dividing the Mersenne number by the known factors. See for example https://www.mersenne.org/report_expo...0516361&full=1 (the only PRP-CF I've run.)
Or definition of cofactor, #11 of https://www.mersenneforum.org/showpo...65&postcount=3
PRP of a cofactor does not help find new Mersenne primes. It may aid in further factoring of composite Mersenne numbers, which some people like. See https://www.mersenneforum.org/showth...810#post555810

Last fiddled with by kriesel on 2020-09-09 at 13:57
kriesel is online now   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Things that make you go "Hmmmm…" Xyzzy Lounge 4119 2020-11-21 16:07
GpuOwl PRP-Proof changes preda GpuOwl 20 2020-10-17 06:51
gpuOWL for Wagstaff GP2 GpuOwl 22 2020-06-13 16:57
gpuowl tuning M344587487 GpuOwl 14 2018-12-29 08:11
short runs or long runs MattcAnderson Operazione Doppi Mersennes 3 2014-02-16 15:19

All times are UTC. The time now is 12:48.

Tue Nov 24 12:48:41 UTC 2020 up 75 days, 9:59, 4 users, load averages: 1.53, 2.13, 1.93

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.