感谢各位的意见,下面我谈谈我的看法:
一。首先我谈谈SuperPi的意义
在历史方面,众所周知,中国的3。1415926……在世界领先了近千年。但在此之后,就没了身影。pi的记录20年来一直被日本保持。而且一直都是用超级计算机。
在数学方面,圆周率的研究,推动了一些数学算法的发展。
再者,圆周率的计算,是检验计算机总体性能的最好方法之一。将其引入分布式计算,能检验网络的总体情况。对下一代网络建设有一定指导作用。(这是我的初衷)
二。现在谈谈实现
考虑再三,我想放弃C++和FORTRAN,而用JAVA2来实现。究其原因,我们不是因为计算而计算,所以不用在速度上太在意。而要考虑跨平台的可操作性。
我所知的现在最新记录是日本金田教授在2002年创造的12111亿位,这只有用分布式计算才能打破。我做过分析:
设经过k次迭代能算出n位有效值。如果用波耳温四级收敛式(至今最快的公式),则需要13.5n字节的存储空间(RAM),要经过(7+27k)*24n*log2 n次双精度运算.(使用多精度算法)
要用分布式并行计算,必须将它分段.如果分为10段,就需要10的平方+1=101台pc来参加计算,
其间只要有1台出问题,就会前功尽弃. 如果计算到1000万位,每台pc就要100*1000万/10=100MB的RAM空间.总的信息交换量达2*101*100MB=202000MB!
[此贴子已经被作者于2004-3-6 14:54:41编辑过]
|