找回密码
 欢迎注册
查看: 25758|回复: 25

[测试] 200秒,可以做什么?——测测你的电脑精确计算能力

[复制链接]
发表于 2007-12-25 16:33:28 | 显示全部楼层 |阅读模式

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

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

×
转帖 CSDN 算法版的一个帖子:<A href="http://topic.csdn.net/u/20071210/21/b30b831f-0099-48a8-bbbb-fc237ed593fd.html" target=_blank>200秒,可以做什么?——测测你的电脑精确计算能力</A><BR><BR>大家知道,CPU 的浮点计算能力可以用 Super PI 去测试,那么整型计算能力如何测试呢?<BR><BR>下面推荐一款软件——由 <A href="http://www.emath.ac.cn/" target=_blank>数学研发网</A> 出品的 HugeCalc V8.0.0.0,它有如下特点:
<UL type=1>
<LI>全整型指令:不含一条浮点运算指令;
<LI>自动识别CPU型号,如是否支持多核?是否支持 SSE2 指令集?等等。并可自动调整算法参数优化;
<LI>可以自行修改配置档,从而可以有针对性的进行 DIY 测试。</LI></UL><BR>比如,四核的用户:可以自由设定仅用单核/双核、还是四核全部投入运算;是否采用 SSE2 指令集加速等。<BR><BR>它的测试时间精度达到了微秒级;并采用了多线程设计,用户可以随时终止测试。<BR><BR>以下是它在双核上的测试报告(更详尽的报告请见:<A href="http://www.emath.ac.cn/hugecalc/test_report.htm" target=_blank>http://www.emath.ac.cn/hugecalc/test_report.htm</A>):<BR>
<PRE>+-------------+-------------+-----------+-----------+------------+------------+-----------+
|      n!     |    digits   |    A2-1   |   A2-0    |    A1-1    |    A1-0    |    A0-0   |
|-------------|-------------|-----------|-----------|------------|------------|-----------|
|     10,000! |      35,660 |  0.004586 |  0.004682 |   0.006145 |   0.006254 |  0.007348 |
|    100,000! |     456,574 |  0.074358 |  0.081094 |   0.110150 |   0.121145 |  0.333286 |
|    200,000! |     973,351 |  0.159463 |  0.179471 |   0.251844 |   0.280748 |  1.026817 |
|    400,000! |   2,067,110 |  0.372189 |  0.408471 |   0.580490 |   0.649423 |  3.142477 |
|    800,000! |   4,375,040 |  0.857702 |  0.934181 |   1.348855 |   1.526333 |  9.304887 |
|  1,000,000! |   5,565,709 |  1.087945 |  1.208318 |   1.781194 |   2.023373 | 13.692116 |
| 10,000,000! |  65,657,060 | 14.922132 | 17.024912 |  24.660277 |  28.985707 | --------- |
| 20,000,000! | 137,334,715 | 30.775132 | 35.551279 |  51.123602 |  61.061514 | --------- |
| 40,000,000! | 286,710,625 | 67.570732 | 78.600010 | 112.555688 | 136.195050 | --------- |
+-------------+-------------+-----------+-----------+------------+------------+-----------+

+-------------+-------------+--------------+--------+
|      n!     |    digits   |      B       |    C   |
|-------------|-------------|--------------|--------|
|     10,000! |      35,660 | 2.168x10^-19 |  0.095 |
|    100,000! |     456,574 |     0.047    |  0.188 |
|    200,000! |     973,351 |     0.156    |  0.234 |
|    400,000! |   2,067,110 |     0.36     |  0.578 |
|    800,000! |   4,375,040 |     0.875    |  1.391 |
|  1,000,000! |   5,565,709 |     1.265    |  0.891 |
| 10,000,000! |  65,657,060 |    20.141    | 57.687 |
| 20,000,000! | 137,334,715 |    46.484    | ------ |
| 40,000,000! | 286,710,625 |   108.891    | ------ |
+-------------+-------------+--------------+--------+

CPU: AMD Athlon 64 X2 Dual Core Processor 4800+, 2.512GHz(201MHz x12.5), L1 Cache 64KB, L2 Cache 512KB
OS : Windows XP SP2
RAM: 2GB DDR2 - 800MHz

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

  A -- HugeCalc V8.0.0.0
     A2-1 --&gt; HugeCalc.ini: NumOfCores = 2; SSE2Support = 1; (测试双核、SSE2指令加速)
     A2-0 --&gt; HugeCalc.ini: NumOfCores = 2; SSE2Support = 0; (测试双核、ALU 指令加速)
     A1-1 --&gt; HugeCalc.ini: NumOfCores = 1; SSE2Support = 1; (测试单核、SSE2指令加速)
     A1-0 --&gt; HugeCalc.ini: NumOfCores = 1; SSE2Support = 0; (测试单核、ALU 指令加速)
     A0-0 --&gt; HugeCalc.ini: NumOfCores = 0; SSE2Support = 0; (测试无高级算法参与)
  B -- Mathematica V6.0.1.0
  C -- Maple V11.0 ( February 17 2007, Build ID 277223 )

--------------------------------------------------------------------------------------------------------
</PRE><BR>
<P align=center><A href="http://www.emath.ac.cn/hugecalc" target=_blank><IMG onclick=if(vouching(this.src)){zoom(this);} alt="" src="http://www.emath.ac.cn/image/ui_HugeCalc.gif" onload="attachimg(this, 'load')" border=0></A></P><BR><BR>该软件官方下载地址:<A href="http://www.emath.ac.cn/software.htm#HugeCalc" target=_blank>http://www.emath.ac.cn/software.htm#HugeCalc</A><BR>天空下载地址为:<A href="http://www.skycn.com/soft/16254.html" target=_blank>http://www.skycn.com/soft/16254.html</A><BR>华军下载地址为:<A href="http://www.onlinedown.net/soft/29009.htm" target=_blank>http://www.onlinedown.net/soft/29009.htm</A><BR>(无毒/无插件/绿色解压安装即可)<BR><BR>本人开发这套软件,历经十余年,曾先后四次在 CSDN 上摆擂台,具体可见“算法论道”栏目:<A href="http://algo.emath.ac.cn/" target=_blank>http://algo.emath.ac.cn/</A><BR>为了全面了解该套软件在不同配置机器上的表现能力,特发此贴。<BR>希望大家将真实计算时间的记录好并发布到这里,以供今后参考。<BR>(如果正好装有 Mathematica/Maple/GMP 等专业软件的用户,不妨一并对比测试一下,供大家参考参考)<BR><BR>测试程序可用 Factorial.zip (106.8 KB, 下载次数: 17) 里面的 Factorial.exe,也可直接用 HugeCalc.exe(可在输出栏中选"---"以关闭输出)。<BR>为确保测试的准确性、可重复性,建议测试时关闭其它应用程序。<BR>
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2007-12-25 16:41:19 | 显示全部楼层

首位四核(或以上)测试者可获免费注册

如果你有四核(或以上)CPU,那么仅需占用不到十分钟时间即可获得免费注册HugeCalc的机会。

为了全面测试该软件对多核的支持程度,请依次测试:A4-1/A4-0 /A3-1/A3-0 /A2-1/A2-0 /A1-1/A1-0 /A0-0/

其中“An-s”表示“在 HugeCalc.ini 文件中设定: NumOfCores = n SSE2Support = s”后进行的测试结果。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-14 21:48:22 | 显示全部楼层
终于有四核上的测试数据了,请见:4核测试结果
还有一组数据是 GMP vs. HugeCalc 在纯粹的大数乘法算法的大比武,也非常有参考价值:http://bbs.emath.ac.cn/viewthrea ... p;fromuid=8#pid1613
非常感谢本社区 风云剑 朋友的测试!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-17 17:27:11 | 显示全部楼层
Haskell计算100000!消耗41秒
Core 2 Xeon 1.6G(双核) 1G win2003
呵呵

看来还是有点慢啊
不过是用的最简单的定义
let fact n = foldl1 (*) [1..n]
不知道更高效的定义如何写
呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-17 18:23:10 | 显示全部楼层
不错啦,我Windows下的Maxima干脆就计算了半分钟左右报错了:
(%i1) 100000!;
Maxima encountered a Lisp error: Error in FORMAT [or a callee]: Value stack overflow.Automatically continuing.To reenable the Lisp debugger set *debugger-hook* to nil.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-17 19:19:22 | 显示全部楼层


不知道PARI如何
Haskell的计算内核是GMP
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-18 08:33:05 | 显示全部楼层
呵呵,PARI在我的笔记本上算100000!只要10秒
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-18 11:41:16 | 显示全部楼层


10秒对41秒也没多大优势
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-19 10:06:48 | 显示全部楼层
import Time
  
  factl :: Integer -> Integer
  factl n = product [1..n]
  
  main = do
           t <- getClockTime
           let f = factl 100000
           print (mod f (2^31-1))
           print (t)
           t <- getClockTime
           print t

详细信息出来了
          光计算是27秒
         带输出100000!是55秒
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-19 10:08:14 | 显示全部楼层
因为haskell是惰性计算
所以必须引起其对100000!的计算要求
否则不进行任何输出的时候
恐怕时间是0

呵呵
这种研究性质的语言, 如果在时间上减少到1秒
还是很优化的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-21 20:35 , Processed in 0.030459 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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