eMath 发表于 2007-12-25 16:33:28

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

转帖 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.exe,也可直接用 HugeCalc.exe(可在输出栏中选"---"以关闭输出)。<BR>为确保测试的准确性、可重复性,建议测试时关闭其它应用程序。<BR>

eMath 发表于 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”后进行的测试结果。

gxqcn 发表于 2008-3-14 21:48:22

终于有四核上的测试数据了,请见:4核测试结果
还有一组数据是 GMP vs. HugeCalc 在纯粹的大数乘法算法的大比武,也非常有参考价值:http://bbs.emath.ac.cn/viewthread.php?tid=208&page=2&fromuid=8#pid1613
非常感谢本社区 风云剑 朋友的测试!

无心人 发表于 2008-11-17 17:27:11

Haskell计算100000!消耗41秒
Core 2 Xeon 1.6G(双核) 1G win2003
呵呵

看来还是有点慢啊
不过是用的最简单的定义
let fact n = foldl1 (*)
不知道更高效的定义如何写
呵呵

mathe 发表于 2008-11-17 18:23:10

不错啦,我Windows下的Maxima干脆就计算了半分钟左右报错了:
(%i1) 100000!;
Maxima encountered a Lisp error: Error in FORMAT : Value stack overflow.Automatically continuing.To reenable the Lisp debugger set *debugger-hook* to nil.

无心人 发表于 2008-11-17 19:19:22

:)

不知道PARI如何
Haskell的计算内核是GMP

mathe 发表于 2008-11-18 08:33:05

呵呵,PARI在我的笔记本上算100000!只要10秒:b:

无心人 发表于 2008-11-18 11:41:16

:)

10秒对41秒也没多大优势

无心人 发表于 2008-11-19 10:06:48

import Time

factl :: Integer -> Integer
factl n = product

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秒
还是很优化的
页: [1] 2 3
查看完整版本: 200秒,可以做什么?——测测你的电脑精确计算能力