Computing one billion roots using the tangent Graeffe method

IF 0.4 Q4 MATHEMATICS, APPLIED
J. Hoeven, M. Monagan
{"title":"Computing one billion roots using the tangent Graeffe method","authors":"J. Hoeven, M. Monagan","doi":"10.1145/3457341.3457342","DOIUrl":null,"url":null,"abstract":"Let p be a prime of the form p = σ2k + 1 with σ small and let Fp denote the finite field with p elements. Let P(z) be a polynomial of degree d in Fp[z] with d distinct roots in Fp. For p =5 · 255 + 1 we can compute the roots of such polynomials of degree 109. We believe we are the first to factor such polynomials of size one billion. We used a multi-core computer with two 10 core Intel Xeon E5 2680 v2 CPUs and 128 gigabytes of RAM. The factorization takes just under 4,000 seconds on 10 cores and uses 121 gigabytes of RAM. We used the tangent Graeffe root finding algorithm from [27, 19] which is a factor of O(log d) faster than the Cantor-Zassenhaus algorithm. We implemented the tangent Graeffe algorithm in C using our own library of 64 bit integer FFT based in-place polynomial algorithms then parallelized the FFT and main steps using Cilk C. In this article we discuss the steps of the tangent Graeffe algorithm, the sub-algorithms that we used, how we parallelized them, and how we organized the memory so we could factor a polynomial of degree 109. We give both a theoretical and practical comparison of the tangent Graeffe algorithm with the Cantor-Zassenhaus algorithm for root finding. We improve the complexity of the tangent Graeffe algorithm by a factor of 2. We present a new in-place product tree multiplication algorithm that is fully parallelizable. We present some timings comparing our software with Magma's polynomial factorization command. Polynomial root finding over smooth finite fields is a key ingredient for algorithms for sparse polynomial interpolation that are based on geometric sequences. This application was also one of our main motivations for the present work.","PeriodicalId":41965,"journal":{"name":"ACM Communications in Computer Algebra","volume":"54 1","pages":"65 - 85"},"PeriodicalIF":0.4000,"publicationDate":"2020-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1145/3457341.3457342","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Communications in Computer Algebra","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3457341.3457342","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"MATHEMATICS, APPLIED","Score":null,"Total":0}
引用次数: 2

Abstract

Let p be a prime of the form p = σ2k + 1 with σ small and let Fp denote the finite field with p elements. Let P(z) be a polynomial of degree d in Fp[z] with d distinct roots in Fp. For p =5 · 255 + 1 we can compute the roots of such polynomials of degree 109. We believe we are the first to factor such polynomials of size one billion. We used a multi-core computer with two 10 core Intel Xeon E5 2680 v2 CPUs and 128 gigabytes of RAM. The factorization takes just under 4,000 seconds on 10 cores and uses 121 gigabytes of RAM. We used the tangent Graeffe root finding algorithm from [27, 19] which is a factor of O(log d) faster than the Cantor-Zassenhaus algorithm. We implemented the tangent Graeffe algorithm in C using our own library of 64 bit integer FFT based in-place polynomial algorithms then parallelized the FFT and main steps using Cilk C. In this article we discuss the steps of the tangent Graeffe algorithm, the sub-algorithms that we used, how we parallelized them, and how we organized the memory so we could factor a polynomial of degree 109. We give both a theoretical and practical comparison of the tangent Graeffe algorithm with the Cantor-Zassenhaus algorithm for root finding. We improve the complexity of the tangent Graeffe algorithm by a factor of 2. We present a new in-place product tree multiplication algorithm that is fully parallelizable. We present some timings comparing our software with Magma's polynomial factorization command. Polynomial root finding over smooth finite fields is a key ingredient for algorithms for sparse polynomial interpolation that are based on geometric sequences. This application was also one of our main motivations for the present work.
使用正切Graeffe方法计算十亿根
设p为形式为p = σ2k + 1且σ较小的素数,设Fp表示有p个元素的有限域。设P(z)是Fp[z]中的d次多项式,在Fp中有d个不同的根。对于p =5·255 + 1,我们可以计算109次多项式的根。我们相信我们是第一个对这种大小为10亿的多项式进行因式分解的人。我们使用了一台多核计算机,它有两个10核Intel Xeon E5 2680 v2 cpu和128 gb的RAM。在10个内核上,分解只需要不到4000秒,并使用121 gb的RAM。我们使用了[27,19]中的切线Graeffe根查找算法,该算法比Cantor-Zassenhaus算法快了O(log d)倍。我们使用我们自己的基于原位多项式算法的64位整数FFT库在C语言中实现了正切Graeffe算法,然后使用Cilk C并行化FFT和主要步骤。在本文中,我们讨论正切Graeffe算法的步骤,我们使用的子算法,我们如何并行化它们,以及我们如何组织内存,以便我们可以分解109度的多项式。我们给出了切线Graeffe算法和Cantor-Zassenhaus算法在求根方面的理论和实践比较。我们将切线Graeffe算法的复杂度提高了2倍。提出了一种新的完全可并行的原地积树乘法算法。我们将我们的软件与Magma的多项式分解命令进行了一些时间的比较。在光滑有限域上求多项式根是基于几何序列的稀疏多项式插值算法的关键。这个应用程序也是我们目前工作的主要动机之一。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
CiteScore
0.70
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信