论文部分内容阅读
集群(Cluster)节点间互联通信技术对集群系统进行并行计算的效率和扩展性有着极其重要的影响。光纤作为区域存储网络(Storage Area Network,SAN)在集群系统中有着迫切的应用需求和良好的应用前景:1)集群网络对带宽的需求在不断增加。从100M发展到1Gb,再到目前的20Gb,未来仍有持续增加的趋势;2)目前主流的集群网络,如InfiniBand,Myrinet以及GE(千兆以太网)等在提供带宽(20Gb)服务时运行成本较高,且部分技术不够成熟。相比之下,光纤目前最高已可达40Gb,且具有技术成熟、运行成本较低的优点。将光纤应用到集群系统中的难点在于与集群软件的兼容性和性能优化。1)光纤网络是基于电路交换(circuit switching)而非包交换(packet switching)。一旦连接建立,该连接上的带宽资源就一直保留为该连接的用户服务,直至通信双方断开连接资源才被释放。因此直接将光纤网络应用到集群系统中去,会造成当前流行的一些针对基于包交换的内部互联网络的集群管理软件的兼容性问题;2)光纤网络只能建立点到点的连接,不能直接建立一对多或多对一的连接。虽然可以使用TCP/IP来间接实现组播的功能,但仍然需要在使用组播时考虑性能优化的问题。本文基于MPI(Message Passing Interface)对光纤网络在集群中的应用进行研究。MPI是目前最流行的并行编程消息传递规范,它为消息传递和相关操作提供了库例程。很多集群上的并行应用都是基于MPI开发的,这其中就包括了用来评测TOP500 (Top 500 Super Computers)的HPL(High Performance LINPAC)基准程序。MPICH2是目前比较流行的,对MPI标准的一个免费开源实现。基于MPICH2的源代码,我们可以方便地进行二次开发,并进行相关的实验工作。本文利用ASON(Automatically Switched Optical Network)协议,主要研究如何将光纤网络应用于集群系统的并行环境中。首先,我们设计并实现了BUNIA(Beyond UNI Agent),对ASON的UNI-C(UNI客户侧信令代理)协议进行封装,用于向客户端提供可以远程调用的动态拆建光链路的接口。其次,结合对BUNIA的接口调用,我们通过改进MPICH2在消息传递中的点对点通信和组通信操作,设计并实现了ASON自动交换光网络上的MPI消息传递库AN_MPI。最后,我们通过实验验证了将光纤网络应用到集群系统的并行环境下可以带来更高的通信性能。本文的创新点主要包括两个方面:1)ASON自动交换光网络的UNI-C协议提供了建立和拆除光链路的接口,但是该接口不能被客户端远程调用,而我们对系统的设计期望是松耦合的。因此,我们设计并实现了BUNIA,它对UNI-C协议进行封装,并以Socket形式提供给客户可远程调用的拆建光链路的接口;2)设计并实现AN_MPI,使得在点对点通信和集合通信操作中可以通过调用BUNIA的接口来动态的拆建光链路。