介绍
CADO-NFS是数字字段的C/C++完整实现整数分解和离散计算的筛选(NFS)算法有限域中的对数。它包括各种程序对应于算法的所有阶段运行它们的脚本,可能在计算机。CADO-NFS由Gnu Lesser General Public发布许可证(LGPL)2.1版(或任何更高版本)。
CADO-NFS是涉及多个方面的合作成果不同时期的人。当前活动列表贡献者可以从git存储库或来自openhub.net第页。CADO-NFS作者暂定名单如下(字母顺序):
引用CADO-NFS
在科学出版物中引用CADO-NFS的推荐方式是(bibtex入口):
- CADO-NFS开发团队。CADO-NFS,安数字域筛选算法的实现,2017年2月3日发布,http://cado-nfs.inria.fr/
发布编号和日期应更改为对应于您实际使用的版本。如果您使用的是开发版本给出git修订号是个好主意。你至少可以,说出“开发版本”并给出当前日期。你可以根据以下模板上的引文条目(开发版本的bibtex条目,到完成):
- CADO-NFS开发团队。CADO-NFS,安数字域筛选算法的实现,开发版本,20XX,http://cado-nfs.inria.fr/
特征
CADO-NFS 2.3.0中使用的算法如下:
- 多项式选择使用Kleinung(2008)的算法,然后使用Bai、Bouvier、,Kruppa和Zimmermann(2014)
- 过滤步骤遵循卡瓦拉的论文和鲍维尔的工作。目前,这在一定程度上是平行的。
- 使用格筛进行关系搜索,包括支持多线程以减少内存。
- 线性代数步骤使用块Wiedemann实现算法。此实现在多线程和MPI上是并行的水平。
- 平方根步长使用朴素算法,并且是并行的。候补队员(实验)实现可用于非常大的计算,或病理性Galois组。
CADO-NFS版本1.1和2.0的速度比较,在双8核Intel(R)Xeon(R)CPU E5-2650,2.00GHz,运行Linux 3.2.0。这两个CADO版本都是用gcc 4.7.2编译的。
对于使用cadofcator.pl的CADO-NFS 1.1,计时运行使用了16个进程多项式选择和2个线程的8个进程各1个线程每个用于筛分;在使用cadacator.py的CADO-NFS 2.0中,两个阶段都使用了8个每个螺纹两个,使用CADO-NFS 2.1./factor.sh N-s 8-t 2任务.linalg.bwc.threads=16.对于CADO-NFS 2.3,使用./cado-nfs.py文件--客户端线程2--服务器线程16--从线程8.下表列出了CPU时间[方括号中的时钟时间]。
输入编号 | CADO-NFS 1.1版 | CADO-NFS 2.0版 | CADO-NFS 2.1 | CADO-NFS第2.2.0节 | CADO-NFS 2.3.0标准 |
RSA-120标准 | 100小时 | 45.6小时 | 45.2小时[3.6小时] | 32.2小时[2.2小时] | 26小时[1.9小时] |
RSA-130标准 | 288小时 | 231小时 | 219小时[15.9小时] | 124小时[8.2小时] | 107小时[7.5小时] |
RSA-140标准 | 809小时 | 614小时 | 643小时[45.7小时] | 469小时[30.9小时] | 352小时[23小时] |
RSA-155型 | 268天 | 141天 | 126天[12.2天] | 90天[5.8天] | 83天[5.3天] |
对于85到100位数字,Ben Buhrow比较了各种QS和NFS工具,看见在这里.
您可以浏览开发树历史以查找NEWS文件对于以前的版本: