什么是高性能计算
高性能计算(HighPerformanceComputing)是计算机科学的一个分支,主要是指从体系结构、并行算法和软件开发等方面研究开发高性能计算机的技术。随着计算机技术的飞速发展,高性能计算机的计算速度不断提高,其标准也处在不断变化之中。
高性能计算简单来说就是在16台甚至更多的服务器上完成某些类型的技术工作负载。到底这个数量是需要8台,12台还是16台服务器这并不重要。在我们的定义下我们假设每一台服务器都在运行自己独立的操作系统,与其关联的输入/输出基础构造都是建立在COTS系统之上。简而言之,我们正在讨论的就是Linux高性能计算集群。
一个拥有20000台服务器的信息中心要进行分子动力学模拟无疑是毫无问题的,就好比一个小型工程公司在它的机房里运行计算流体动力学(CFD)模拟。解决工作负载的唯一限制来自于技术层面。接下来我们要讨论的问题是什么能直接加以应用。
量度(Metrics)
时至今日已经很少有人再讨论有关Linux高性能计算集群的纯性能问题。目前我们碰到的更多是这样的字眼:性能(Performance),每瓦特性能(Performance/Watt),每平方英尺性能(Performance/Squarefoot)和性能价格比(Performance/dollar)等,对于上文提及的20000台服务器的动力分子簇来说,原因是显而易见的。运行这样的系统经常被服务器的能量消耗(瓦特)和体积(平方英尺)所局限。这两个要素都被计入总体拥有成本(TCO)之列。在总体拥有成本(TCO)方面取得更大的经济效益是大家非常关注的。
接着上面的论述,此次议题的范围我们限定在性能方面来帮助大家理解性能能耗,性能密度和总体拥有成本(TCO)在实践中的重要性。
性能的定义
在这里我们把性能定义为一种计算率。例如每天完成的工作负载,每秒钟浮点运算的速度(FLOPs)等等。接下来的讨论中我们要思考的是既定工作量的完成时间。这两者是直接关联的,速度=1/(时间/工作量)。因此性能是根据运行的工作量来进行测算的,通过计算其完成时间来转化成所需要的速度。
定量与定性
如何能优化高性能计算(HPC)的性能?从定性的层面上来说这个问题很容易回答,答案就是更快的处理器,更多容量的内存,表现更佳的网络和磁盘输入/输出子系统。但当你要在决定是否购买Linu集群时这样的回答就不够准确了。
如何对Linux高性能计算集群的性能进行量化分析。为此我们接下来要介绍部分量化模型和方法技巧,它们能非常精确的对大家的业务决策进行指导,同时又非常简单实用。举例来说,这些业务决策涉及的方面包括:
购买---系统元件选购指南来获取最佳性能或者最经济的性能
配置---鉴别系统及应用软件中的瓶颈
计划---突出性能的关联性和局限性来制定中期商业计划
我们文中的Linux高性能计算集群模型包括四类主要的硬件组成部分。(1)执行技术工作负载的计算节点或者服务器 (2)一个用于集群管理,工作控制等方面的主节点 (3)互相连接的电缆和现在高度普及的千兆以太网(GBE) (4)一些全球存储系统,像由主节点输出的NFS文件一样简单易用。
目前,高性能计算机的衡量标准主要以计算速度(尤其是浮点运算速度)作为标准。高性能计算机是信息领域的前沿高技术,在保障国家安全、推动国防科技进步、促进尖端武器发展方面具有直接推动作用,是衡量一个国家综合实力的重要标志之一。随着信息化社会的飞速发展,人类对信息处理能力的要求越来越高,不仅石油勘探、气象预报、航天国防、科学研究等需求高性能计算机,而金融、政府信息化、教育、企业、网络游戏等更广泛的领域对高性能计算的需求迅猛增长。