论文标题
高性能计算的概念和技术挑战
Conceptual and Technical Challenges for High Performance Computing
论文作者
论文摘要
高性能计算(HPC)旨在为科学和现实生活中的问题提供合理的快速计算解决方案。在HPC历史上,多核心体系结构的出现很明显,因为它已将基本的并行编程概念带入了共同的考虑。在更大范围内,人们对构建或托管前线超级计算机的兴趣浓厚。前500名排名是(隐性)赛车的一个很好的例证。超级计算机以及普通的计算机在获得处理能力的同时,价格已经下跌了几年。我们清楚地看到,在HPC方面通常会牢记的是计算机功能。但是,当更深入研究主题时,尤其是在大规模问题上,似乎本身的处理速度已经不够了。实际上,HPC用户真正关注的问题是输出时间。因此,我们需要研究输入和输出之间关键路径的每个重要方面。第一步显然是方法,它是建模与特定考虑(假设,简化,约束,仅为命名的)和相应的算法的结合,这可能是数值和/或非数值。然后是编程主题,该主题应将算法熟练地映射到HPC机器上。基于多层处理器,可能会通过加速单元增强,当前一代的超级计算机被评为可提高峰值性能,Exascale时代是当前的地平线。但是,获得可用峰值性能的很大一部分越来越困难。在超级计算机上很好地扩展的有效代码的设计是一项非平凡的任务。本说明将讨论上述要点,并与文献和我们个人观点的评论贡献交织在一起。
High Performance Computing (HPC) aims at providing reasonably fast computing solutions to scientific and real life problems. The advent of multicore architectures is noticeable in the HPC history, because it has brought the underlying parallel programming concept into common considerations. At a larger scale, there is a keen interest in building or hosting frontline supercomputers; the Top500 ranking is a nice illustration of this (implicit) racing. Supercomputers, as well as ordinary computers, have fallen in price for years while gaining processing power. We clearly see that, what commonly springs up in mind when it comes to HPC is computer capability. However, when going deeper into the topic, especially on large-scale problems, it appears that the processing speed by itself is no longer sufficient. Indeed, the real concern of HPC users is the time-to-output. Thus, we need to study each important aspect in the critical path between inputs and outputs. The first step is clearly the method, which is a conjunction of modelling with specific considerations (hypothesis, simplifications, constraints, to name a few) and a corresponding algorithm, which could be numerical and/or non numerical. Then comes the topic of programming, which should yield a skillful mapping of the algorithm onto HPC machines. Based on multicore processors, probably enhanced with acceleration units, current generation of supercomputers is rated to deliver an increasing peak performance, the Exascale era being the current horizon. However, getting a high fraction of the available peak performance is more and more difficult. The Design of an efficient code that scales well on a supercomputer is a non-trivial task. The present note will discuss the aforementioned points, interleaved with commented contributions from the literature and our personal views.