[Cado-nfs-discuss] cado-nfs 2.2.0 release

paul zimmermann Paul.Zimmermann at inria.fr
Fri Dec 11 14:06:08 CET 2015

       Dear users of cado-nfs,

we are happy to announce the release of cado-nfs 2.2.0, available from

Timings to factor RSA-120, RSA-130, RSA-140 and RSA-155 (to be published soon)
will show cado-nfs 2.2.0 is much faster than previous releases.

The CADO-NFS Development Team

Main changes between cado-nfs-2.1.1 and cado-nfs-2.2.0:

* 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
  By default, factorizations running on the localhost will use all
  available cores.
* 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.
* 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.
  - default parameters files were optimized for sieving with OPAL/nomad.
* 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
  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 /
* The polynomial file now supports another format. For giving a
  polynomial, a line like 
  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
  side 1 and Y for side 0.
* 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).
* 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).

More information about the Cado-nfs-discuss mailing list