gxqcn 发表于 2010-1-13 10:54:02

GMP v5.0.0 比 GMP V4.2.1 确实改进了不少。

GMP V4.2.1 vs HugeCalc V8.0.0.0:Call HugeCalc V8.0.0.0

--------------------------------

Calculate Fib:

GMP used time: 15.603340 s ( 69424191 Bits )
HIused time: 8.528635 s ( 20898764 Digits )
HXused time: 8.200586 s ( 69424191 Bits )

--------------------------------

Calculate Fib:

GMP used time: 32.241760 s ( 138848382 Bits )
HIused time: 17.134349 s ( 41797528 Digits )
HXused time: 16.440529 s ( 138848382 Bits )

--------------------------------

Calculate Fib:

GMP used time: 70.223929 s ( 277696765 Bits )
HIused time: 36.116319 s ( 83595056 Digits )
HXused time: 34.702639 s ( 277696765 Bits )

请按任意键继续. . .GMP V5.0.0 vs HugeCalc V8.0.0.0:Call HugeCalc V8.0.0.0

--------------------------------

Calculate Fib:

GMP used time: 5.300299 s ( 69424191 Bits )
HIused time: 8.506640 s ( 20898764 Digits )
HXused time: 8.156382 s ( 69424191 Bits )

--------------------------------

Calculate Fib:

GMP used time: 11.414467 s ( 138848382 Bits )
HIused time: 17.079120 s ( 41797528 Digits )
HXused time: 16.341026 s ( 138848382 Bits )

--------------------------------

Calculate Fib:

GMP used time: 28.721999 s ( 277696765 Bits )
HIused time: 35.921920 s ( 83595056 Digits )
HXused time: 34.470614 s ( 277696765 Bits )

请按任意键继续. . .测试代码见:http://bbs.emath.ac.cn/thread-27-1-1.html
测试环境为:WinXP Sp3, AMD Athlon(tm) 64 Processor, 3200+, 2.01 GHz, 1G DDR2 RAM

无心人 发表于 2010-1-13 11:51:59

呵呵,终于装好了该死的GCC 4.4.0,很麻烦
在编译 GMP 4.3.2

无心人 发表于 2010-1-13 14:13:02

在那个帖子添加了,GCC4.4.0编译的版本
比较大小就不同

应该稍微有点差别

liangbch 发表于 2010-1-14 11:05:23

21# gxqcn

从这个数据上看,在bit很多时,GMP5 竟比GMP4 快3倍,这令我始料未及。不知GMP5采用哪些手段来提速,是否采用了多线程技术,如果不是,那这个算法的改变也太厉害了。

无心人 发表于 2010-1-14 11:40:16

应该不是多线程

无心人 发表于 2010-1-14 11:43:09

他在 Toom 算法上增加了很多,一直到Toom - 6

无心人 发表于 2010-1-14 11:45:08

相应的需要FFT算法的大数底限提高了
而在小规模上
FFT算法不如Toom算法效率高

liangbch 发表于 2010-1-14 12:28:49

27# 无心人
原来如此,TOOM5, TOOM6的递推式很复杂的,看来这次GMP是动了真格了。

wayne 发表于 2010-2-6 13:05:08

本帖最后由 wayne 于 2010-2-6 13:13 编辑

盼星星盼月亮盼了快一个月了,:( ,靠人不如求己,

今天我自己动手在mingw下编译成功了gmp5.0.0,用的gcc版本是4.4.1,第一次编译忘加了--enable-cxx,搞的没有gmpxx.h文件。于是我又花了一个多小时编译了一下,折腾了昨天一晚上加今天一上午,一直到现在。

configure选项是
./configure --prefix=/opt/gmp5.0 --enable-cxx--disable-static --enable-shared --enable-assert --enable-fft

最后,测试通过的例子是
      #include <iostream>
        #include <gmpxx.h>
        using namespace std;
        int main (void) {
        mpz_class a, b, c;
        a = 1234;
        b = "-5678";
        c = a+b;
        cout << "sum is " << c << "\n";
        cout << "absolute value is " << abs(c) << "\n";
        cin >> a;
        return 0;
        }
       
页: 1 2 [3]
查看完整版本: GMP 2010-01-08 出 V5.0.0 了