当前位置: X-MOL 学术Comput. Phys. Commun. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Interpolation of dense and sparse rational functions and other improvements in FireFly
Computer Physics Communications ( IF 6.3 ) Pub Date : 2021-03-23 , DOI: 10.1016/j.cpc.2021.107968
Jonas Klappert , Sven Yannick Klein , Fabian Lange

We present the main improvements and new features in version 2.0 of the open-source C++ library FireFly for the interpolation of rational functions. This includes algorithmic improvements, e.g. a hybrid algorithm for dense and sparse rational functions and an algorithm to identify and remove univariate factors. The new version is applied to a Feynman-integral reduction to showcase the runtime improvements achieved. Moreover, FireFly now supports parallelization with MPI and offers new tools like a parser for expressions or an executable for the insertion of replacement tables.

New version program summary

Program title: FireFly

CPC Library link to program files: https://doi.org/10.17632/nzgxdwwt8k.2

Code Ocean capsule: https://codeocean.com/capsule/4860843/tree/v1

Licensing provisions: GNU General Public License 3

Programming language: C++

Journal reference of previous version: J. Klappert, F. Lange, Comp. Phys. Commun. 247 (2020) 106951, , arXiv:1904.00009.

Does the new version supersede the previous version?: Yes

Reasons for the new version: Significant performance improvements and new features

Summary of revisions: We implemented new algorithms: The racing algorithm of Ref. [1] for univariate polynomials, a dense and sparse hybrid algorithm for rational functions, and an algorithm to search for univariate factors which can be removed in the actual interpolation. In addition, we changed the interface to allow for an overhead reduction inspired by vectorization and implemented the parallelization with MPI. Moreover, we include some new tools, e.g. a parser for expressions and an executable for the insertion of replacement tables.

Nature of problem: The interpolation of an unknown rational function, called black box, from only its evaluations can be used in many physical contexts where algebraic calculations fail due to memory and runtime restrictions.

Solution method: The black-box function is evaluated at different points over a finite field. These points are then used by interpolation algorithms [1-4] to obtain the analytic form of the function. The elements of a finite field are promoted to Q using rational reconstruction algorithms [5,6].

Additional comments including restrictions and unusual features: For better performance, we advise to use FLINT  [7] for the finite-field arithmetics and an improved memory allocator like jemalloc  [8].

References:

[1] E. Kaltofen, W.-s. Lee, J. Symb. Comp. 36 (2003) 365–400, .

[2] M. Ben-Or, P. Tiwari, Proc. ACM Symp. Theory Comp. 20 (1988) 301–309, .

[3] R. Zippel, J. Symb. Comp. 9 (1990) 375–403, .

[4] A. Cuyt, W.-s. Lee, Theor. Comp. Sci. 412 (2011) 1445–1456, .

[5] P.S. Wang, Proc. ACM Symp. Symbolic Algebraic Comp. 1981 (1981) 212–217, .

[6] M. Monagan, Proc. Int. Symp. Symbolic Algebraic Comp. 2004 (2004) 243–249, .

[7] W. Hart, et al., FLINT: Fast Library for Number Theory, http://www.flintlib.org/.

[8] J. Evans, et al., jemalloc – memory allocator, http://jemalloc.net/.



中文翻译:

对FireFly中的稀疏有理函数进行插值和其他改进

我们介绍了开源C ++FireFly 2.0版中对有理函数进行插值的主要改进和新功能。这包括算法上的改进,例如,用于密集和稀疏有理函数的混合算法,以及用于识别和消除单变量因素的算法。新版本应用于Feynman积分缩减,以展示所实现的运行时改进。而且,FireFly现在支持与MPI并行化,并提供了新工具,例如用于表达式的解析器或用于插入替换表的可执行文件。

新版本程序摘要

节目标题: FireFly

CPC库链接到程序文件: https : //doi.org/10.17632/nzgxdwwt8k.2

代码海洋胶囊: https : //codeocean.com/capsule/4860843/tree/v1

许可条款:GNU通用公共许可证3

编程语言: C ++

先前版本的期刊参考: J. Klappert,F. Lange,Comp。物理 公社 247(2020)106951,,arXiv:1904.00009。

新版本会取代旧版本吗?:

新版本的原因:显着的性能改进和新功能

修订摘要:我们实现了新算法:Ref。的竞速算法。[1]对于单变量多项式,有理函数的密集稀疏混合算法,以及用于搜索可以在实际插值中删除的单变量因子的算法。此外,我们更改了接口,以减少向量化带来的开销,并使用MPI实现了并行化。此外,我们包括一些新工具,例如,用于表达式的解析器和用于插入替换表的可执行文件。 

问题的性质:仅凭其评估就可以对未知有理函数(称为黑匣子)进行插值,可用于由于内存和运行时间限制而导致代数计算失败的许多物理环境。

求解方法:黑盒函数在有限域的不同点上求值。然后,这些点将由插值算法 [1-4]用于获得函数的解析形式。有限域的元素被提升为使用合理的重构算法 [5,6]。

其他注释包括限制和异常功能:为了获得更好的性能,建议对有限域算术使用FLINT  [7],并使用像jemalloc   [8]这样的改进的内存分配器

参考:

[1] E. Kaltofen,W.-s.。Lee J.Symb。比较 36(2003)365–400,。

[2] M. Ben-Or,P。Tiwari,Proc。ACM症状。理论比较 20(1988)301–309,。

[3] R. Zippel,J。Symb。比较 9(1990)375–403,。

[4] A. Cuyt,W.-s.。李,理论。比较 科学 412(2011)1445-1456,。

[5] PS Wang,Proc。ACM症状。符号代数比较 1981(1981)212–217 ,。

[6] M. Monagan,Proc。诠释 症状 符号代数比较 2004(2004)243–249,。

[7] W. Hart等人,《 FLINT:数字理论的快速库》,http://www.flintlib.org/。

[8] J. Evans等人,jemalloc –内存分配器,http://jemalloc.net/。

更新日期:2021-04-19
down
wechat
bug