
| 出版日期:2004-04-05 总期号:1302 本年期号:23 |
|
Cactus:在异构环境中优化应用
刘鹏
图 1 Cactus的插件式思想 网格平台Globus是一个构成网格基础设施的平台,它的作用相当于网格操作系统。Cactus(仙人掌)是在Globus和应用程序之间搭建的一座桥梁。有了Cactus的支持,编写应用程序几乎就不需要考虑网格的具体问题,甚至以前的应用程序可以不加修改就能使用。Cactus项目由德国爱因斯坦研究所领衔开发,系统庞大而应用界面简单,因而受到普遍关注,成为目前较有影响的网格应用项目之一。 Cactus设计原理 Cactus是一种集成的、通用的、开放源码的计算科学和工程问题解决环境。Cactus允许用户将原来在个人计算机上开发的程序,转换成能够在虚拟的“网格计算机”上运行的并行程序.它提供了简单、抽象的API调用接口,屏蔽了系统的复杂特性,从而简化了用户界面,使之具有更强的可移置性,而且还能够在不同体系结构的机器上运行。此外,Cactus中还集成了许多现成的成熟应用模块,只要提供初始数据并修改参数,就可以得到计算结果,减少了重复开发的现象。可以说,Cactus环境既可以用在数字相对论中,求解爱因斯坦方程,又可以用在其他领域,诸如天体物理学、化学工程、气象模拟、密码科学等。 Cactus不仅在虚拟的网格超级计算机上建立了庞大的问题求解环境,还带来了一种崭新的“大科学”思想。在实现上,Cactus也具有独到之处。Cactus这个名字本身就体现了企业实现的巧妙性:正如仙人掌一样,Cactus由一个主干(flesh)和若干生长在主干上的支干(thorn)构成,支干可以任意多个,直接插上主干就能使用(如图1所示)。 应用案例——模拟黑洞 对于黑洞特性的研究,是当今天文学的热点问题之一。由于无法直接观察到黑洞,只好从一些间接现象来证实它的存在。科学家们认为,用超级计算机来模拟黑洞碰撞等研究,会推动实验物理学进入一个全新的发展阶段。 模拟黑洞是一个典型的网格问题:一方面,它需要很大的计算能力,只有借助网格,才能把计算任务分解到多台超级计算机上;另一方面,要使分布在各地的、不同专业背景的研究人员能够紧密协作,就必须有一个能够在动态的多机构虚拟组织中进行资源共享和协同解决问题的公共平台。仅从这个意义上讲,网格也是必不可少的。 利用Cactus并与Globus结合模拟黑洞的项目,是在德国Max Planck引力物理研究所(即:阿尔伯特·爱因斯坦研究所)的带领下,由德国和美国多个研究机构共同完成的。 该实验的网格拓扑结构如图2所示。此网格一共使用了分布在两个地点的四台并行计算机,共1500个处理器。由于问题本身的特殊性,每个处理器只需要与紧邻它的处理器通信。该特性使得这个应用非常适合分布到不同的并行计算机上处理,因为绝大多数的通信都只发生在并行计算机内部。另外,该项目还采用了其他一些手段来优化性能。例如,使用TCP/IP协议跨越广域网进行通信时,TCP建立连接的时间非常长。利用Cactus可以增加数据包容量,减少发送次数,从而提高通信效率。再如,将计算结果数据进行可视化,也面临海量数据传送问题。由于黑洞引力波是连续的,可以采用压缩后再传输的方法,有时压缩后节省的数据量竟高达99%。同时,Cactus非常易于扩展,只需要编写一个压缩插件,并插入到Cactus主干中即可实现压缩功能。 实验结果表明,优化前,应用程序的整体运行效率只有15%,而优化后的整体效率已经达到了63%。
图2 黑洞模拟网格拓扑结构 |
|||||||||||||||||||||||||||