多核心时代下数值线性代数库的发展与挑战
1. 引言
数值线性代数在科学计算中扮演着至关重要的角色,LAPACK和ScaLAPACK作为广泛使用的数值线性代数库,拥有庞大的用户群体。众多供应商和软件提供商将其作为自身库的基础,因此对这些库进行改进将对用户产生重大影响。其开发主要受算法研究、用户/供应商调查、新架构和编程语言的需求及机遇,以及研究社区的积极参与等因素驱动。
2. 未来架构的挑战
随着计算技术的发展,并行计算变得无处不在。未来几年,典型笔记本电脑的多核处理器芯片预计将拥有64个核心,每个芯片最多有256个硬件线程。若算法无法充分利用这种并行性,其运行速度将无法提升,甚至可能比机器峰值速度更慢。
此外,处理器速度与内存速度之间的差距呈指数级增长。处理器速度每年提升59%,而主内存带宽仅提升23%,主内存延迟仅提升5.5%。这意味着当前高效的算法,由于其每内存引用进行足够的浮点运算以掩盖缓慢的内存速度,但在不久的将来可能不再高效。同样,通信网络带宽仅以26%的速度提升,网络延迟自1996年的Cray T3E以来直至近期都没有改善。
LAPACK和ScaLAPACK需要在比过去更广泛的平台上高效且正确地运行。未来的一些架构预计将是异构的,例如集群可能包含旧的、慢速的处理器和新的、快速的处理器,单个机器可能由CPU和其他更快的专用处理器(如GPU、SSE单元等)组成。这些不仅在性能上存在差异,而且在浮点语义上也可能不同,不同单元对异常的处理方式不同,或者仅进行单精度计算。在集群中,不同处理器处理非规范化数字的方式不同,可能导致数据传输时值发生变化甚至引发陷阱,这对算法的正确性提出了挑战。
将LAPACK和ScaLA
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



