View Single Post
Old 2019-07-22, 16:54   #22
kriesel
 
kriesel's Avatar
 
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest

10100011101012 Posts
Default Worktodo entry formats

This is a quick reference for worktodo entry formats for multiple GIMPS programs.
These are a best-effort summary and not guaranteed to be correct or complete. For confirmation, see the performance or help output of the respective programs, their documentation files, and communications by the authors.

Syntax used here:

\ [ or \ ] means a literal [ or ] is present. (It needs that space between, or it itself does unwanted formatting of this post)
[a|x] either a or x (but not both)
[a] optional a, nul otherwise
[a|b|<nul>] either a or b or neither, but not both
[a[,b[,c]]] a is optional, if neither ,b nor ,c are present; ,b is optional, if ,c is not present; ,c is optional

(parenthetical comment on an example, that should not be included in an actual worktodo entry)
whatever is outside of <> and [] and () is literal
<variable> means substitute the string representation of the value of variable in place of <variable>

Variables used here:
AID = 32-character assignment ID
B1 = first stage bound
B2 = second stage bound
exponent in m=2exponent - 1 and typically a prime
k, b, n, c, for number m = k bn + c and typically a prime. For a Mersenne number, k=1, b=2, c=-1.
from = trial factoring starting bit level; lowest candidate factor ~ 2from
to = trial factoring ending bit level; highest candidate factor ~ 2to
prp_base = the number that gets raised to a high power in the PRP test, typically 3
how_far_factored = bits level previously factored to in TF
tests_saved = integer number of future primality tests saved if a factor is found, usually 2 for a first test candidate, 1 for a double-check candidate, 0 if a sufficient P-1 has already been completed, or optionally up to 9 for aggressive P-1 factoring
p-1_done = 1 if done to adequate bounds, 0 if not done already to adequate bounds
squarings = number of squaring iterations for performing a PRP verification/certificate generation
nul = null string, no characters
nth_run = [1|2|3] corresponding to start values 2/7, 6/5, or random1/random2 for P+1
nworker= natural number for the worker header / section; 1 2 3 etc as applicable

residue_type. From the prime95 undoc.txt:
"PRP supports 5 types of residues for compatibility with other PRP programs. If a is the PRP base and N is the number being tested, then the residue types are:
1 = 64-bit residue of a^(N-1), a traditional Fermat PRP test used by most other programs
2 = 64-bit residue of a^((N-1)/2)
3 = 64-bit residue of a^(N+1), only available if b=2
4 = 64-bit residue of a^((N+1)/2), only available if b=2
5 = 64-bit residue of a^(N*known_factors-1), same as type 1 if there are no known factors"
Additionally, there is a residue type 0 in some versions of gpuowl that is simultaneous PRP and P-1, and most versions of gpuowl perform only a single residue_type of PRP without simultaneous P-1

Typically,
Factor=[<AID>,]<exponent>,<from>,<to>
PFactor=[AID>,]<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
Test=[<AID>,]<exponent>,<how_far_factored>,<p-1_done>
Doublecheck=[<AID>,]<exponent>,<how_far_factored>,<p-1_done>
PRP varies

Formats and examples follow for several commonly used GIMPS programs.
Note some are known to be case-sensitive. PFactor != Pfactor for example.


Mfaktc or Mfakto
Factor=[<AID>,]<exponent>,<from>,<to>
[#|//|\\]whatever comment you want, including valid worktodo entry lines
Factor=7F797F1F8BC4B5C234CB29D8BAD8B680,93040447,74,75
// some comment
CUDAPm1
PFactor=[<AID>,]1,2,<exponent>,-1,<how_far_factored>,<tests_saved>
[#|//|\\]whatever comment you want, including valid worktodo entry lines
PFactor=1,2,415000043,-1,82,2
# some comment
Note, to specify the bounds, use the command-line -b1 and -b2 options.
CUDALucas or cllucas
Test=[<AID>,]<exponent>,<how_far_factored>,<p-1_done>
Doublecheck=[<AID>,]<exponent>,<how_far_factored>,<p-1_done>
[#|//|\\]whatever comment you want, including valid worktodo entry lines
Test=402143717,81,1
DoubleCheck=4BACCC7E79F9878B2D2F606C6DF40123,50879989,74,1
\\ some comment
Gpuowl (may vary in syntax and availability versus version)
(A note of caution, PRP residue type is dependent on gpuowl version. To qualify as a PRP DC, residue types must match.)
TF (V3.7 - v3.9?)
Factor=[<AID>,]<exponent>,<from>,<to>
Factor=332298607,76,77

P-1
[B1=<B1>[,B2=<B2>];]PFactor=[AID|0],1,2,<exponent>,-1,<how_far_factored>,<tests_saved> (v6.x)
B1=790000,B2=16590000;PFactor=A125254BD75564243D4B73D4EC601234,1,2,91538501,-1,77,2 (v6.x)
PFactor=B1:<B1>,<exponent> (v4.x)
PFactor=B1:20000,83780327 (v4.x)

LL (version <0.7)
[Test|DoubleCheck]=[<AID>|0],<exponent>,<how_far_factored>,<p-1_done>
[Test|DoubleCheck]=<exponent>
DoubleCheck=0,70100200,0,0
Test=70100200
LL (version >~v6.11-252)
DoubleCheck=[AID|0],<exponent>,<how_far_factored>,<p-1_done>
DoubleCheck=1AAFFAAD0000000FFFF,51456287,74,1

PRP (version >0.6; varies in residue type by gpuowl version, type 1 preferred)
PRP=[<AID>|0],<k>,<b>,<n>,<c>,<how_far_factored>,<p-1_done>
PRP=0,1,2,1500000041,-1,87,1

PRP-1 (PRP residue type 0)
[B1=<B1>,][B2=<B2>,]PRP=[AID|0],1,2,<exponent>,-1,<how_far_factored>,<tests_saved> (~v4.7 - v5.0; defaults to B2=exponent)
B1=2000000,B2=40000000;PRP=0,1,2,82252003,-1,76,0

PRP-CF is not supported in any version to date

Comment
; preface a worktodo line with a semicolon (or perhaps anything unexpected) will cause it to be ignored, functioning as a comment, except for the error message it will generate.
Also, for a PRP line, additional content following <p-1 done> and a separating , appears to be ignored, so could serve as an inline comment about the work item in certain gpuowl versions
prime95 / mprime
<AID>: an already-issued assignment identifier
N/A: no AID issued yet, and don't get one at the next PrimeNet checkins
<nul>: no AID issued yet, but get one at the next PrimeNet checkin

Worker header (precedes worktodo entries for the given worker)
\ [Worker #<nworker>\ ]
[Worker #1]
TF
Factor=[<AID>,|N/A,|<nul>]<exponent>,<from>,<to>
Factor=N/A,1257787,1,64

P-1
Pminus1=[<AID>,|N/A,|<nul>]<k>,<b>,<n>,<c>,<B1>,<B2>[,"comma-separated-list-of-known-factors"]
Pfactor=[<AID>,|N/A,|<nul>]<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
Pminus1=1,2,660000031,-1,3600000,180000000
Pfactor=N/A,1,2,500000693,-1,82,2

P+1 (new with v30.6)
(Note, not productive or recommended for GIMPS wavefront work!) Pplus1=[<AID>,|N/A,|<nul>]<k>,<b>,<n>,<c>,<B1>,<B2>,<nth_run>[,<how_far_factored>][,"comma-separated-list-of-known-factors"]
Pplus1=N/A,1,2,103598543,-1,1000000,30000000,1
Pplus1=N/A,1,2,103598543,-1,1000000,30000000,2
Pplus1=1,2,103598543,-1,1000000,30000000,3

LL
Test=[<AID>,|N/A,|<nul>]<exponent>,<how_far_factored>,<p-1_done>
Doublecheck=[<AID>,|N/A,|<nul>]<exponent>,<how_far_factored>,<p-1_done>
Test=N/A,82589933,82,1

PRP (and PRP DC for manual assignments, or most versions)
PRP=[<AID>,|N/A,|<nul>]<k>,<b>,<n>,<c>[,<how_far_factored>,<tests_saved>[,<prp_base>,<residue_type>[,"comma-separated-list-of-known-factors"]]]
PRP=N/A,1,2,82589933,-1 (mersenne prime record)
PRP=N/A,1,2,268435459,1,80,0,3,5,"3" (Wagstaff number)
PRP=1,2,82589933,-1,82,0 (to have PrimeNet issue an AID for it at the next checkin)
NOTE: as of v30.x, it's recommended to include <how_far_factored,<tests_saved>, to prevent repeating unnecessary TF from 0 bits, and prevent repeating unnecessary P-1 factoring

PRPDC (via PrimeNet API with new enough prime95/mprime version; per Woltman post; not independently confirmed yet)
PRPDC= instead of PRP=, otherwise same as for PRP as shown above

PRP-CF / PRP-CF-DC
see above, PRP, with comma separated list of known factors

Comment
;whatever comment you want, including valid worktodo entry line copies

PRP Certificate/verification (beginning at v30.1b1)
Cert=AID,k,b,n,c,squarings
Cert=(redacted),1,2,97457587,-1,380694
Mlucas
[Test|DoubleCheck]=[<AID>,]<exponent>,<how_far_factored>,<p-1_done>
<exponent> (does an LL test of the corresponding Mersenne number)
DoubleCheck=B83D23BF447184F586470457AD1E03AF,22831811,66,1
Test=DDD21F2A0B252E499A9F9020E02FE232,48295213,69,0
Test=332220523,80,1
332220523

V19 adds PRP and PRP DC forms, for Mersenne numbers only, residue-type 1 or 5:
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>,<base-of-first-test>,<residue-type>
PRP=<AID>,1,2,<n>,-1,<to>,<tests_saved>
PRP=<AID>,1,2,<n>,-1,<to>,<tests_saved>,<base-of-first-test>,[1|5]
PRP=0123456789ABCDEF0123456789ABCDEF,1,2,332220523,-1,0
PRP=0123456789ABCDEF0123456789ABCDEF,1,2,332220523,-1,0,3,1
Mlucas primenet.py (work queuing)
[Test|DoubleCheck]=<AID>,<exponent>,<how_far_factored>,<p-1_done>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>,<base-of-first-test>,<residue-type>

Top of this reference thread: https://www.mersenneforum.org/showpo...89&postcount=1
Top of reference tree: https://www.mersenneforum.org/showpo...22&postcount=1

Last fiddled with by kriesel on 2021-06-07 at 22:00 Reason: added optionals nesting construct for prime95/mprime PRP, PRP-CF
kriesel is offline