"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
5·31·43 Posts

Worktodo entry formats
This is a quick reference for worktodo entry formats for multiple GIMPS programs.
These are a besteffort 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 is:
\ [ or \ ] means a literal [ or ] is present. (It needs that space between, or it itself does unwanted formatting of this post)
[ax] either a or x (but not both)
[a] optional a, nul otherwise
[ab<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 = 32character hexadecimal assignment ID
AlmostRandomString = any (US) keyboard character string including space and tab but not including any comma (and perhaps not containing some comment indicators and perhaps including some additional characters; embedded # is ok, but apparently not // or \\)
B1 = first stage bound
B2 = second stage bound
B2_start = where to begin a B2 extension run
comment = free form text not processed by the application
curves_to_run = number of curves for ECM
exponent = power in m=2 ^{exponent}  1 and typically a prime
k, b, n, c, for number m = k b ^{n} + c and typically a prime. For a Mersenne number, k=1, b=2, c=1.
from = trial factoring starting bit level; lowest candidate factor ~ 2 ^{from}
how_far_factored = bits level previously factored to in TF
MAX_LINE_LENGTH = maximum length of a worktodo entry in characters without a terminating '\0' .
nul = null string, no characters. Not to be confused with \0 the nul character.
nth_run = [123] 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
p1_done = 1 if done to adequate bounds, 0 if not done already to adequate bounds
prp_base = the number that gets raised to a high power in the PRP test, typically 3
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 = 64bit residue of a^(N1), a traditional Fermat PRP test used by most other programs
2 = 64bit residue of a^((N1)/2)
3 = 64bit residue of a^(N+1), only available if b=2
4 = 64bit residue of a^((N+1)/2), only available if b=2
5 = 64bit residue of a^(N*known_factors1), 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 P1, and most versions of gpuowl perform only a single residue_type of PRP without simultaneous P1.
squarings = number of squaring iterations for performing a PRP verification/certificate generation
tests_saved = (usually integer) number of future primality saved if a factor is found, usually issued by the server as 2 for a first test candidate, 1 for a doublecheck candidate, 0 if a sufficient bounds P1 has already been completed. (Note that "sufficient" may be smaller bounds than would be optimal. I do not know specifically what the PrimeNet server's threshold for "sufficient" is.) Optionally, value can be manually reduced from 2 to 1 if it is known with certainty the primality test will be a PRP with GEC and proof generation, which has a high likelihood of only requiring one primality test. Optionally in mprime /prime95 or CUDAPm1, value can be manually increased up to 10 for aggressive P1 factoring (larger value inputs are reduced to 10). Mprime/prime95 support rational number (floating point) tests_saved values in decimal, compatible with C %f format, such as 1.4 or 1.16 or 0.96. Mprime/prime95 computes bounds for the entered value, subject to a maximum of 10, and various other considerations including allowable memory usage, and rounds tests_saved in its output to two significant digits, without affecting the bounds selected and used. Values may be restricted to be at least 0 or 1 depending on application and context. (CUDAPm1 requires integer > 0. Gpuowl processes the input value as unsigned integer. Mlucas processes the input as unsigned long, and exits if the value > 2, with a message that the value should be 0, 1, or 2.)
to = trial factoring ending bit level; highest candidate factor ~ 2 ^{to}
Typically,
Factor=[<AID>,]<exponent>,<from>,<to>
PFactor=[AID>,]<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
Test=[<AID>,]<exponent>,<how_far_factored>,<p1_done>
Doublecheck=[<AID>,]<exponent>,<how_far_factored>,<p1_done>
PRP varies
Formats and examples follow for several commonly or historically used GIMPS programs.
Note some are known to be casesensitive. PFactor != Pfactor for example.
Mfaktc or MfaktoMAX_LINE_LENGTH is 100
Factor=[<AID>,<AlmostRandomString>,<nul>]<exponent>,<from>,<to>
[#//\\]whatever comment you want, including valid worktodo entry lines
Factor=7F797F1F8BC4B5C234CB29D8BAD8B680,93040447,74,75
Factor=anyrandom_text_insteadofAID.1234567890=qwertyuiop[]\asdfghjkl;'zxcvbnm,2000000099,75,76
Factor=~./!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<> ? #,2000000099,75,76
// some comment. to is limited to 95 bits in mfaktc, 92 bits in mfakto.
// exponent is limited to 2^{32}1
// 2^{<to>}/<exponent>/2 = kmax is limited to 2^{63.9} CUDAPm1 PFactor=[<AID>,]1,2,<exponent>,1,<how_far_factored>,<tests_saved>[[#//\\]<comment>]
[#//\\]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 commandline b1 and b2 options. Also, CUDAPm1 internally pads tests_saved assuming a primality test error rate of 1.8% per test times two tests. Source code indicates support for inline comments on worktodo lines also.
See https://www.mersenneforum.org/showpo...8&postcount=36 and http://www.mersenneforum.org/showpos...65&postcount=7 for exponent limits.
CUDALucas or cllucas Test=[<AID>,]<exponent>,<how_far_factored>,<p1_done>
Doublecheck=[<AID>,]<exponent>,<how_far_factored>,<p1_done>
[#//\\]whatever comment you want, including valid worktodo entry lines
Test=402143717,81,1
DoubleCheck=4BACCC7E79F9878B2D2F606C6DF40123,50879989,74,1
\\ some comment
See https://www.mersenneforum.org/showpo...8&postcount=36 and https://www.mersenneforum.org/showpo...6&postcount=14 for exponent limits. 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.)
See https://www.mersenneforum.org/showpo...8&postcount=36 for version and computationtype specific exponent limits. TF (V3.7  v3.9?, Linux, ROCm required)
Factor=[<AID>,]<exponent>,<from>,<to>
Factor=332298607,76,77
P1
[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)
[TestDoubleCheck]=[<AID>0],<exponent>,<how_far_factored>,<p1_done>
[TestDoubleCheck]=<exponent>
DoubleCheck=0,70100200,0,0
Test=70100200
LL (version >~v6.11252 but not v7.x)
DoubleCheck=[AID0],<exponent>,<how_far_factored>,<p1_done>
DoubleCheck=1AAFFAAD0000000FFFF,51456287,74,1
PRP (version >0.6; varies in residue type by gpuowl version, type 1 preferred)
(commits beginning ~ v6.11382, v7.293 include nul option for AID field)
PRP=[<AID>0],<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
PRP=0,1,2,1500000041,1,87,1
PRPDC (commits beginning ~ v6.11382, v7.293)
PRPDC=[<AID>0],<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
PRPDC=0,1,2,1500000041,1,87,1
PRP with merged P1 (V7.x, standard PRP residue type 1, seed 3)
[B1=<B1>[,B2=<B2>];]PRP=[<AID>0],1,2,<exponent>,1,<how_far_factored>,<tests_saved>
PRP1 (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
PRPCF is not supported in any gpuowl 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 <p1 done> and a separating , appears to be ignored, so could serve as an inline comment about the work item in certain gpuowl versions
prime95 / mprimeSupports Fermat numbers and Mersenne numbers. Only Mersenne numbers are covered here. Supports reals as P1 tests_saved, and probably P+1 also.
See https://www.mersenneforum.org/showpo...8&postcount=36 for computationtype specific exponent limits, and note that cpu type and software version may impose lower limits. <AID>: an alreadyissued 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
P1
Pminus1=[<AID>,N/A,<nul>]<k>,<b>,<n>,<c>,<B1>,<B2>[,"commaseparatedlistofknownfactors"]
Pminus1=[<AID>,N/A,<nul>]<k>,<b>,<n>,<c>,<B1>,0,<how_far_factored> ;;~v30.4 or above
Pfactor=[<AID>,N/A,<nul>]<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
Pminus1=1,2,660000031,1,3600000,180000000
Pminus1=1,2,660000031,1,3600000,3600000 ;;(for stage1only operation B2=B1)
Pminus1=1,2,660000031,1,3600000,0,84 ;;(program selects B2 based on available ram and TF to 84 bits)
Pfactor=N/A,1,2,500000693,1,82,2
Pfactor=N/A,1,2,500000693,1,82,1.4
Pfactor=N/A,1,2,500000693,1,82,1.05
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>][,"commaseparatedlistofknownfactors"]
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
ECM
(Since ECM is not useful for finding new Mersenne primes, it is included here only for completeness)
ECM2=k,b,n,c,B1,B2,curves_to_run[,"commaseparatedlistofknownfactors"]
ECM2=1,2,1277,1,800000000,800000000000,10
(although such bounds thrash my laptop horribly despite setting to limit ram usage to half)
LL
Test=[<AID>,N/A,<nul>]<exponent>,<how_far_factored>,<p1_done>
Doublecheck=[<AID>,N/A,<nul>]<exponent>,<how_far_factored>,<p1_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>[,"commaseparatedlistofknownfactors"]]]
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 P1 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
PRPCF / PRPCFDC
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
MlucasSupports Fermat numbers and Mersenne numbers. Only Mersenne numbers are covered here.
See https://www.mersenneforum.org/showpo...8&postcount=36 for computationtype specific exponent limits, and note that cpu type and software version may impose lower limits. LL
[TestDoubleCheck]=[<AID>,]<exponent>,<how_far_factored>,<p1_done>
<exponent> (does an LL test of the corresponding Mersenne number; discontinued support of this format as of V20.1.1)
DoubleCheck=B83D23BF447184F586470457AD1E03AF,22831811,66,1
Test=DDD21F2A0B252E499A9F9020E02FE232,48295213,69,0
Test=332220523,80,1
332220523
PRP
V19 adds PRP and PRP DC forms, for Mersenne numbers only, residuetype 1 or 5:
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>,<baseoffirsttest>,<residuetype>
PRP=<AID>,1,2,<n>,1,<to>,<tests_saved>
PRP=<AID>,1,2,<n>,1,<to>,<tests_saved>,<baseoffirsttest>,[15]
PRP=0123456789ABCDEF0123456789ABCDEF,1,2,332220523,1,0
PRP=0123456789ABCDEF0123456789ABCDEF,1,2,332220523,1,0,3,1
P1 (new with V20.0; following is from my reading of its Mlucas.c and error messages from experiments; note, full length AID is required, even for manually generated unassigned lines)
P[Mm]inus1=<AID>,<k>,<b>,<n>,<c>,<B1>,<B2>[,<how_far_factored>[,<B2_start>[,"commaseparatedlistofknownfactors"]]]
P[fF]actor=<AID>,<k>,<b>,<n>,<c>,<how_far_factored>,<tests_saved>
PFactor=00000000000000000000000000000000,1,2,468000023,1,82,2
ECM (this appears to me in the V20 source code, not functional for Mersennes, after a quick look)
No Mlucas version to date offers PRP proof generation or PRPCF
Mlucas primenet.py (work queuing) [TestDoubleCheck]=<AID>,<exponent>,<how_far_factored>,<p1_done>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>
PRP=<AID>,<k>,<b>,<n>,<c>,<to>,<tests_saved>,<baseoffirsttest>,<residuetype>
MfactorSupports TF on Mersenne numbers, double mersennes, and Fermat numbers.
No worktodo support. Command line options only.
See https://www.mersenneforum.org/showpo...8&postcount=36 for and first attachment at https://www.mersenneforum.org/showpo...24&postcount=1 for buildspecific exponent and bits limits.
Factor5 Supports TF on Mersenne numbers.
No worktodo support. Command line options only.
Exponent and bit levels limited by storage space and feasible run time.
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 20220606 at 23:42
Reason: added prime95 ECM2; caseinsensitivealphabetize variables section
