mersenneforum.org  

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

Reply
Thread Tools
Old 2019-05-06, 19:13   #1134
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

19×397 Posts
Default

Quote:
Originally Posted by SELROC View Post
To do P-1, do I have to get a different assignment type ?
No, but prime95's worktodo.txt would be:

Pfactor=exponent,how_far_factored

I would not change your workflow until preda weighs in
Prime95 is offline   Reply With Quote
Old 2019-05-06, 19:14   #1135
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

26×5×17 Posts
Default

Quote:
Originally Posted by SELROC View Post
To do P-1, do I have to get a different assignment type ?
It works on primenet to perform P-1 without an assignment, while you hold a primality test assignment. Manually submitting such a P-1 result will generate a message that there was an assignment type mismatch for the exponent, but the result is accepted, computing credit isgiven, and the existing primality test assignment for the same exponent is unaffected.

Similarly, if assigned P-1, some additional manual TF for the same exponent can be performed and reported before the assigned P-1 is. I've had success doing so and altering the bits-factored-to field of the P-1 worktodo entry to match, which CUDAPm1 uses to determine optimal bounds.

It's bad form to do a different primality test type than assigned.

Last fiddled with by kriesel on 2019-05-06 at 19:15
kriesel is offline   Reply With Quote
Old 2019-05-06, 19:20   #1136
SELROC
 

53·11 Posts
Default

Quote:
Originally Posted by kriesel View Post
It works on primenet to perform P-1 without an assignment, while you hold a primality test assignment. Manually submitting such a P-1 result will generate a message that there was an assignment type mismatch for the exponent, but the result is accepted, computing credit isgiven, and the existing primality test assignment for the same exponent is unaffected.

Similarly, if assigned P-1, some additional manual TF for the same exponent can be performed and reported before the assigned P-1 is. I've had success doing so and altering the bits-factored-to field of the P-1 worktodo entry to match, which CUDAPm1 uses to determine optimal bounds.

It's bad form to do a different primality test type than assigned.

Thanks.
However, may I ask (@Preda) why P-1 on GpuOwl involved the CPU (which becomes hot) at some point near the end?
  Reply With Quote
Old 2019-05-06, 19:42   #1137
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

26·5·17 Posts
Default

Quote:
Originally Posted by SELROC View Post
Thanks.
However, may I ask (@Preda) why P-1 on GpuOwl involved the CPU (which becomes hot) at some point near the end?
If I recall correctly, neither CUDAPm1 nor gpuowl do the required gcd on the gpu, using instead the cpu for that portion via gmp.

That Preda is so efficient, he answered your question months before you asked.
https://www.mersenneforum.org/showpo...&postcount=946
Quote:
It needs GMP (for the GCD done on the CPU, as was before with PRP-1)
kriesel is offline   Reply With Quote
Old 2019-05-06, 21:33   #1138
preda
 
preda's Avatar
 
"Mihai Preda"
Apr 2015

25338 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Yes, P-1 is highly recommended.

It's a question of "relative" performance. That is, if on your machine GpuOwl is 5x faster than prime95 at PRP but only 2x faster at P-1, then GpuOwl should be doing PRP 100% of the time. Use prime95 on your CPU to do all your P-1 work prior to having the the GPU do the PRP.

Your P-1 bounds are "suspicious" in that when prime95 is used to double-check your result years down the road, I think prime95 will want to redo the P-1 to higher bounds.

IIUC, Preda has a somewhat different view on optimal P-1 bounds in that he believes Gerbicz error checking in the initial PRP test means double-checking is not necessary.

For reference, prime95 would use these bounds (assuming 1.8GB of memory).
Saving 1 LL/PRP test: B1=1,115,000 B2=14,495,000
Saving 2 LL/PRP tests: B1=2,395,000 B2=35,326,000
GpuOwl can do P-1 now, and it's rather efficient at it -- especially stage2 on high-RAM GPUs such as R7 with 16GB. Two GCD per test are offloaded to the CPU (one after each stage).

OTOH GpuOwl doesn't do "preliminary P-1" ahead of a PRP test by its own initiative. One reason being that the already-done P-1 information is not included in the assignment line for a P-1 test (unlike the already-done TF information, which is included), thus GpuOwl could not know whether P-1 is needed or not ahead of PRP.

The solution, for a 100M exponent, is for the user to manually do "preliminary P-1" if desired, before the PRP. Either by getting a manual P-1 assignment for the exponent, or by creating the worktodo line simply without AID (without assignment from the server) and still submit the result at the end.

Last fiddled with by preda on 2019-05-06 at 21:34
preda is offline   Reply With Quote
Old 2019-05-06, 22:16   #1139
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

19·397 Posts
Default

Quote:
Originally Posted by preda View Post
GpuOwl can do P-1 now, and it's rather efficient at it -- especially stage2 on high-RAM GPUs .
How were the 100M P-1 bounds calculated? They were vastly smaller than prime95's optimal P-1 bounds.
Prime95 is offline   Reply With Quote
Old 2019-05-06, 22:20   #1140
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

19·397 Posts
Default

Quote:
Originally Posted by preda View Post
OTOH GpuOwl doesn't do "preliminary P-1" ahead of a PRP test by its own initiative. One reason being that the already-done P-1 information is not included in the assignment line for a P-1 test (unlike the already-done TF information, which is included), thus GpuOwl could not know whether P-1 is needed or not ahead of PRP.
A PRP worktodo line looks like this:
PRP=k,b,n,c[,how_far_factored,tests_saved[,base,residue_type]][,known_factors]

If tests_saved is zero then P-1 has been done. If one, then this is a PRP double-check with no P-1 done yet. If two then this is a first-time PRP with no P-1 done yet.

I have not validated that the server is sending this data properly to prime95 (or formatting them properly in the manual reservations web page).
Prime95 is offline   Reply With Quote
Old 2019-05-06, 23:08   #1141
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

544010 Posts
Default

Quote:
Originally Posted by Prime95 View Post
A PRP worktodo line looks like this:
PRP=k,b,n,c[,how_far_factored,tests_saved[,base,residue_type]][,known_factors]

If tests_saved is zero then P-1 has been done. If one, then this is a PRP double-check with no P-1 done yet. If two then this is a first-time PRP with no P-1 done yet.

I have not validated that the server is sending this data properly to prime95 (or formatting them properly in the manual reservations web page).
prime95 via primenet: PRP=(aid redacted),1,2,79335979,-1,75,0,3,1
fresh from manual assign now: PRP=(aid redacted),1,2,85128553,-1,76,0
kriesel is offline   Reply With Quote
Old 2019-05-07, 03:57   #1142
SELROC
 

2·17·227 Posts
Default

Quote:
Originally Posted by kriesel View Post
It works on primenet to perform P-1 without an assignment, while you hold a primality test assignment. Manually submitting such a P-1 result will generate a message that there was an assignment type mismatch for the exponent, but the result is accepted, computing credit isgiven, and the existing primality test assignment for the same exponent is unaffected.

Similarly, if assigned P-1, some additional manual TF for the same exponent can be performed and reported before the assigned P-1 is. I've had success doing so and altering the bits-factored-to field of the P-1 worktodo entry to match, which CUDAPm1 uses to determine optimal bounds.

It's bad form to do a different primality test type than assigned.

This all requires manual intervention, which I am moving away from. I have other projects to follow and I need GIMPS to work on his own.


It could be easier if the server can assign PRP with P-1, even better, if GpuOwl could do P-1 before PRP.
  Reply With Quote
Old 2019-05-07, 08:30   #1143
preda
 
preda's Avatar
 
"Mihai Preda"
Apr 2015

3·457 Posts
Default

Quote:
Originally Posted by Prime95 View Post
How were the 100M P-1 bounds calculated? They were vastly smaller than prime95's optimal P-1 bounds.
Which ones? (for which exponent, user)

GpuOwl always takes P-1 bounds from the user. They can be configured per-exponent or globally (per run). The user must configure (specify) at least B1. By default B2==30*B1, but this is also configurable either as a ratio (relative to B1) or absolute B2.

For exponents around 95M (the P-1 wavefront), I would consider normal bounds (assuming no previous P-1 done) anything with B1 between 500K and 2M, and rB2 between 10 and 25.

For exponents at 100M-digits, which might have lower TF, I would probably use B1 around 1M-3M and rB2 20 to 30.

Right now I'm not doing P-1 because the exponents at 85M where I PRP are fully P-1'ed. If I'd do 100M-digits exponents, probably I would allocate.. up to about 4% of the the test time (about half-a-day on R7?) for additional P-1 and TF before starting the PRP.
preda is offline   Reply With Quote
Old 2019-05-07, 10:18   #1144
preda
 
preda's Avatar
 
"Mihai Preda"
Apr 2015

3·457 Posts
Default

Quote:
Originally Posted by Prime95 View Post
A PRP worktodo line looks like this:
PRP=k,b,n,c[,how_far_factored,tests_saved[,base,residue_type]][,known_factors]

If tests_saved is zero then P-1 has been done. If one, then this is a PRP double-check with no P-1 done yet. If two then this is a first-time PRP with no P-1 done yet.

I have not validated that the server is sending this data properly to prime95 (or formatting them properly in the manual reservations web page).
Thank you, so the boolean information on whether any P-1 has been done is there in the assignment in the form of "tests_saved".

Note though that in this particular case (
https://www.mersenne.org/report_expo...2252533&full=1 ), P-1 has been done before the PRP although to insufficient bounds (not by GpuOwl).

I can change GpuOwl to auto-trigger P-1 for a PRP without any P-1; but I still can't handle the case of P-1 done with insufficient bounds.
preda is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
mfakto: an OpenCL program for Mersenne prefactoring Bdot GPU Computing 1676 2021-06-30 21:23
GPUOWL AMD Windows OpenCL issues xx005fs GpuOwl 0 2019-07-26 21:37
Testing an expression for primality 1260 Software 17 2015-08-28 01:35
Testing Mersenne cofactors for primality? CRGreathouse Computer Science & Computational Number Theory 18 2013-06-08 19:12
Primality-testing program with multiple types of moduli (PFGW-related) Unregistered Information & Answers 4 2006-10-04 22:38

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


Fri Aug 6 21:37:52 UTC 2021 up 14 days, 16:06, 2 users, load averages: 2.06, 2.50, 2.61

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, 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.