文档介绍:众核众核众核时代的科学计算众核时代的科学计算
田荣
在过去的几几十年里,计算机处理器速度的发展一直遵循着摩摩尔定律。⃞长久以来,我们惯性地
认为手中的应用代码会随着处理器频率的提提高而自然地跑得更快。⃞然而,这一发展趋势势由于处理
器在性能提提高上受到到功功耗问题,散热问题,针脚等物理限制制可能不复存在了。⃞处理器性能的提提高
将不再单一依赖时钟频率的提提高,而是要发挥多核并行性。⃞
由于体系结结构上的变化,在多/众核时代,科学计算算法将经历技术和思维维两方面的变革。⃞如
何实现多/众核上科学计算的有效加加速?千万亿次科学计算算法特点将会是什么?这些问题正在
引发人们的关注和思考。⃞本文就混合精度科学计算加加速思想和千万亿次科学计算算法特点两个方
面谈一些体会和展望。⃞
1. 混合精度混合精度科学计算科学计算
在现在体系结结构上,单精度峰值速度与双精度峰值速度的差距越来越大。⃞在 AMD Opteron
246, IBM PowerPC 970 ,Intel Xeon 5100 ,以及 Cray X1 上,单精度峰值速度是双精度的 2 倍;在
IBM Cell BE 多核处理器上, 单精度峰值速度(204Gflops )是双精度(20Gflops )的 10 倍;在
nVidia Tesla C1060 GPU 上,单精度峰值速度(933Gflops )是双精度(78Gflops )的 12 倍。⃞
但是,长期以来,单精度似乎与科学计算无缘缘;在能够使用双精度的情况下科学计算一般不
会使用单精度,特别别是在典型的科学与工程问题(Ax=b) 的求求解方面,很少考虑单精度的优越性。⃞
更进一步,我们不禁要问“‚随着将来更高位浮点精度,比比如 128 位的出出现,我们是否也要在浮点
计算中‘全部’采用最高精度格式来计算呢?”‛
人们很早就发现在求求解线性方程组时可以通过低精度计算获得计算加加速,而只用少量的高精
度计算达到到全部用高精度的计算结结果[1] 。⃞1948 年威尔金金森设计制制造图灵计算机时提提出出求求解线性
方程组的迭代改进(iterative refinement ) [1] 。⃞迭代改进的基本思想是通过对线性方程组的近似解
用低精度反复迭代求求解,通过高精度对近似解的余量进行改进修正,从而将最终解的近似误差减
少到到机器精度的一种算法。⃞最原始求求解线性方程组 Ax= b 的迭代改进思想可以描述为:
( )
x 0 = 0
( ) ( )
ds= b − Ax pute residual in high precision
( ) ( )
Acs= d s solve equation system in low precision
(+ ) ( ) ( )
xs1 = x s + c s accumulate solution in high precision
威尔金金森和他的合作者们证明如果矩阵 A 不是高度病态,连续续对 x 混合精度求求解会收敛到到全部
用高精度计算的结结果。⃞对于线性方程组求求解,90%以上的浮点计算可以通过低精度来完成,而不
会影响解的精度。⃞
这一算法虽然在半个世纪前