numpy和GMPY2与GMP在速度上的比较如何?
我知道GMPY2支持GMP库,而numpy有快速的数值计算库。我想了解一下,使用GMP写C(或C++)代码的速度和这些库相比如何。因为Python是脚本语言,我觉得它的速度永远赶不上编译型语言,不过我之前也对这些一般性的看法错过了。
我在我的电脑上无法让GMP工作,所以无法进行任何测试。如果可以的话,我只想测试一些简单的数学运算,比如加法,还有一些三角函数。我会稍后再研究GMP。
1 个回答
8
numpy和GMPY2的用途是不同的。
numpy是一个快速的数值计算库,但为了达到高性能,numpy实际上只能处理一些低级别的数据类型,比如16位、32位或64位的整数,或者32位和64位的浮点数。举个例子,numpy会调用一些用C(或Fortran)写的高度优化的程序来进行矩阵乘法。
而GMPY2则是使用GMP、MPFR和MPC这些库来进行多精度计算。它并不是专门用来处理向量或矩阵运算的。
在Python中,每次调用外部库时,都会有一些额外的开销。这个开销是否明显,取决于外部库的运行时间。如果外部库的运行时间非常短,比如说10的负8次方秒,那么Python的开销就显得很重要。如果外部库的运行时间比较长,几秒钟或者更长,那么Python的开销可能就不那么重要了。
因为你没有说明你想要实现什么,所以我无法给出更好的答案。
免责声明:我维护GMPY2。