PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

转载个文章,关于SuperPi的

  [复制链接]
跳转到指定楼层
1#
royalk 发表于 2011-5-21 01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:24648|回复数:96
很多人都搞不清楚SuperPi到底是整数还是浮点运算,就连许多媒体编辑也是瞎说。我可以肯定的告诉大家,是整数运算。在网上看到了一篇文章,转给大家看看:

如果有人比较精通编程的,欢迎使用其它语言编写,让我们都来跑跑看会有什么结果。

原文链接:http://www.cppblog.com/hktk/archive/2009/09/24/97148.aspx

不可否认,SuperPi历史非常悠久,用的人之多,其他同类软件难以匹敌。但是对其有更多了解的人却很少,下面这些细节你可能都不知道:
1.SuperPi发布日期是平成7年(1996年)
2.[もとのプログラムはFORTRANで書かれていますが、それをC言語に書き直しました。
原计划使用Fortran编写,最后使用C语言编写
3.ガウス・ルジャンドルのアルゴリズムを採用しています
采用Gauss-Legendre算法
4.创造纪录使用的大型机器是HITAC S-3800/480(95年的配置啊,当时看来可是绝对地强悍啊):
 主記憶容量    :1792.75 MB (主内存)
 拡張記憶容量   :25120 MB  (扩展内存)


アルゴリズム   :ボールウェインの 4 次の収束アルゴリズム
使用算法:Borwein四次迭代算法

注意!和SuperPi所用的算法并不相同!!
许多人都知道,开发SuperPi的作者用大型机跑出了42亿位的纪录,且都认为使用是和SuperPI一样的算法,但是事实并非如此!大家都是在以讹传讹!


6.Pentium 66MHz计算104万位需要 1小时13分22秒
HITAC S-3800/480计算104万位大约只需要5秒!
Pentium 66MHz计算3355万位需要 105小时35分17秒
HITAC S-3800/480计算3355万位大约只需要4分钟!

注意:由于使用算法和软件环境不同,大型机和PC没有绝对地可比性,况且还是95年的大型机,但是其性能优异在一定程度上是可以肯定的。
硬件和软件的发展都是很惊人的,1986年9月,创造42亿位纪录者之一的金田用HITAC S-810/20计算了3355万Pi值,这在当时就是一个世界记录了!但同年10月他们就把记录提高一倍到6千7百万位。
我用QPI使用SuperPi的AGM算法计算3355万位,花了3分47秒就完成了,就算是体验到当年大型机的速度了吧


7.关于Gauss-Legendre算法和Borwein四次迭代算法,SuperPI也给出了详细的介绍:

SuperPI所采用的Gauss-Legendre算法:(PS:又叫做AGM算法(Arithmetic-Geometric Mean))
1.初值确定
    a = 1
        b = 1 / sqrt( 2 )
        t = 1 / 4
        x = 1

2. a与b都取同样的精度,反复迭代计算下式:
      y = a
        a = ( a + b ) / 2
        b = sqrt( b ・ y )
        t = t - x ・ ( y - a )^2
        x = 2 ・ x

3.a和b迭代到足够精度后,根据下式可以计算出PI值
        Pi = ( a + b )^2 / ( 4 ・ t )

这个公式的特点是每迭代一次将得到比前一次迭代高一倍的精度,所以要计算104万位(2的22次方),迭代19次就够了,这就是为什么SuperPi的计算为数都是以2的倍数递增,且计算时会出现一条条的纪录,这就是每一次迭代所花费的时间!理论上每次花费的时间都应该是完全相同的。比较可笑的是 SuperPi MOD版本的汉化翻译,把19次迭代翻译成需要重复计算19次,明显存在着理解上的错误。

计算42亿位的巨型机所使用的Borwein四次迭代式:
1.初值确定:
        a[0] = 6 - 4 ・ sqrt( 2 )
        y[0] = sqrt( 2 ) - 1
   
2. 反复计算下式,提高精度
        y[k+1] = { 1-(1-y[k]^4 )^(1/4) } / { 1+(1-y[k]^4)^(1/4) }
        a[k+1] = a[k]・(1+y[k+1])^4 - 2^(2・k+3)・y[k+1]・(1+y[k+1]+y[k+1]^2)
  
3.当a[n]和b[n]达到足够精度后,可以确定Pi值
        Pi = 1 / a[n]
所以可以看出,该公式首先算出其实是Pi的倒数,算出a[n]后,要做一个“巨型”的除法才能得到真正的Pi值

另一方面必须要认识到,SuperPi的编写年代久远,现在看来实现的效率非常低。Qpi即使用完全同样的算法,在我的E6300机器上只需3.37秒就完成了104万位的计算的19次迭代!
计算过程(QPI4.5版 使用-agm3参数,和SuperPi完全相同算法 E6300未超频 Vista环境 ):
Starting 1st  iteration, time : 0.13
Starting 2nd  iteration, time : 0.19
Starting 3rd  iteration, time : 0.17
Starting 4th  iteration, time : 0.19
Starting 5th  iteration, time : 0.19
Starting 6th  iteration, time : 0.19
Starting 7th  iteration, time : 0.17
Starting 8th  iteration, time : 0.19
Starting 9th  iteration, time : 0.17
Starting 10th iteration, time : 0.19
Starting 11th iteration, time : 0.17
Starting 12th iteration, time : 0.19
Starting 13th iteration, time : 0.19
Starting 14th iteration, time : 0.17
Starting 15th iteration, time : 0.19
Starting 16th iteration, time : 0.19
Starting 17th iteration, time : 0.17
Starting 18th iteration, time : 0.17
Starting 19th iteration, time : 0.17

Total iteration time : 3.37
Computing final value, time : 0.14

Total time : 3.56 seconds
Total memory used : 12,003,171 (11.45 MB)

Processor utilization : 128.98%

CPU 利用率达到了128.98%说明其利用了第二个核心的28.98%的效率,发挥了了一定的双核优势,但即使是完全单核执行应该也不会慢到哪里去,比起 SuperPi漫长的30秒计算几乎达到了10倍速,而这个成绩也比超频榜上的那些个发烫的成绩要快得多了,如果使用最快的chudnovsky算法,只要1.5秒便结束了104万的战斗....如果换成超频榜上的那些牛机,只需零点几秒便解决了!

不知道用SuperPi的人中有几个人知道Pifast,有几个知道Qpi,还有几个人两个都知道的

SuperPi在历史舞台上的地位是永远存在的,但是考验CPU速度,还是换更先进的算法和程序感觉会更好,更能体验飞速的感觉!看着SuperPi的排行榜,我仿佛看到了喷火的跑车发动机装在了拖拉机上...

你真的老了SuperPi...
别了SuperPi....

评分

参与人数 1活跃度 +20 收起 理由
jasu30 + 20 我很赞同

查看全部评分

2#
50292831 发表于 2011-5-21 03:13 | 只看该作者
坐个沙发
3#
llt_eva 发表于 2011-5-21 09:22 | 只看该作者
有个疑问,FriZhess应该也是整数运算吧?计算步数。那按理说supper pi成绩和FRiZchess成绩应该成比例的吧?有没有 I U和 AU在这两个方面的精确数据对比啊。
IU跑PI那么BT,可是同频同线程FriZ并没有和AU拉开很大差距啊,这个差距有数据吗?
4#
royalk  楼主| 发表于 2011-5-21 11:31 | 只看该作者
有个疑问,FriZhess应该也是整数运算吧?计算步数。那按理说supper pi成绩和FRiZchess成绩应该成比例的吧? ...
llt_eva 发表于 2011-5-21 09:22


C++语言迭代算法对core架构开始优化就比较好,我也不知道为什么,我自己写的迭代程序当时用C2D跑起来就比K8快很多
象棋和WPRIME都是整数运算,但是加入了多线程情况就不一定一样了,就像WPRIME SNB就很差,不如同频的Nehalem,我也不知道为什么
5#
llt_eva 发表于 2011-5-21 11:39 | 只看该作者
回复 5# royalk


    是不是可以这样理解?supper pi的迭代算法用到了IU优化过的整数计算指令,象棋的算法没有用到IU优化过的整数计算指令?
看来评测U的整数运算能力还是要PI和象棋都测试下综合评分,而评测U的浮点运算能力用啥测?
6#
royalk  楼主| 发表于 2011-5-21 11:52 | 只看该作者
回复  royalk


    是不是可以这样理解?supper pi的迭代算法用到了IU优化过的整数计算指令,象棋的算法 ...
llt_eva 发表于 2011-5-21 11:39


那也不一定是算法的问题,有可能是整个C++编译的问题
就算你用C++编写一个1+1的100万次循环运行起来那还是IU快
浮点多了去了啊,任何渲染和解压缩、转码什么的都算是浮点
7#
llt_eva 发表于 2011-5-21 11:57 | 只看该作者
本帖最后由 llt_eva 于 2011-5-21 12:14 编辑

回复 7# royalk


    哦,照这样说,那就是说IU比AU整数运算能力更强,所以同频同线程PI和象棋都是IU领先,supper PI差距大,但象棋差距甚微,甚至多线程的整数运算中,AU可能反先?
K8时候就是浮点强(所以游戏好),另一方面也说明K8整数差,看来延续至今啊。不知道推土机的单线程整数1+1,双线程浮点1除2,实际效果如何,能否逆转这个状况...
理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮点略大于或持平K10(2线程共享1个浮点单元,但单元位宽加倍,单线程可以独占全部浮点单元),那样的话原来单线程3.8G K10 supper PI 17.X秒,推土机架构单线程3.8Gsupper PI就能达到8.X秒左右。
8#
jasu30 发表于 2011-5-21 11:58 | 只看该作者
原来是这样,一直被误导以为sp和wp都是浮点。。
9#
royalk  楼主| 发表于 2011-5-21 12:10 | 只看该作者
回复  royalk


    哦,照这样说,那就是说IU比AU整数运算能力更强,所以同频同线程PI和象棋都是IU领先, ...
llt_eva 发表于 2011-5-21 11:57


象棋和WPRIME我觉得是做过了平衡处理所以才会显得AU和IU差不多,并不一定是AU的多线程效率高
K8的浮点强其实只是相对P4来说了,自从C2D之后K8就一直是落后了,当然整数落后得更多
10#
llt_eva 发表于 2011-5-21 12:15 | 只看该作者
本帖最后由 llt_eva 于 2011-5-21 12:17 编辑

回复 10# royalk


    理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮点略大于或持平K10(2线程共享1个浮点单元,但单元位宽加倍,单线程可以独占全部浮点单元),那样的话原来单线程3.8G K10 supper PI 17.X秒,推土机架构单线程3.8Gsupper PI就能达到8.X秒左右,加上AVX等指令集,之前被爆的7.8秒也许是真的!虽然被"辟谣"...

等待R老师6月底的评测啊,拭目以待~
11#
世纪冰雷 发表于 2011-5-21 12:21 | 只看该作者
现在媒体太不负责了- -
我见过的基本都是说浮点计算。干。
学习了
12#
royalk  楼主| 发表于 2011-5-21 12:54 | 只看该作者
回复  royalk


    理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮 ...
llt_eva 发表于 2011-5-21 12:15


推土机我拿到的未必比你们快。。不过想达到理论我觉得还是非常困难的,就像SNB的浮点能力已经是Nehalem的两倍了,实际上呢,你看看提升了多少
13#
llt_eva 发表于 2011-5-21 13:00 | 只看该作者
回复 13# royalk


    你有渠道哈,咋会比我们慢呢?我们只能等开售了后才能买一个。还巴望着看完评测再出手呢~ 或者买你评测用过的u:P,只要不是挨过大炮的...
14#
royalk  楼主| 发表于 2011-5-21 13:02 | 只看该作者
回复  royalk


    你有渠道哈,咋会比我们慢呢?我们只能等开售了后才能买一个。还巴望着看完评测再出手 ...
llt_eva 发表于 2011-5-21 13:00


我哪有什么渠道,还不是一样跟你们买
15#
llt_eva 发表于 2011-5-21 13:08 | 只看该作者
回复 15# royalk


AMD的公关太次了,居然不送EVA评测样品?这里评好了,很有影响力啊,起码国内的一波diyer
16#
gin250 发表于 2011-5-21 13:09 | 只看该作者
囧呀 N多媚体都说是浮点 唉~
17#
royalk  楼主| 发表于 2011-5-21 13:09 | 只看该作者
回复  royalk


AMD的公关太次了,居然不送EVA评测样品?这里评好了,很有影响力啊,起码国内的一波diyer ...
llt_eva 发表于 2011-5-21 13:08


AMD一向是很抠门,别指望他们。。
18#
hitclxy 发表于 2011-5-21 13:21 | 只看该作者
AMD一向是很抠门,别指望他们。。
royalk 发表于 2011-5-21 13:09

听石头说的吧

AMD再扣,也比台系的厂家大方
台系的,我看就技嘉比较大方,安排什么还比较到位
其他...

其实这个东西,跟市场部的经费有莫大关系,有些公司重视市场,市场部的资源就多一些,
19#
llt_eva 发表于 2011-5-21 13:21 | 只看该作者
本帖最后由 llt_eva 于 2011-5-21 13:32 编辑

回复 18# royalk


    看来还要自己想办法啊,不过R老师亲手评测调教过的推土机想必有收藏意义啊:lol

推土机如果给力,那是最近几年amd的翻身之作!推土机如果不给力,那也许是amd真正没落的转折点!不管如何都收一块玩玩,以后真的没啥心情游戏啥的。

记得我的第一台PC是雷鸟1G,VIA神马芯片组,TNT显卡,装的win98,极品飞车II,RA95,COMMADOS,仙剑啥的,那段时光真的是很纯美。十几年了,换了不少电脑,都找不到那个感觉。i7 920发布后,就换掉了x2 3600,结果发现那个热,半年多就出了,换了开核440,最近又弄个1065T,就等推土机了。
20#
royalk  楼主| 发表于 2011-5-21 13:23 | 只看该作者
听石头说的吧

AMD再扣,也比台系的厂家大方
台系的,我看就技嘉比较大方,安排什么还比较到位
其他...

...
hitclxy 发表于 2011-5-21 13:21


AMD确实很抠呀。。不光对我们来说,其它媒体也是 活动很少搞,一年最多搞一次。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部