https://gitlab.inria.fr/cado-nfs/cado-nfs
Raw File
Tip revision: 88c4751ca1fe4677d6b83efa348d4a7b4d15d1fa authored by Emmanuel Thomé on 21 July 2014, 14:19:06 UTC
changes in 2.0.1
Tip revision: 88c4751
params.c91
###########################################################################
#     Parameter file for Cado-NFS
###########################################################################

# This file is a sample parameter file for a 91-digit gnfs input

# Anything after a # is a comment, until end of line.
# Any empty line is ignored
#
# Each parameter should be on an individual line, like
#   param0=42.17

# Some parameters apply to all steps of the algorithm (General parameters
# below), and are related to the execution environment. Some other
# parameters control the many different tunables of the execution of the
# algorithm. Such parameters are relevant to only one of the steps of NFS, and
# are thus listed under the section related to the corresponding
# binary. Each of the section corresponding to one step in particular
# also contains a couple of parameters relative to the execution
# environment (for that step only).

###########################################################################
# General parameters
###########################################################################

# General parameters are relevant to the cadofactor.pl script only.

# This script may be used as: cadofactor.pl wdir=... name=... n=...

# - location and name of files -
    # All files created by cadofactor.pl will be put into <wdir> and its
    # subdirectories.
name=c91
    # All files created by cadofactor will be prefixed by this name.
    
# - parallel computation -
parallel=1              # do we use parallel computation?
machines=mach_desc      # file describing available computers for parallel
                        # computation
    # The cadofactor.pl script has the ability to spawn jobs on many
    # machines using ssh, in a master/slave manner. For this to work, a
    # machines description file is mandatory.
    # This is only used in the polynomial selection and sieving steps.
    # Only the master machine needs access to the <wdir> directory
    # (unless MPI is used for the linear algebra step).
    # Slave machines put their temporary data in the <tmpdir> specified on a
    # per-(group of)machine basis in the machines description file.
    
###########################################################################
# Polynomial selection with Kleinjung's algorithm (2008)
###########################################################################

degree=4                     # degree of the algebraic polynomial
polsel_P=16000               # 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).
polsel_maxnorm=33.4          # max. lognorm of polynomials (before rootsieve)
    # If not set, a default value of 1e9 (in practice infinity) is used.
    # Setting this value right might speed up a lot the polynomial
    # selection, by discarding right away polynomials which are not
    # promising. As a rule of thumb, we want at least 10 polynomials
    # in total below this bound.
polsel_admin=0               # min value for lc(f)
    # If not set, the default is 0.
polsel_admax=50000           # max value for lc(f)
    # The polynomial selection search time is proportional to the
    # length of the interval [polsel_admin,polsel_admax]
polsel_adrange=5000          # individual tasks
    # Polynomial selection is split into several individual tasks. The
    # complete range from polsel_admin to polsel_admax has to be covered for the
    # polynomial selection to complete. The number of individual tasks is
    # obviously (polsel_admax-polsel_admin)/polsel_adrange. 
polsel_incr=60               # forced divisor of lc(f)
    # 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.
     
# - runtime environment parameters for polyselect -
polsel_delay=60              # time between two checks
    # The existence of result files from polyselect jobs is checked at
    # regular intervals. Tune this parameter to check more/less
    # frequently.
polsel_nice=4            # nice level for polyselect
    # This sets the posix ``nice level'' for polyselect jobs. If you
    # don't know what it is, you may leave as is, or set to 0.

###########################################################################
# Sieve
###########################################################################

# (r,a) means rational or algebraic side
rlim=200000
alim=400000
    # rlim/alim are the factor base bounds. The number of rational (resp.
    # algebraic) primes is roughly rlim/log(rlim) (resp. alim/log(rlim))
lpbr=24
lpba=24
    # lpbr/lpba is the (base 2 log of the) large prime bound
mfbr=48
mfba=48
    # mfbr/mfba is the (base 2 log of the) limit for the cofactor we try
    # to split into large primes.
rlambda=2.1
alambda=2.2
    # rlambda/alambda is the early-abort ratio: if after sieving, and
    # subtracting from the base 2 log of the norm the contribution of the
    # sieved primes, the remaining approximate of the base 2 log of the
    # norm is larger than lambda times lpb, we reject.
    # Note that this has in particular the effect that if e.g. rlambda <
    # some integer k+1, then at most k large primes are allowed on the
    # rational side. It is customary, when at most k large primes are
    # allowed, to set rlambda to e.g. k + 0.2, in order to compensate for
    # inaccuracies due to sieving.

I=11                    # Sieving range in lattice siever
    # The lattice siever sieves over a range in the (i,j) plane which is
    # 2^I times 2^(I-1), to put things simply (some rescaling may change
    # this, but the size of the sieve area remains constant). Increasing
    # I by 1 multiplies the amount of required RAM for the siever by a
    # factor of 4.
ratq=0
qmin=400000             # Start of the special-q range
    # The ratq parameters specifies whether or not the special q is to be
    # taken on the rational side (ratq=1) or on the algebraic side
    # (ratq=0).  qmin is usually above the corresponding factor base
    # bound, but this is not a requirement.
    # ratq should be set on the side where the largest norms are
    # expected. As a very rough rule of thumb, this means ratq=0 for gnfs
    # runs, and on some occasions ratq=1 for snfs runs.

qrange=20000            # The size of an elementary sieving task
    # The sieving process is split into many individual tasks. This
    # parameter controls the size of individual tasks.

firstcheck=1660000      # Start of filtering tries
    # We only try to do filtering (and thus check if we have enough relations)
    # once we have accumulated <firstcheck> relations (including duplicates).
    # A rule of thumb is to use 1.6*N/log(N) if N=2^n when lpba=lpbr=n, or
    # 0.8*2^lpba/log(2^lpba) + 0.8*2^lpbrlog(2^lpbr) when lpba <> lpbr.
    # The default value is 1, which means that with checkrange=1 filtering
    # tries are done at the very beginning of the sieving.
    # Make sure to update <firstcheck> whenever you update lpba or lpbr.
    
checkrange=1
    # Each time <checkrange> new relations have been imported by
    # cadofactor.pl, a test is done to see whether enough relations have
    # been collected or not. It is usual to set it to 1 (= always do the
    # check) for small factorizations, but obviously it would be
    # counter-productive to do this check too often for large
    # factorizations. Note that this check is performed on the host
    # running the cadofactor.pl script, and does require a significant
    # amount of RAM.
 
sieve_max_threads=2
    # The lattice siever program las may run in a multithreaded manner.
    # This keeps the amount of memory used constant, and just runs
    # faster.

# - runtime environment -
delay=60                # time in seconds between two checks
    # The existence of result files from siever jobs is checked at
    # regular intervals. Tune this parameter to check more/less
    # frequently.
sievenice=10            # nice level for the sieving jobs
    # This sets the posix ``nice level'' for polyselect jobs. If you
    # don't know what it is, you may leave as is, or set to 0.

###########################################################################
# Filtering
###########################################################################

filterlastrels=0        # if 0, we do the merging with all the relations
			# there. If non-zero (and parallel=1), we incorporate all
			# new relations in the current sieving jobs (which are killed),
			# and do another filtering step with those relations.
			# The default behaviour is 0.

keeppurge=160           # maximal excess wanted after purge
                        # (purge shrinks if needed)
maxlevel=15             # perform up to <maxlevel>-way merges
ratio=1.1               # used only when bwstrat=0 (see below)
bwstrat=3               # bwstrat=0: stops the merge when the weight of
                        #    the matrix multiplied by the number of rows c*N
                        #    exceeds ratio*min(c*N)
                        # bwstrat=1: stops when the product c*N is minimal
                        #    (more exactly when it increases 20 times in a row)
                        # bwstrat=3: stops when the average number of non-zero
                        #    coefficients c/N exceeds coverNmax (default 100)

###########################################################################
# Linear algebra
###########################################################################

# - runtime environment -
# cadofactor.pl supports only running the linear system solving on the
# host running cadofactor.pl itself, using posix threads. More advanced
# usage has to go by hand.
bwmt=2x2                # Multithreading level of Block-Wiedemann ; Use
                        # <m>x<n> for bwc, or only one integer for bw.
bwc_interval=100        # checkpointing interval for bwc.

###########################################################################
# Characters
###########################################################################

nkermax=30              # maximal size of computed kernel
nchar=50                # number of characters
back to top