arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1004.4548cs.SC
收藏

稀疏洛朗多项式和泊松级数在现代硬件架构上的乘法

Multiplication of sparse Laurent polynomials and Poisson series on modern hardware architectures

Francesco Biscani

摘要:

在本文中,我们提出了两个算法的乘法稀疏洛朗多项式和泊松级数(后者是代数结构中常见的天体力学从应用微扰理论)。这两种算法都是先利用Kronecker代换技术将多元乘法化简为一元乘法,然后再利用教科书方法进行一元乘法运算。第一种算法,适合于适度稀疏乘法,使用从单变量乘法产生的单项式的指数作为系数的一维查找阵列中的平凡散列值。第二种算法适用于高度稀疏乘法,使用缓存优化的哈希表,该哈希表存储从使用指数作为键的乘法产生的系数-指数对。这两种算法已经实现了注意现代计算机硬件架构。特别关注的是,通过高速缓存阻塞技术和高速缓存友好的术语排序,有效地利用当代存储层次结构。第一种算法已经被并行化用于共享内存多核架构,而第二种算法正在被并行化的过程中。我们提出的基准比较我们的算法的例程的其他计算机代数系统,无论是在顺序和并行模式。

英文摘要:

In this paper we present two algorithms for the multiplication of sparse Laurent polynomials and Poisson series (the latter being algebraic structures commonly arising in Celestial Mechanics from the application of perturbation theories). Both algorithms first employ the Kronecker substitution technique to reduce multivariate multiplication to univariate multiplication, and then use the schoolbook method to perform the univariate multiplication. The first algorithm, suitable for moderately-sparse multiplication, uses the exponents of the monomials resulting from the univariate multiplication as trivial hash values in a one dimensional lookup array of coefficients. The second algorithm, suitable for highly-sparse multiplication, uses a cache-optimised hash table which stores the coefficient-exponent pairs resulting from the multiplication using the exponents as keys. Both algorithms have been implemented with attention to modern computer hardware architectures. Particular care has been devoted to the efficient exploitation of contemporary memory hierarchies through cache-blocking techniques and cache-friendly term ordering. The first algorithm has been parallelised for shared-memory multicore architectures, whereas the second algorithm is in the process of being parallelised. We present benchmarks comparing our algorithms to the routines of other computer algebra systems, both in sequential and parallel mode.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑