数学研发论坛

 找回密码
 欢迎注册
查看: 9497|回复: 15

[测试] 好消息:在双核上测试,我的 HugeCalc 核心算法效率全面超出 GMP!:)

[复制链接]
发表于 2008-1-3 16:58:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
好消息,在双核上测试,我的 HugeCalc 核心算法效率全面超出 GMP
GMP:GMP大数库是GNU项目的一部分,诞生于1991年。GMP库的运行速度非常快,它的官方网站上称自己为地球上最快的大数库)
  1.                                        GMP          HugeCalc-HI     HugeCalc-HX
  2. Fib[100000000](  69424191 Bits )     4.349451 s      3.702678 s      3.479291 s
  3. Fib[200000000]( 138848382 Bits )     9.424257 s      7.230688 s      6.871886 s
  4. Fib[400000000]( 277696765 Bits )    20.659469 s     15.330399 s     14.545750 s
复制代码
推荐
所用测试机台参数见:http://www.emath.ac.cn/hugecalc/cpuz.htm

测试代码如下:   Fib.zip (508.36 KB, 下载次数: 33)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-1-3 21:10:17 | 显示全部楼层
上贴附件有源代码及编译好的测试程序(为减轻论坛压力,注册本论坛后才可下载)。

可以预见的是,如果在四核上对比测试,HugeCalc 将领先 GMP 更多;
可惜我没有这样的测试环境,哪位热心网友来帮这个忙?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-1-4 07:58:07 | 显示全部楼层

关闭 SSE2 指令后的测试结果

在 HugeCalc.ini 中设定“SSE2Support = 0”,可将 SSE2 指令支持关闭(仅对 HugeCalc 有效),
在同台机器上测试的数据如下:
  1.                                        GMP          HugeCalc-HI     HugeCalc-HX
  2. Fib[100000000](  69424191 Bits )     4.346209 s      4.287438 s      4.155507 s
  3. Fib[200000000]( 138848382 Bits )     9.420596 s      8.487578 s      8.298355 s
  4. Fib[400000000]( 277696765 Bits )    20.654150 s     18.065711 s     17.668569 s
复制代码
即便在这种不公平的测试条件下,HugeCalc 依然胜出!

注:CPU 的发展趋势是多核,且一定会支持 SSE2 等超流水线指令集,所以 HugeCalc 具有更好的发展潜力。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-1-4 10:29:28 | 显示全部楼层
楼主可给出更一般性的功能测试,比如大数乘法。
大数乘法是大数库的核心,是大数除法的基础。不同的实现差异极大。
建议楼主给出不同尺度下大数乘法的性能对比,另外也可以使用多个platform进行测试,比如在单核CPU下的性能对比。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-1-14 11:49:49 | 显示全部楼层
gxqcn可以在你的软件上添加一个选项“产生测试报告”(可以做成一个隐含的选项,比如按某个不常用的快捷键才会产生),
选择这个选项以后,就可以自动产生一个关于一些标准测试在用户机器上运行的结果,比如计算Fib(n)花费的时间等。
然后,用户就可以直接将测试报告发送给你。
要不然,每次产生测试报告都要手动产生,很麻烦,大家都不大会愿意的。

当然跨平台可能比较麻烦,比如在Linux平台,如果不公开源码很难保证预编译的代码在所有版本(或大多数)的Linux上可以运行的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-1-14 21:23:08 | 显示全部楼层
原帖由 mathe 于 2008-1-14 11:49 发表
gxqcn可以在你的软件上添加一个选项“产生测试报告”(可以做成一个隐含的选项,比如按某个不常用的快捷键才会产生),
选择这个选项以后,就可以自动产生一个关于一些标准测试在用户机器上运行的结果,比如计算Fib ...


这是个好建议。
不过因为时间精力关系,我申请的是静态虚拟主机,无法让用户自动将数据采集好发送到自己的网站。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-1-14 21:41:47 | 显示全部楼层
不是说让用户自动发送到网站。
比如你在CSDN上发贴让大家做测试,我看到了想做一下测试,结果花费了很长时间去尝试如何使用。
比如如果能够简化成:
按Ctrl+Shift+T,计算机就自动测试,然后将测试结果以文本方式现在在对话框中。
此后,用户只要复制测试结果,贴到BBS上就可以了。
此外还可以让用户通过发Email方式发送测试报告给你也可以,这个可以通过调用MAPI实现。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-1-14 21:46:50 | 显示全部楼层
好的,争取在下一版中实现(多核时还自动设定所用不同的核数,是否使用SSE2/SSE5指令集等)。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-2-1 19:39:51 | 显示全部楼层
这个的确是很令人震惊的结果!据我所知,GMP曾经是很快的计算库
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-2-2 09:27:15 | 显示全部楼层
原帖由 282842712474 于 2008-2-1 19:39 发表
这个的确是很令人震惊的结果!据我所知,GMP曾经是很快的计算库


几年前曾有位参与GMP核心算法开发的一位台湾人对我说,GMP速度是HugeCalc的1.7倍,
但HugeCalc经过最近几次核心大提速,内部速度已翻番,且自动支持多核等,所以才能后来居上。

为追求高效,除了在算法上不断突破改进,还将内核几乎全手工汇编,涉及ALU、SSE2等指令集,工作量非常之大。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2018-12-11 03:47 , Processed in 0.058872 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表