高性能计算——概览
前言
这是一系列关于高性能计算的介绍,名为《现代硬件的算法》(Algorithms for Modern Hardware)。原著作者是谢尔盖·斯洛廷(Sergey Slotin)。我会结合自己从业多年的经历将其翻译转述。
文章的目标读者群体不仅涵盖高性能计算工程师,算法研究人员,甚至包括刚刚完成算法课程并且希望学习到更多实用方法来让提高程序运行效率的学生们。
《计算机程序设计艺术》(The Art of Computer Programming)和《算法导论》(Introduction to Algorithms)这两本书,毫无疑问都是杰作,对计算机科学课程产生了巨大影响。但其中一本已经有50年历史,另一本也已经出版30年了。近些年,计算机硬件已经发生了巨大的变化,渐进时间复杂度不再是唯一的决定性因素。在现代的实用算法设计中,我们会选择那些能更好的利用硬件系统提供的不同类型的并行方法,而不仅仅是从理论上在上执行更少的原始操作。
然而,大多数计算机课程完全忽视了这种转变。尽管有一些很棒的课程旨在纠正一一点—比如麻省理工的“软件系统性能工程”(