宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒
« »
2010-01-08互联网事

871 Views

算法的威力:程序员用台式机打破超级计算机保持的世界记录

著名的法国程序员Fabrice Bellard近日宣布,他使用一台普通的台式电脑(成本低于2000欧元),计算到圆周率小数点后近2.7万亿位,打破了由T2K Open超级计算机(目前排名世界第4247位,造价数百万)去年8月17日创造的2.577万亿位的记录

Bellard使用的电脑硬件配置为:

2.93GHz Core i7处理器,内存6GB,硬盘7.5TB(5X1.5TB 希捷7200.11)。另有2TB希捷硬盘做备份。验证阶段使用了9台联网的电脑。

软件配置为:

64位Red Hat Fedora 10操作系统,用软件RAID-0和ext4文件系统管理硬盘。计算圆周率的软件是他自己编写的。技术细节可以参考这里

圆周率计算结果共需1137GB的硬盘容量,部分结果可以参见这个网页

二进制位计算时间为103天,验证花费13天。转换为十进制并验证又花费15天。总共时间为131天。

二进制计算使用的是乌克兰Chudnovsky兄弟提出的算法,验证则使用了作者自己改进Bailey-Borwein-Plouffe算法后的公式(也称Bellard公式,是目前最快的圆周率算法,1997年提出)。

Bellard公式

Bellard公式

实际上,Bellard在圆周率方面早有辉煌历史,他曾经1996-1997年间创造多次圆周率单一位计算(计算10的整次幂位)的世界纪录,并因此登上《科学美国人》法文版。

【Fabrice Bellard简介】

在程序设计界Fabrice Bellard可以说是一位传奇人物,以作品众多而且涉及广泛而著称。他1972年生于法国。高中时编写了DOS上第一个广泛使用的文件压缩程序LZEXE。后就读于巴黎高等综合理工学院和法国电信研究院。此后他的杰作频出,多次震惊业界:

1996年先后编写了一个简洁但是完整的C编译器和一个Java虚拟机Harissa。

1997年提出了最快圆周率算法Bellard公式。

1998年编写了一个简洁的OpenGL实现TinyGL。

2000年他发起著名的开源多媒体播放器项目FFmpeg(MPlayer的姊妹项目),并担任负责人多年。

同年以及次年他两次参加著名的国际C语言混乱代码比赛(IOCCC)均获奖,其中的OTCC编译器后来发展为TCC项目,完全支持C99标准,可以将C当作脚本语言来用。

衍生项目TCCBOOT(2004年)是一个只有138KB的启动加载程序,可以在15秒内从源代码编译并启动Linux系统。

2003年开发了Emacs克隆QEmacs。

2005年设计了一个廉价的数字电视系统。

还有正在开发中的开源通用处理器仿真软件QEMU,支持在各种处理器上运行其他处理器上的软件。

让我们来共同景仰一下这位大神吧。他的个人网站在此:http://bellard.org/

您可能还喜欢

  • 大项目、小项目都是程序员成熟之道
    一下子就跨到了新年,时间真快呀!言归正传,今天谈谈项目问题。 我们常听到同行说自己做过什么项目,说某某做过什么项目。一谈到项目就会眉飞色舞,兴高采烈。而不少新进单位的新大学生、一些编程新手,往往不知道什么项目,不知道项目与自己成长的关系,有的甚至声称编程好几年了,还都没有做过项目的经历。情况确实如此,只有参加过项目的程序员才是真正的程序员。那些没有做过项目的虽然自己编制了不少程序,虽然得意过自己的程序,但是,毕竟和做过项目的程序员有很大的差别,这些差别主要在于: 1、 程序的价值 没有做过项目的程...
  • 技术总监谈好的程序员如何写代码
    要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码。 即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的程序员写的代码基本上就可以看出来。好的程序员写的代码,整洁而规范,视觉上自然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范。差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌套结构,非常复杂的表达式,随处可见的数字等毛病。 再去粗粗阅读,对好的程序员还是差的程序员就会更有把握。好的程序员写的代码,有一种精心雕琢而成的一...

日志信息 »

该日志于2010-01-08 21:07由 Alpha 发表在互联网事分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

您可能还喜欢

  • 大项目、小项目都是程序员成熟之道
    一下子就跨到了新年,时间真快呀!言归正传,今天谈谈项目问题。 我们常听到同行说自己做过什么项目,说某某做过什么项目。一谈到项目就会眉飞色舞,兴高采烈。而不少新进单位的新大学生、一些编程新手,往往不知道什么项目,不知道项目与自己成长的关系,有的甚至声称编程好几年了,还都没有做过项目的经历。情况确实如此,只有参加过项目的程序员才是真正的程序员。那些没有做过项目的虽然自己编制了不少程序,虽然得意过自己的程序,但是,毕竟和做过项目的程序员有很大的差别,这些差别主要在于: 1、 程序的价值 没有做过项目的程...
  • 技术总监谈好的程序员如何写代码
    要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码。 即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的程序员写的代码基本上就可以看出来。好的程序员写的代码,整洁而规范,视觉上自然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范。差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌套结构,非常复杂的表达式,随处可见的数字等毛病。 再去粗粗阅读,对好的程序员还是差的程序员就会更有把握。好的程序员写的代码,有一种精心雕琢而成的一...

没有评论

发表评论 »

返回顶部