superpi是很多DIYer很喜欢用的一个Windows下的benchmark(性能测试和比较)工具。主要来测试cpu性能。super-pi这个程序是东京大学的一位学者开发的算法。值得一提的是该源代码并未公开。虽然在网络上能找到据称自己是superpi在Linux平台的移植,但到底是否是同一算法我也没仔细研究过。
我在网络上搜索过很多Linux下benchmark的信息,有的很多都已过时,而有的安装调试过于繁琐。
这里介绍的用Linux自带的bc计算器计算pi值的一种benchmark手段。这也正体现了我以前说的Linux是工程师的系统的说法,Linux集成了非常多的工程师所需要的工具。
其实很简单,就是一行命令。
time echo “scale=5000; 4*a(1)” | bc -l -q
time是计时程序。scale是精度,4*a(1)调用了反正切函数。由三角函数我们知道1的反正切是pi/4, pi=4* pi/4。 -l -q参数的意思请参照manpage。这一行其实就是让bc计算1的反正切,计算精度是5000位。
有的人用tcsh作为shell的需要注意指定time工具的位置,/usr/bin/time。tcsh内部有一个内部命令time,输出格式诡异。
我在unix-center的Ubuntu上跑的结果如下。比我的x200好像慢点。x200好像是38s。
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912983367336