当前位置: 首页 > 专利查询>上海大学专利>正文

一种构建高效MPI设备层扩展库的方法技术

技术编号:13913559 阅读:48 留言:0更新日期:2016-10-27 09:47
本发明专利技术涉及一种构建高效MPI设备层扩展库的方法。本方法是利用MPICH3的PMI KVS空间的功能,结合PCI Express互联结构的特点,提出控制和数据双通道的通信模式,通过以太网仅传输必需的控制信息,使用高速的PCI Express来传输数据信息,通过进程PMI put操作保存本地计算节点端口等信息到本地KVS中,同时同步到远程服务端KVS,而其他进程再通过PMI get操作获取各进程所在计算节点端口等信息,从而建立节点间通信关系,实现这种嵌入式混合异构系统运算节点之间高效的数据传输,实现MPI并行程序无缝移植和高效运行。

【技术实现步骤摘要】

本专利技术涉及一种构建高效MPI扩展库的方法,特别是提出了一种控制和数据双通道的通信模式,属于计算机

技术介绍
随着高效能技术发展,各种高性能总线互联技术层出不穷,包括嵌入式领域的RapidIO技术,针对PC机的PCI Express技术以及面向服务机群的InfiniBand技术。其中PCI Express作为新一代的总线接口,能够通过交换器实现多台设备之间通信的串行、点对点类型的互联,并能实现高效的数据传输。因此把PCI Express技术应用到高性能计算领域成为当前热门研究方向。目前已提出的PCI Express总线互联结构,该结构通过母板PCI Express的插槽连接不同的带着FPGA和ARM混合异构的嵌入式子板,这些子板上面运行MPI应用进程,而不同子板上应用进程之间通过PCI Express先把数据传输给PC host,然后再由PC host把数据传输给目的板卡上的应用进程。用PCI Express代替以太网来传输数据,能很好解决网络带宽限制的问题,而且该结构规模较小,能很好应用到工业等领域。然而基于这种互联结构实现并行程序运行,需要设计和实现相应的MPI(消息传递接口)设备层扩展库,实现不同板卡进程之间的相互通信。
技术实现思路
本专利技术的目的在于针对已有技术的不足提供一种构建高效MPI设备层扩展库的方法,从而建立节点间通信关系,实现这种嵌入式混合异构系统运算节点之间高效的数据传输,实现MPI并行程序无缝移植和高效运行。为了达到上述目的,本专利技术采用下述技术方案:一种构建高效MPI设备层扩展库的方法,操作步骤为:虚连接的初始化;控制和数据传输双通道模式的设计;系统基本功能设计与实现。所述的虚连接的初始化,主要包括两个步骤,第一是在作业初始化阶段为进程初始化与其他进程之间调用过程、第二是初始化设备层相关数据结构并保存到虚连接内,具体的操作步骤如下:1) 初始化iStartContigMsg、iSendContig、sendNoncontig_fn三个指针函数。2) 初始化发送队列send_queue。3) 将文件描述符保存到对应的虚连接结构体中。4) 得到各个目的进程的business card,通过查询server端得到端口号保存在相应的虚连接结构体中。所述的控制和数据传输双通道模式的设计,由于总线互联结构支撑软件提供的操作设备方法无法像传统的TCP一样,以IP地址作为主机标识进行数据传输,而它一般以端口作为主机标识,如PCI Express,而在进程管理部分通过SSH等去进行远程控制访问,另一方面,数据传输是通过PCI Express总线,所以整体数据的流通是以控制和数据相分离的,控制信息主要是进程管理相关的信息通过TCP进行传输,而数据信息,主要是发送,接收等通过PCI Express总线传输。所述的系统基本功能设计与实现中主要包括数据包的设计和数据的发送和接收。当发送方向接收方发送数据时:1)先为本次通信过程分配唯一的序列号,再填充源端口号和目的端口号,源进程号和目的进程号以及数据长度信息,将控制信息数据包发送给PC端;2)PC端接收到控制信息数据包,得到目的端号和序列号等信息,并等待发送方发送数据;3)发送方将数据发送给PC端;4)当PC 端接收到所有数据时,将数据发送到目的端号。由于一块板卡上运行多个应用进程,而每一个进程会从同一个端口读取数据,从而使得数据读取混乱,所以本文采用为板卡上每一个进程预设内存缓冲池的去存放PC端发送来的数据,当设备层扩展库读取数据时,按进程号读取对应缓冲池上的数据,再拷贝到用户数据区。本专利技术与现有技术相比较,具有如下显而易见的突出实质性特点和显著技术进步:本专利技术是利用MPICH3的PMI KVS空间的功能,结合PCI Express互联结构的特点,提出控制和数据双通道的通信模式,通过以太网仅传输必需的控制信息,使用高速的PCI Express来传输数据信息,通过进程PMI put操作保存本地计算节点端口等信息到本地KVS中,同时同步到远程服务端KVS,而其他进程再通过PMI get操作获取各进程所在计算节点端口等信息,从而建立节点间通信关系,实现这种嵌入式混合异构系统运算节点之间高效的数据传输,实现MPI并行程序无缝移植和高效运行。附图说明图1是本专利技术的程序框图;图2是本专利技术中的控制与数据双通道结构图;图3是本专利技术中的数据包格式图;图4是本专利技术中的发送和接收数据过程图。具体实施方式下面结合说明书附图和具体实施例对本专利技术作进一步详细的说明。参见图1~4,本构建高效MPI设备层扩展库的方法是基于PCI-Express互联结构设计相关的高效的MPI设备层扩展库,包括虚连接的初始化、控制和数据传输双通道模式的设计以及系统基本功能设计与实现,具体实现如下:1.虚连接初始化的步骤如下:1)初始化 iStartContigMsg、 iSendContig、sendNoncontig_fn三个函数指针,这三个函数是和发送相关的。当应用程序调用MPI_Send时,MPICH根据rank号取到对应的VC,按照参数选择调用以上三个VC中的函数。这三个函数需要在设备层扩展库进行具体实现的,当虚连接初始化时根据进程是节点间还是节点内选择是否对VC的函数指针进行赋值。2)初始化发送队列send_queue。Send_queue是定义在设备层的消息队列由于MPI存在非阻塞通信,而且在实际数据发送过程中可能出现信道阻塞,所以需要有缓存,MPICH3设备层缓存和CH3层对接收请求的组织方式相同,都是以请求队列的形式存在的,当出现阻塞时,将消息封装成请求并入队,并等待出队发送,所以设备层需要在虚连接内维护一个请求队列。3)将设备文件描述符保存到对应的虚连接结构体中。4)得到各个目的进程的business card,通过查询server端得到端口号保存在相应的虚连接结构体中,后面的数据传输需要知道目的进程所在的端口。2.参照图2,控制与数据双通道的具体实现如下:1)将端口号等信息和设定的key,如字符串“endpoint”,通过PMI_KVS_Put方法写入本地KVS中。2)从整个树形结构中层层提交到远程的Launch node端KVS中。3)其他进程按照这个key值在对应的进程KVS中去查找需要的端口号等信息。因为每一块板卡有一个唯一的IP地址,也对应一个唯一的端口,本地初始化时可以通过kernel提供的方法获得端口号,然后通过上面的方法去进行保存。4)在每个进程虚连接初始化的时候去通过PMI_KVS_Get方法查询每个进程rank值对应的端口号等信息,并保存到虚连接中。3.系统基本功能设计与实现包括数据包的设计,发送数据与接收数据的设计与实现,具体实现如下:参照图3,数据包格式设计如下:1)ID字段:ID字段只有一位,当ID为0时,表示控制信息数据包,当ID为1时表示用户数据包。2)序列号:根据进程号为每个进程分配连续的且不同序列号,保证同时一个端口不同进程向PC端发送数据时,可以以不同的序列号进行区分。3) 分片号:当数据以分片发送,分片号从1开始,以分片号标识每片数据,当数据不以分片发送,分片号字段为0。参照图4,发送数据具体流程:1) 先为本次通信过程分配唯一的本文档来自技高网...

【技术保护点】
一种构建高效MPI设备层扩展库的方法,其特征在于操作步骤如下:A.虚连接的初始化;B.控制和数据传输双通道模式的设计;C.系统基本功能设计与实现。

【技术特征摘要】
1.一种构建高效MPI设备层扩展库的方法,其特征在于操作步骤如下:A.虚连接的初始化;B.控制和数据传输双通道模式的设计;C.系统基本功能设计与实现。2.根据权利要求1所述的构建高效MPI设备层扩展库的方法,其特征在于,所述步骤B中控制和数据传输双通道模式的设计如下:控制信息主要是进程管理相关的信息通过TCP进行传输,而数据信息,主要是发送、接收通过PCI Express总线传输,具体的过程如下:1)将端口号信息和设定的key,字符串“endpoint”,通过PMI_KVS_Put方法写入本地KVS中;2)从整个树形结构中层层提交到远程的Launch node端KVS中;3)其他进程按照这个key值在对应的进程KVS中去查找需要的端口号信息;因为每一块板卡有一个唯一的IP地址,也对应一个唯一的端口,本地初始化时可以通过kernel提供的方法获得端口号,然后通过上面的方法去进行保存;4)在每个进程虚连接初始化的时候去通过PMI_KVS_Get方法查询每个进程rank值对应的端口号信息,并保存到虚连接中。3.根据权利要求1所述的构建高效MPI设备层扩展库的方法,其特征在于,所述步骤C中系统基本功能设计与实现主...

【专利技术属性】
技术研发人员:雷咏梅方铃
申请(专利权)人:上海大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1