2

我知道 GMPY2 支持 GMP 库,而 numpy 有快速的数值库。我想知道速度与使用 GMP 实际编写 C(或 C++)代码相比如何。由于 Python 是一种脚本语言,我认为它永远不会像编译语言那样快,但是我以前对这些概括是错误的。

我无法让 GMP 在我的计算机上运行,​​所以我无法运行任何测试。如果可以的话,只是一般的数学,比如加法,也许还有一些三角函数。稍后我会弄清楚GMP。

4

1 回答 1

7

numpy 和 GMPY2 有不同的用途。

numpy 具有快速的数值库,但为了实现高性能,numpy 被有效地限制为使用低级类型的向量或数组 - 16、32 或 64 位整数,或 32 或 64 位浮点值。例如,numpy 访问用 C(或 Fortran)编写的高度优化的例程,用于执行矩阵乘法。

GMPY2 使用 GMP、MPFR 和 MPC 库进行多精度计算。它不针对向量或矩阵运算。

Python 解释器会增加对外部库的每次调用的开销。减速是否显着取决于外部库花费了多少时间。如果外部库的运行时间很短,比如 10e-8 秒,那么 Python 的开销就很大。如果外部库的运行时间比较长,几秒甚至更长,那么 Python 的开销可能是微不足道的。

由于您还没有说出您要完成的工作,因此我无法给出更好的答案。

免责声明:我维护 GMPY2。

于 2014-05-30T03:01:09.323 回答