发明名称 一种消息传递接口支持总线通信框架
摘要 本发明一种消息传递接口支持总线通信框架,包括Open MPI开源软件的基本框架中的字节传输层BTL、字节传输管理层BML、点对点消息层PML、MPI应用程序接口MPI API、内存池Mpool、及注册缓存Rcache,该框架还包括:在上述框架的基础上,添加HT的总线通信模块HT BTL,并调用Open MPI架构中相应的内存池Mpool;通过配置HT BTL模块优先级,使得一个主板的相同或不同操作系统内,及不同主板间能够进行通信。它主要根据Open MPI开源软件提供的标准接口,结合Hypertransport总线通信协议提供的系统调用接口,将Hypertransport总线的通信协议整合到Open MPI架构中。同时,在MPI进程通信的过程中,使用Hypertransport总线通信协议要比其他网络的优先级高。本发明在现有的成熟技术基础上进行创新,实施简便,具有良好的使用和发展前景。
申请公布号 CN101866326B 申请公布日期 2012.10.24
申请号 CN201010189240.2 申请日期 2010.05.24
申请人 北京航空航天大学 发明人 肖利民;李勇男;胡耀辉;田力;阮利;王欢
分类号 G06F13/38(2006.01)I 主分类号 G06F13/38(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种消息传递接口支持总线通信的方法,该方法的实施是基于开源软件Open MPI的基本框架来实现的,其中,该开源软件Open MPI的基本框架包括字节传输层(BTL)、字节传输管理层(BML)、点对点消息层(PML)、消息传递接口应用程序接口(MPI API)、内存池(Mpool)及注册缓存(Rcache),其特征在于:在上述基于开源软件Open MPI的基本框架的基础上,添加支持Hypertransport总线通信的总线通信模块(HT BTL),并通过总线通信模块(HT BTL)调用开源软件Open MPI架构中内存池(Mpool)的内存管理函数;通过设置总线通信模块(HT BTL)的优先级,使得开源软件Open MPI中Hypertransport总线通信的优先级高于以太网通信和Infiniband高速互联网络通信;其中,所述支持Hypertransport总线通信的总线通信模块(HT BTL)包括核心功能模块,消息类型模块,对等端模块,配置文件模块;其中:所述核心功能模块,其功能包括:描述总线通信模块(HT BTL)基本信息,初始化总线通信模块(HT BTL),总线通信模块(HT BTL)组件打开和资源释放,建立和释放对等端,分配和释放消息描述符,消息的发送和接收;所述消息类型模块,其功能包括:定义消息传递接口(MPI)的消息类型,以及实现对消息传递接口(MPI)各种消息的构造,定义的消息供核心功能模块调用;所述对等端模块,其功能包括:描述进程间通信建立连接时,对等端连接的基本描述信息,对等端连接的建立和释放在核心功能模块当中完成;所述配置文件模块,其功能包括:完成总线通信模块(HT BTL)配置文件Makefile.am中的路径配置,以及总线通信模块(HT BTL)编译方式的选择;所述消息类型模块中定义两种消息类型供核心功能模块调用;对等端模块当中定义对字节传输层(BTL)对等端的描述信息,核心功能模块在建立对等端连接时调用这一模块;核心功能模块完成字节传输层(BTL)的初始化,数据收发,资源释放功能;配置文件模块将总线通信模块(HT BTL)的其他三个模块整合到开源软件Open MPI的框架当中;其中,所述的总线通信模块(HT BTL)的初始化过程为:(1)MPI应用程序接口(MPI API)调用消息传递接口(MPI)初始化函数;(2)点对点消息层(PML)选中两个备选组件中的默认组件(OB1)并调用字节传输管理层(BML)的初始化函数;(3)字节传输管理层(BML)通过其中的唯一组件(r2)初始化所有的字节传输层 (BIL);(4)调用总线通信模块(HT BTL)的组件初始化函数,并将其加入可用的字节传输层(BTL)模块链表;其中,所述的总线通信模块(HT BTL)的对等端连接过程为:(1)点对点消息层(PML)为每个消息传递接口(MPI)进行关联一个字节传输层(BTL)组件;(2)字节传输管理层(BML)添加可用的字节传输层(BTL)组件链表,并根据优先级对所有可用的字节传输层(BTL)组件进行排序;(3)为同一主板不同操作系统上的消息传递接口(MPI)进程提供总线通信模块(HTBTL)组件信息,并调用建立对等端的函数建立Hypertransport总线连接;其中,所述的总线通信模块(HT BTL)的消息发送与接收过程为:(1)调用消息传递接口(MPI)的消息发送函数;(2)点对点消息层(PML)分配发送请求,根据消息大小选择不同的传输函数,调用BML层发送函数;(3)字节传输管理层(BML)的发送函数绑定总线通信模块(HT BTL)对等端,调用字节传输层(BTL)发送函数;(4)总线通信模块(HT BTL)发送函数为发送消息分配描述符,调用Hypertransport总线通信系统调用发送函数,将消息发送到对方主机的内存中;(5)发送方完成数据发送后,接收方依次调用MPI,点对点消息层(PML),字节传输管理层(BML),总线通信模块(HT BTL)的接收函数完成数据接收,并在完成接收以后调用相应的资源释放函数,释放之前分配的系统资源。
地址 100191 北京市海淀区学院路37号北航计算机学院