View Single Post
 2020-05-16, 16:55 #1 EdH     "Ed Hall" Dec 2009 Adirondack Mtns 3,461 Posts Polynomial Selection Parameters Discussion Note: This initial post is for reference only. The following posts are for discussion. This thread is intended to allow discussion of the parameters used in Polynomial Selection for CADO-NFS. The following parameters are avaiable ("tasks.polyselect." preceeds each in the parameters files): Code: degree threads P admin admax incr nrkeep adrange nq sopteffort ropteffort I have added the Polynomial Selection section of params.c90 for easy reference to their descriptions and defaults. Extraction from CADO-NFS params.c90, explaining available parameters: Code: ########################################################################### # Polynomial selection task with Kleinjung's algorithm (2008) ########################################################################### tasks.polyselect.degree = 4 # degree of the algebraic polynomial #tasks.polyselect.threads = 2 # # How many threads to use per polyselect process tasks.polyselect.P = 10000 # choose lc(g) with two prime factors in [P,2P] # Setting a large value will most likely find better polynomials, # but the number of found polynomials will be smaller. # As a rule of thumb, we want at least 100 found polynomials in total # (without norm limitation, see below). # We must have P larger than primes in the SPECIAL_Q[] list. tasks.polyselect.admin = 0 # min value for leading coefficient of f(x) # If not set, the default is 0. # Note: admin is not necessarily a multiple of incr (defined below). tasks.polyselect.admax = 100e3 # max value for leading coefficient of f(x) # In fact the maximal value is admax-1, so that we can run for example: # polyselect -admin 1000 -admax 2000 and polyselect -admin 2000 -admax 3000 # without duplicating the value 2000. tasks.polyselect.incr = 60 # increment for leading coefficient of f(x) # This factor is usually a smooth number, which forces projective roots in # the algebraic polynomial. 60 is a good start, 210 is popular as well. # Note: admin and admax are not necessarily multiples of incr, for # example polyselect -incr 60 -admin 0 -admax 200 will deal with 60, 120, # and 180, while polyselect -incr 60 -admin 200 -admax 400 will deal with # 240, 300, and 360. # The polynomial selection search time is proportional to the # length of the search interval, i.e., (admax-admin)/incr. tasks.polyselect.nrkeep = 40 # number of polynomials kept in stage 1 of # polynomial selection (size optimization) tasks.polyselect.adrange = 5000 # size of individual tasks # Polynomial selection is split into several individual tasks. The # complete range from admin to admax has to be covered for the polynomial # selection to complete. The number of individual tasks is # (polsel_admax-polsel_admin)/polsel_adrange. Each such task is issued as # a workunit to a slave for computation. tasks.polyselect.nq = 256 # Number of small prime combinations in the leading coefficient of the # linear polynomial. Safe to leave at the default value. # Recommended values are powers of the degree, e.g., 625 for degree 5, # or 1296 for degree 6. Here 256 = 4^4 thus the leading coefficient of # the linear polynomial will be q1*q2*q3*q4*p1*p2 where q1,q2,q3,q4 are # small primes, and P <= p1, p2 < 2*P. For a given pair (p1,p2), 256 # different combinations of q1,q2,q3,q4 will be tried. tasks.polyselect.sopteffort = 0 # Indicates how much effort is spent in stage 1 (size optimization) of the # polynomial selection. The default value is 0. The size optimization time # is roughly proportional to 1+sopteffort. tasks.polyselect.ropteffort = 0.2 # Indicates how much effort is spent in stage 2 (rootsieve) of the # polynomial selection. The number of sublattices considered is # proportional to ropteffort, and the rootsieve time is roughly # proportional to ropteffort. This is a floating-point value.