优化高性能计算(HPC)的性能

时间:2008-11-23   来源:   网友评论:0   人气: 477 作者:

如何能优化高性能计算(HPC)的性能?这个问题问的很好。从定性的层面上来说这个问题很容易回答,答案就是更快的处理器,更多容量的内存,表现更佳的网络和磁盘输入/输出子系统。但当你要在决定是否购买Linu集群时这样的回答就不够准确了。2007年6月网上技术交流会上(Webinar)所做的这个议题对于如何提高计算机性能做了详尽的论述。在此次议题中我们会使用更多的量化指标来做讲解。首先要论述的是对术语的定义来缩小此次议题的范围。

什么是高性能计算?

高性能计算简单来说就是在16台甚至更多的服务器上完成某些类型的技术工作负载。到底这个数量是需要8台,12台还是16台服务器这并不重要。在我们的定义下我们假设每一台服务器都在运行自己独立的操作系统,与其关联的输入/输出基础构造都是建立在COTS系统之上。简而言之,我们正在讨论的就是Linux高性能计算集群。

一个拥有20000台服务器的信息中心要进行分子动力学模拟无疑是毫无问题的,就好比一个小型工程公司在它的机房里运行计算流体动力学(CFD)模拟。解决工作负载的唯一限制来自于技术层面。接下来我们要讨论的问题是什么能直接加以应用。

量度(Metrics)

时至今日已经很少有人再讨论有关Linux高性能计算集群的纯性能问题。目前我们碰到的更多是这样的字眼:性能(Performance), 每瓦特性能(Performance/Watt), 每平方英尺性能(Performance/Square foot)和 性能价格比(Performance/dollar)等,对于上文提及的20000台服务器的动力分子簇来说,原因是显而易见的。运行这样的系统经常被服务器的能量消耗(瓦特)和体积(平方英尺)所局限。这两个要素都被计入总体拥有成本(TCO)之列。在总体拥有成本(TCO)方面取得更大的经济效益是大家非常关注的。

接着上面的论述,此次议题的范围我们限定在性能方面来帮助大家理解性能能耗,性能密度和总体拥有成本(TCO)在实践中的重要性。

性能的定义

 


 

在这里我们把性能定义为一种计算率。例如每天完成的工作负载,每秒钟浮点运算的速度(FLOPs)等等。接下来的讨论中我们要思考的是既定工作量的完成时间。这两者是直接关联的,速度=1/(时间/工作量)。因此性能是根据运行的工作量来进行测算的,通过计算其完成时间来转化成所需要的速度。
 

 

定量与定性

在上个章节中我们提到,此次议题是如何对Linux高性能计算集群的性能进行量化分析。为此我们接下来要介绍部分量化模型和方法技巧,它们能非常精确的对大家的业务决策进行指导,同时又非常简单实用。举例来说,这些业务决策涉及的方面包括:

购买---系统元件选购指南来获取最佳性能或者最经济的性能

配置---鉴别系统及应用软件中的瓶颈

计划---突出性能的关联性和局限性来制定中期商业计划

原型Linux集群(Prototypical Linux Cluster)

我们文中的Linux高性能计算集群模型包括四类主要的硬件组成部分。(1)执行技术工作负载的计算节点或者服务器 (2)一个用于集群管理,工作控制等方面的主节点 (3)互相连接的电缆和现在高度普及的千兆以太网(GBE) (4)一些全球存储系统,像由主节点输出的NFS文件一样简单易用。下面我们通过图示1来向大家进行详解。
A1A.jpg 

一个简单量化的运用模型

这样一个量化的运用模型非常直观。在一个集群上对既定的工作完成的时间大约等同于在独立的子系统上花费的时间:

e

(1)时间(Time)=节点时间(Tnode)+电缆时间(Tfabric)+存储时间(Tstorage)

Time = Tnode + Tfabric + Tstorag

这里所说的时间(Time)指的是执行工作量的完成时间,节点时间(Tnode)是指在计算节点上花费的完成时间,电缆时间(Tfabric)是指在互联网上各个节点进行互联的完成时间,而存储时间(Tstorage)则是指访问局域网或全球存储系统的完成时间。As in the webinar,有关电缆时间(Tfabric)和存储时间(Tstorage)的议题我们稍后会为大家陈述。我们先来关注节点时间(Tnode)这个关键词。计算节点的完成时间大约等同于在独立的子系统上花费的时间:


 

文章评论