|
矩阵运算是科学计算中非常常用的,这是为什么lapack这些玩意很早以前就做出来了.矩阵运算处于一个
非常基础的位置.但是你第一句说"通常",这句话把千千万万的具体问题简化为矩阵运算,并不合适. 差分方程能归结到矩阵运算么,分子动力学模拟可以做到百万原子,能归结到矩阵运算么,实际上的程序如果都能做到linpack的效率, 计算xx学家要乐开花了.
linpack是干啥的?简单说,解方程Ax=b的。在很多年前,hpc的性能还是很局限的时候,解个千八百维的方程组是个挑战,人们提出拿linpack来作为benchmark。作为标准的矩阵运算库,它很不够全面。
lapack = Linear Algebra PACKage,
blas=Basic Linear Algebra Subprograms
lapack或者blas才是标准的矩阵运算程序。
如果你感兴趣,可以去netlib.org看看。历史上lapack最初是为了取代linpack/eispack,在共享内存的机器上提高性能, 实际的lapack内容比linpack丰富多了.
今天的机器里,由于人们长年的努力+linpack解的问题的简单性,使得linpack并行效率非常高,甚至在
diy的集群上也很容易。你看top500的数字,经常看到7x%~8X%的效率,那是实测性能/理论峰值.
如果你拿单个节点来跑linpack,其实也是8x%的效率. 节点间的并行效率其实接近100%,嘿嘿.
实际问题的效率要看具体问题,多数没有这么理想,诸如很多稀疏矩阵运算,或者天气预报,后者你可以
看看wrf,开源的程序.所以说linpack的测试是比较没用的,基本上和西方人过圣诞节要砍树,咱么过年要
包饺子一样,属于历史遗留下来的传统,另外也没有更普遍而又简单的benchmark而已.
话说回来,th-1的性能有40%多,这个数字大部分应该来自单个节点显卡优化不到峰值,不要质疑他们节点间的并行效率.
"科学研究中的计算问题计算机化了之后通常是矩阵运算,而Linpack和Eispack是标准的矩阵运算程序Library,所以它的性能能比较准确的反映HPC的实际计算效率
虽然逐渐被Lapack取代,其在理论评估计算能力上还是有很大现实意义的。"
你说说哪里错了吧?
koppie 发表于 2009-12-19 01:27 ![]() |
|