README 3.69 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
The cadofactor Python script is generally run with

./cadofactor.py parameterfile

All the parameters for the factorization are read from the parameter file,
but it is possible to specify such parameters on the command line, after
parameterfile.

For example, running

11
./cadofactor.py ../../params/params.c59 N=90377629292003121684002147101760858109247336549001090677693 tasks.workdir=/tmp/c59 tasks.execpath=$HOME/build/cado-nfs/normal server.whitelist=0.0.0.0/0
12 13 14 15 16

start the cadofactor script, which also starts the server. It does not start any clients with this command line, so those would have to be started manually:

./wuclient2.py --server=http://quiche.loria.fr:8001

17 18
where the --server parameter should be given the URL of the server, as printed by the cadofactor script.
You can start an arbitrary number of client scripts, on any machines that can connect to the server via HTTP.
19 20 21

If you want to let the server automatically start clients, you need to supply a list of hostnames on which to start clients, e.g.,

22
./cadofactor.py ../../params/params.c59 N=90377629292003121684002147101760858109247336549001090677693 tasks.workdir=/tmp/c59 tasks.execpath=$HOME/build/cado-nfs/normal slaves.hostnames=localhost slaves.nrclients=2 slaves.scriptpath=$HOME/git/cado-nfs/scripts/cadofactor
23

24
to let it start two clients on localhost. The scriptpath parameter must be the path to the directory on the client machine which contains wuclient2.py (and workunit.py).
25 26


27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Legacy parameter names with --old
=================================

With the --old command line option, the script will translate parameter
files written for the Perl script. It will still accept parameters in the
new format, both in the file and on the command line.

For example, the two command lines above may be written instead as:

./cadofactor.py --old ../../params/params.c59 n=90377629292003121684002147101760858109247336549001090677693 wdir=/tmp/c59 bindir=$HOME/build/cado-nfs/normal

./cadofactor.py --old ../../params/params.c59 n=90377629292003121684002147101760858109247336549001090677693 wdir=/tmp/c59 bindir=$HOME/build/cado-nfs/normal slaves.hostnames=localhost slaves.nrclients=2 slaves.scriptpath=$HOME/git/cado-nfs/scripts/cadofactor


For complex set-ups, it is preferable to write a parameter file in the new format. Some examples are in "parameters", "parameters.oar", and "parameters.rsa512.oar".
42 43 44 45 46 47 48 49 50 51 52 53 54 55

The .oar parameter files are meant for cadofactor scripts that run *inside* an OAR submission, as they read the list of slave hostnames from the OAR node file.

For example,

oarsub -I
./cadofactor.py parameters.oar

factors the usual c59 test number using the nodes reserved via OAR, in this case one node.
The parameters.oar file contains the line
slaves.catrel.nrclients = 8
which tells the script to launch 8 clients on each unique host name (=node); the parameter
threads=2
causes all the programs to use two threads, resulting in 16 threads per node.
56 57 58 59 60 61 62 63 64 65 66

Importing a polynomial file
===========================

If you want to import a polynomial file (either a SNFS polynomial, or
polynomial selection was already done), use:

tasks.polyselect.import=xxx.poly

where xxx.poly is the name of the polynomial file (in CADO-NFS format).

67 68 69 70 71 72
By default this will consider this polynomial in addition to those found during
the polynomial selection. If you want to avoid polynomial selection, also add:

tasks.polyselect.admin=0
tasks.polyselect.admax=0

73 74 75 76 77 78 79 80 81 82 83 84 85
Importing relations
===================

If you want to import already computed relations, use:

tasks.sieve.import=foo

where "foo" is the name of the relation file to be imported (in CADO-NFS
format). Alternatively you can do:

tasks.sieve.import=@foo

where "foo" is a file containing several names of relation files, one per line.