Cisco网络技术论 坛-> 用户名 密码
搜索
Net130.com

深入分析网格计算池模型


http://www.net130.com  发布日期:2004-5-10
浏览次数:
作者:刘鹏 

摘要:这篇短文分析了传统网格设计思想所存在的不实用问题,提出并实现了一种全新的网格模型——计算池。它把分散在各地的高性能计算机用高速网络连接起来,用专门设计的中间件软件有机地粘合在一起,以Web界面接受各地科学工作者提出的计算请求,并将之分配到合适的结点上运行。计算池能大大提高资源的服务质量和利用率,同时避免跨结点划分应用程序所带来的低效性和复杂性,能够在目前条件下达到实用化要求。

关键词: 网格 计算池 高性能计算机

网格[1]的总体目标是在当前日益发达的网格传输基础设施的基础上建立信息处理基础设施,将分散在网络上的各种设备和各种信息以合理的方式“粘合”起来,形成高度集成的有机整体,向普通用户提供强大的计算能力、存贮能力、设备访问能力及前所未有的信息融合和共享能力。网格是当今的研究热点,国际上已经涌现出一大批网格研究项目,例如,美国有Globus[2]、Legion[3]、Condor[4]、IPG等,欧洲有CERN DataGrid[5]、UNICORE、MOL等,澳大利亚有Nimrod/G[6]、EcoGrid等,日本有Ninf[7]、Bricks等。

传统上,人们希望用网格将若干台超级计算机的计算能力“累加”,以形成一个“前所未有”的虚拟超级计算机。事实上,国际上已经对此有些尝试,例如,用于大规模军事仿真的SF Express[8]和模拟黑洞碰撞的Cactus[9]。但是,到目前为止,这些项目还是试验性的、专用的,不太可能投入长期的、针对通用任务的实际运行。究其原因,大多数计算任务不能够划分成相互之间不通信或很少通信的子任务,因而在子任务之间存在频繁通信。而无论网络条件有多好,远程超级计算机之间的通信带宽和延迟(由远距离传输和TCP/IP协议造成)都无法与超级计算机内部总线和系统区域网络SAN相比。正因为如此,论文[9]中出现了四台超级计算机的集合能力不如其中两台超级计算机集合能力的奇怪现象;另外,试验性项目可以不计成本地使用宽带线路,但长期租用宽带线路的成本是必须考虑的。

既然目前阶段的网络条件和研究水平尚不能有效地支持跨结点分布运算任务(这就是国际上所设想的计算网格),作者认为,用网格构成“计算池”是更为可行的选择。

“网格计算池”将计算网格限定为三点:

(1) 计算资源共享(N台本地或异地高性能计算机加入这个系统中)。
后面的证明将表明,这可以大大提高资源的利用率和服务质量。

(2) 不把一个任务分解成N个子任务,而只是安排在其中一台合适的机器上运行。
事实上,现在只有极少的任务是任何单台高性能计算机都无法处理的。这条限定可以避免分解任务的复杂性(同时降低用户使用高性能计算的门槛),而且更重要的是,避免任务子模块之间频繁通信造成的性能下降。(如果任务子模块之间根本就不需要通信,用P2P的方式进行解决比用网格更高效,如SETI@home[10]。)

(3) 通过Web提交任务和查看结果。
这可以大大方便用户访问高性能计算机:用户不必出差,不必到实验室排队,在家中就可以24小时提交和运行任务。一般来说,任务提交和返回结果的通信量相比计算时的内部通信量是很小的。

综上所述,如果要建计算网格,目前阶段最好使用“网格计算池”方式实现,这样,其实用性可以大大提高。

理论上,计算池的行为可以描述为:假设某一时刻t计算池S中有N台超级计算机处于空闲状态,它们的计算能力分别为P1,P2,…PN,此时如果用户提交了一个计算量为MA的任务A,计算池将根据某些原则为A分配第i台超级计算机(而不是多台),使得Pi*T≥MA,T为用户可以接受的计算时间长度。

计算池的优点是它将以更高效的方式为用户服务,并显著地提高系统的服务能力,推理如下:

为了简化,假设每一台超级计算机的计算能力相同(即P1=P2=…=PN),而且每一个计算任务的计算量都相同。

如果没有构成计算池,每一台超级计算机只能独立工作,为某个特定的用户群服务。假设用户任务的到达方式遵循一个Poisson过程,服务时间也是相互独立、同指数分布的随机变量,任务平均到达间隔时间为1/λ1,平均服务时间为1/μ1,这就是一个M/M/1排队系统。所以,任务在每台超级计算机中的平均排队时间Wq1为:

(式1)

如果将c台超级计算机构成一个计算池,则构成了一个有c个平行服务员的M/M/c排队系统。此时λc=cλ1,μc=μ1,任务在整个计算池中的平均排队时间Wqc为:

(式2)

其中,a为负载比率,C(c,a)为计算池中所有高性能计算机都不空闲的概率,即任务进入计算池的瞬间不能马上得到服务的概率。

(0≦a
分别以不同的c、λ1和μ1值代入Wqc公式,绘制的曲线如图1所示。可见,计算池共享的计算机数量越多,用户等候服务的时间越短,也就是说,对用户的服务越迅速,服务的质量越高。



图 1 任务平均等待时间与计算池容量的关系



现在我们来考察计算池对系统服务能力的影响。当μ1的值固定时(μ1<λ1),M/M/c排队系统有这样的性质:如果c不变,Wqc会随着λ1的增大而增大,即Wqc是λ1的单调递增函数;同时,如果λ1不变,Wqc会随着c的增大而减小,即Wqc是c的单调递减函数。由此可以想象,在固定μ1值的情况下,有可能达到这样一种平衡:Wqc值可以保持不变,但λ1可以随着c值的不断增大而增大。例如图2显示,当μ1=10,Wqc=0.1小时,如果只有一台超级计算机,λ1只能为5,如果有4台,λ1可以达到8.3。这些值是用MATLAB对(式2)反解λ1得到的。

也就是说,如果用多台独立的计算机构成计算池,系统可以在保持相同服务质量(顾客的平均等候时间Wqc不变)的前提下提高服务能力(每台计算机接待顾客的速率λ1增加)。

打印 】【 关闭】【发送给好友