NEWS 8.46 KB
Newer Older
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
1
Main changes between cado-nfs-2.2.0 and cado-nfs-2.3.0:
2 3
* When tasks.threads is not given, it is set to the number of logical cores
  (including hyperthreading if any) instead of the number of physical cores.
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
4 5 6
* The estimated time of arrival (ETA) is now printed during the linear
  algebra phase too.
* Speedup in the linear algebra phase (mksol) when m > n
7
* DLP support: got rid of the Magma dependency
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
8 9
* Fixed compiler warnings with new versions of compilers.
* Several bug fixes.
10 11 12 13
* The output files have been shortened. Previously, we had filenames of
  the form cxxx.TASKNAME.PROGRAMNAME.foo, where TASKNAME was actually an
  implementation detail. In cado-nfs-2.3.0, TASKNAME goes away.
* In parallel to the change above, the parameter hierarchy no longer
14 15 16 17 18 19 20 21 22 23 24 25
  includes the TASKNAME, which is an implementation detail. Previously,
  the finest grain to which one could specify parameters was
  tasks.PATH_PREFIX.TASKNAME.PROGRAMNAME.foo where PATH_PREFIX is set in
  scripts/cadofactor/cadotask.py (among polyselect, sieve, filter,
  linalg, reconstructlog, descent -- some toplevel relevant parameters
  have no PATH_PREFIX). Now the TASKNAME goes away. This
  means that as before, setting tasks.sieve.threads works for setting a
  parameter which is obeyed by las (and actually makefb too), but changes
  happen when one specifies parameters on a finer grain.  While
  tasks.sieve.sieving.las.threads or
  tasks.sieve.factorbase.makefb.threads used to work, now these become
  simply tasks.sieve.las.threads or tasks.sieve.makefb.threads.
26 27 28 29 30
* The --verboseparam option to cado-nfs.py now also prints an
  automatically generated, and by default comprehensive list of
  parameters that cado-nfs recognizes (among other things
  which this option still does as it always has). Note that the lists for
  factoring and DLP differ slightly.
31 32 33 34 35 36
* The database which stores the computation state can now also be backed
  by a mysql server. This is optional, and requires the
  python3-mysql.connector package (on Debian linux -- actual package name
  depends on your OS distribution). To activate this feature, pass the
  database URI as an extra parameter to cado-nfs.py, e.g.
  "database=db:mysql://USER:PASS@host:port/foobar", where port, PASS, and
Emmanuel Thomé's avatar
Emmanuel Thomé committed
37 38 39 40 41
  USER are optional. The same syntax may be used to have an sqlite3
  database as usual, but stored in a different location (which can be
  handy to work around some filesystem deficiencies). For that, use
  "database=db:sqlite3:///tmp/foo.db", where obviously "/tmp/foo.db" must
  be adapted to your preferred database path (you do need the triple /).
42 43


ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
44

ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
45
Main changes between cado-nfs-2.1.1 and cado-nfs-2.2.0:
46

47 48 49 50 51 52 53 54 55 56 57
* The toplevel scripts (factor.sh, cadofactor.py, wuclient2.py) have
  changed. Now there are only two main scripts to be used by most users:
   - cado-nfs.py
     This combines the roles of the previous factor.sh and cadofactor.py.
     The most basic use is ./cado-nfs.py <N>, and it will factor N on the
     local host. It can also become a server in a multi-host
     computation. See README for more details.
   - cado-nfs-client.py
     This is mostly a renaming of wuclient2.py. This starts a client that
     can contribute to a running computation, possibly on another
     machine.
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
58 59
  By default, factorizations running on the localhost will use all
  available cores.
GAUDRY Pierrick's avatar
GAUDRY Pierrick committed
60 61 62 63 64 65 66 67
* Main algorithmic improvements:
  - polynomial selection: algorithm of Bai, Bouvier, Kruppa, Zimmermann
    (Better polynomials for GNFS, 2015) has been implemented.
  - relation collection: multi-level buckets for better handling of
    medium-sized primes; cofactorization strategies à la Kleinjung. Both
    features are experimental, and not activated by default.
  - linear algebra: support for non-binary base field (for dlp),
    including the removal of the overhead due to SMs.
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
68 69 70 71 72
* Main speedups:
  - the creation of the factor base is now multithread.
  - linear algebra speedup taking into account machine topology thanks to
    HWLOC (http://www.open-mpi.org/projects/hwloc/).
  - the square root step is now multithread.
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
73
  - default parameters files were optimized for sieving with OPAL/nomad.
GAUDRY Pierrick's avatar
GAUDRY Pierrick committed
74 75 76 77 78
* DLP support: now fully functional over prime fields, including the
  descent step. Still requires Magma for a small number-theoretic
  computation at the beginning (dependency will be removed sooner or later).
  See README.dlp for further details.
* In local.sh, the customization of the build_tree using the $up_path
Emmanuel Thomé's avatar
Emmanuel Thomé committed
79 80 81
  variable used to be phrased as: build_tree="${up_path}some/sub/path".
  Now it should be build_tree="${up_path}/some/sub/path", as $up_path no
  longer embodies a trailing /
GAUDRY Pierrick's avatar
GAUDRY Pierrick committed
82
* The polynomial file now supports another format. For giving a
Emmanuel Thomé's avatar
Emmanuel Thomé committed
83
  polynomial, a line like
GAUDRY Pierrick's avatar
GAUDRY Pierrick committed
84 85 86
    poly0=17,42,34,55
  can be written, to set the polynomial 17+42*x+34*x^2+55*x^3 on side 0.
  The old format with X, c, Y,... is still supported, with c and X for
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
87
  side 1 and Y for side 0.
GAUDRY Pierrick's avatar
GAUDRY Pierrick committed
88 89 90 91 92 93 94 95 96 97 98
* References to rational or algebraic sides have been reduced (at least
  internally). This means that several parameters have now aliases
  corresponding to sizes. For instance, the parameter -lpb1 for las is an
  alias of -lpba. The common convention is that the rational side (if
  any) is on side 0, but everything will work if a polynomial file is imported
  with the rational side on side 1.
* Various changes in the parameter list for the linear algebra task,
  in particular, the linalg.bwc.mn=... parameter is replaced by 2
  separate parameters for m and n. Also the rhs=... parameter allows
  non-homogeneous system solving (useful for handling SMs with no
  overhead in DLP mode).
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
99 100 101
* An estimated time of arrival (ETA) is now printed during the polynomial
  selection and sieving steps. It corresponds to the estimate finish time
  of each of those steps (not the full factorization).
102

Alexander Kruppa's avatar
Alexander Kruppa committed
103 104 105 106 107 108
Main changes between cado-nfs-2.1 and cado-nfs-2.1.1:

* Added test-case in wuclient2.py for buggy Python MIME encoder to prevent
  data corruption during file upload under future Python versions
* Bug fixes to multi-threading in linear algebra code

109 110 111 112 113 114 115 116 117 118 119
Main changes between cado-nfs-2.0 and cado-nfs-2.1:
* Polynomial selection now runs in two separate phases, size optimization
  and root optimization, with improved parameters
* Unit tests added, please run "make check" after building
* Various small speed-ups
* Various bug-fixes
* The wuclient2.py script no longer requires an external download tool
  (wget or curl) to download securely via SSL under Python 2
* better support of DL in GF(p); still not fully automatic, nor
  independent of third-party software. See README.dlp.

ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
120
Main changes between cado-nfs-1.1 and cado-nfs-2.0:
121

ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
122
* the default parameters in the params subdirectory have been improved
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
123 124 125
* major speedups in the polynomial selection, sieving and filtering steps
* the filtering step produces a smaller matrix (about 5% less rows),
  see http://hal.inria.fr/hal-00734654 for more details.
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
126
* the replay step is faster and uses less memory
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
127
* fixed bug in the lattice siever (las) on 32-bit computers
Alexander Kruppa's avatar
Alexander Kruppa committed
128 129
* allow compilation on MinGW32. Performance is poor, however. MinGW64 is
  currently not supported
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
130
* new cadofactor.py script written in Python, allows larger-scale distribution
Alexander Kruppa's avatar
Alexander Kruppa committed
131
  with client/server model
132 133 134 135
* files used/generated by cado-nfs-1.1 are not entirely compatible with
  cado-nfs-2.0. Relations files are compatible, but for pretty much
  everything else, it is preferrable to start afresh. Likewise,
  command-line options of several binaries have changed.
Alexander Kruppa's avatar
Alexander Kruppa committed
136 137 138
* implementations of NFS-DL and NFS-FFS (experimental, requires some
  background knowledge to use)

139 140

Main changes between cado-nfs-1.0 and cado-nfs-1.1:
141 142 143

* the polynomial selection uses the new algorithm presented by Kleinjung at
  the 2008 CADO workshop (supports multithreading)
144 145 146 147 148 149 150
* the polynomial selection uses a faster root sieve (rootsieve5)
* the lattice siever (las) supports a larger sieving region (I=16). This is
  useful for integers greater than 200 digits
* minor bug fixes, small speedup in sieving (las) and filtering (purge)
* reorganization of the binaries in the linear algebra step and speedup
  when using many machines with MPI
* new experimental scripts to execute the sieve on a cluster.
151
  These scripts rely on the OAR job scheduler being used, and exploit its
ZIMMERMANN Paul's avatar
ZIMMERMANN Paul committed
152
  "besteffort" mode. Some even more experimental scripts for linear
153
  algebra are in the development version.
GAUDRY Pierrick's avatar
Typos  
GAUDRY Pierrick committed
154
* addition of new parameter files and a few new parameters (cf params.c91)
155
* the linear algebra step now makes use of dynamically loaded shared
156
  libraries. This might result in configuration issues, which we hope the
157
  scripts get it right. See the README file.
158