内部多类别的计算单元之间通信中间件控制系统及方法与流程

文档序号:18360499发布日期:2019-08-06 23:46阅读:248来源:国知局
内部多类别的计算单元之间通信中间件控制系统及方法与流程

本发明属于异构高性能计算技术领域,尤其涉及一种内部多类别的计算单元之间通信中间件控制系统及方法。



背景技术:

目前,异构系统中同时集成多种计算组件,集多种异构计算单元的优点于一身,计算能力远强于传统计算系统。但是异构系统也存在一定的问题,系统中多种类的计算单元架构不同,在不同种类的计算单元之间进行数据交互时存在障碍,导致整个异构系统计算时延较高。目前解决这种异构系统计算时延较高问题的主流技术主要有以下两种:第一,主存中转技术,该技术通过系统主存做一步中转操作,需要先将数据暂存到系统主存,然后另一个计算单元再从主存读取,这种借助系统主存做中转的交互方式虽然一定程度缓解了计算单元交互时延问题,但是数据中转需要占用大量系统主存,而且涉及大量的内存操作,降低了系统主存计算时的有效利用率。另一种主流技术是内存地址映射技术,这种方法需要将计算单元配置一块内存,使其它计算单元将它看成页锁定模式的主存,然后将其内存地址映射到互连主线上,从而完成数据的读写。这种方法仅支持特定的异构计算单元(例如fpga),应用面狭窄而且操作复杂。

综上所述,现有技术存在的问题是:各异构计算单元在进行数据交互时需要占用大量的系统主存并且涉及大量的内存和总线操作,不仅降低了系统主存计算时的有效利用率而且操作复杂。

本发明提出了一种通信中间件方法,利用此中间件可以实现各异构计算单元间的链路互通,直接完成数据交换,解决了目前主流方法的系统主存占用和内存操作繁杂的技术缺陷。

解决上述技术问题的难度:在计算任务的实际执行过程中,计算单元的数目和种类动态调整,如何能在各异构单元间快速建立稳定的数据传输链路是个关键问题;而且如何避免对系统内存的占用和减少内存操作也是一个关键性问题。这些问题的存在极大的增加的解决上述技术缺陷的难度。

解决上述技术问题的意义:本发明提出的通信中间件方法,专门针对异构系统中多种不同结构计算单元间的数据交互接口不一致和数据交互内存占用和内存操作较多的问题,在各异构计算单元间建立直通链路,避开系统主存直接进行数据交互,减少了大量内存操作,降低了异构计算系统计算时延。为用户提供低时延的、动态弹性调整的异构计算系统,以满足航天、医疗、电子商务、人工智能、娱乐等领域的高性能计算需求。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种内部多类别的计算单元之间通信中间件控制系统及方法。

本发明是这样实现的,一种内部多类别的计算单元之间通信中间件控制方法,所述内部多类别的计算单元之间通信中间件控制方法包括以下步骤:

第一步,中间件检测到业务或者接到其它中间件的业务数据传输请求后,对所要执行的业务进行业务参数和计算资源状态参数分析;

第二步,按照参数分析结果和业务特征,进行计算单元和中间件的动态调配;

第三步,通信链路维持与中间件数据传输状态监控;

第四步,中间件进行链路侦听,若收到其它中间件或者计算单元的确认信息,维持链路畅通,否则切断链路,完成复位,等待下次调度。

进一步,所述内部多类别的计算单元之间通信中间件控制方法的业务参数和计算资源参数分析的特征包括:

业务参数分析,中间件检测到业务或者接到其它中间件的业务数据传输请求后,对所要执行的业务进行参数分析,根据业务特征预估完成该业务所需的计算单元数以及构建单元间互通链路所需的通信中间件数;

计算资源状态参数分析,检测系统中所有计算单元和通信中间件,按照空闲和忙碌两种标准分别统计计算单元和中间件的数目。

进一步,所述内部多类别的计算单元之间通信中间件控制方法的通信中间件分配的特征包括:首先按照参数分析结果和业务特征,为每个计算任务匹配最佳的计算单元和通信中间件;然后启动中间件,构建各计算单元间的互通链路,完成该任务的计算网络创建;在任务实际执行过程中,中间件可以根据任务的实时需求唤醒或者休眠计算单元,完成资源的动态调配。

进一步,所述内部多类别的计算单元之间通信中间件控制方法的通信链路维持与中间件数据传输状态监控的特征包括:

中间件按照基地址周期性的向该计算网络中其它的中间件发送带有自身id、dma基字节数、dma现行字节数的握手信息,目的中间件收到握手信息后回复一个携带自身信息和保持链路畅通的确认信息,中间件收到确认信息后维持链路畅通;若没有收到确认信息,则重新配置中间件和通信链路;然后将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确,若传输出现错误,中间件复位dma现行字节数,启动dma重传,若基字节数等于确认信息中的现行字节数说明数据传输完毕,中间件进行下一步操作——通信链路释放。

进一步,所述内部多类别的计算单元之间通信中间件控制方法的中间件通信链路释放的特征包括:中间件监控自身所在链路的工作状态,首先进行链路侦听,若链路处于闲置状态,中间件向该链路上的所有单元发送握手信息,若收到其它中间件或者计算单元的确认信息则维持链路,否则切断链路,复位自身dma的基地址、基字节数、现行字节数等,等待下次调度。

本发明的另一目的在于提供一种实现所述的内部多类别的计算单元之间通信中间件控制方法的内部多类别的计算单元之间通信中间件控制系统,所述内部多类别的计算单元之间通信中间件控制系统包括:

业务参数和计算资源状态参数分析模块,用于实现业务参数分析、计算资源状态参数分析;

通信中间件分配模块,用于按照参数分析结果和业务特征,为每个计算任务匹配最佳的计算单元和通信中间件,启动中间件,构建各计算单元间的互通链路,完成该任务的计算网络创建;在任务实际执行过程中,中间件可以根据任务的实时需求唤醒或者休眠计算单元,完成资源的动态调配;

通信链路维持与中间件状态监控模块,用于将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确;

中间件的通信链路释放模块,用于判断中间件监控自身所在链路的工作状态。

本发明的另一目的在于提供一种应用所述内部多类别的计算单元之间通信中间件控制方法的信息数据处理终端异构计算系统。

本发明的另一目的在于提供一种应用所述内部多类别的计算单元之间通信中间件控制方法的航天数据信息处理系统。

本发明的另一目的在于提供一种应用所述内部多类别的计算单元之间通信中间件控制方法的医疗数据信息处理系统。

本发明的另一目的在于提供一种应用所述内部多类别的计算单元之间通信中间件控制方法的电子商务数据信息处理系统。

综上所述,本发明的优点及积极效果为:本发明提出的通信中间件方法,根据业务特性给计算任务匹配计算单元和通信中间件,中间件专门针对异构系统中多种不同结构计算单元间的数据交互接口不一致和部分计算单元无法配置dma问题,利用该中间件可以代替这部分计算单元配置dma,在多种类异构计算单元之间统一使用dma构建互通链路,避开系统主存直接完成数据交互,降低了系统主存占用,减少了大量内存操作,从根本上解决了异构计算系统计算时延较高的问题,为用户提供低时延的、动态弹性调整的异构计算系统,以满足航天、医疗、电子商务、人工智能、娱乐等领域的高性能计算需求。

附图说明

图1是本发明实施例提供的内部多类别的计算单元之间通信中间件控制系统结构示意图;

图中:1、业务参数和计算资源状态参数分析模块;2、通信中间件分配模块;3、通信链路维持与中间件状态监控模块;4、中间件的通信链路释放模块。

图2是本发明实施例提供的内部多类别的计算单元之间通信中间件控制方法流程图。

图3是本发明实施例提供的异构单元互连图。

图4是本发明实施例提供的时延仿真结果图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

针对异构系统计算系统时延较高的问题,本发明提出了一种多种类、多数量异构计算单元间通信中间件的设计方法,用以降低系统时延。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的内部多类别的计算单元之间通信中间件控制系统包括:业务参数和计算资源状态参数分析模块1、通信中间件分配模块2、通信链路维持与中间件状态监控模块3、中间件的通信链路释放模块4。

业务参数和计算资源状态参数分析模块1,用于实现业务参数分析、计算资源状态参数分析;

通信中间件分配模块2,用于按照参数分析结果和业务特征,为每个计算任务匹配最佳的计算单元和通信中间件,启动中间件,构建各计算单元间的互通链路,完成该任务的计算网络创建;在任务实际执行过程中,中间件可以根据任务的实时需求唤醒或者休眠计算单元,完成资源的动态调配;

通信链路维持与中间件状态监控模块3,用于将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确;

中间件的通信链路释放模块4,用于判断中间件监控自身所在链路的工作状态。

如图2所示,本发明实施例提供的内部多类别的计算单元之间通信中间件控制方法包括以下步骤:

s201:中间件检测到业务或者接到其它中间件的业务数据传输请求后,对所要执行的业务进行业务参数和计算资源状态参数分析;

s202:按照参数分析结果和业务特征,进行计算单元和中间件的动态调配;

s203:通信链路维持与中间件数据传输状态监控;

s204:中间件进行链路侦听,若收到其它中间件或者计算单元的确认信息,维持链路畅通,否则切断链路,完成复位,等待下次调度。

在本发明的优选实施例中,业务参数和计算资源参数分析的主要特征包括:

第一,业务参数分析,中间件检测到业务或者接到其它中间件的业务数据传输请求后,对所要执行的业务进行参数分析,根据业务特征预估完成该业务所需的计算单元数以及构建单元间互通链路所需的通信中间件数;

第二,计算资源状态参数分析,检测系统中所有计算单元和通信中间件,按照空闲和忙碌两种标准分别统计计算单元和中间件的数目;

在本发明的优选实施例中,通信中间件分配的主要特征包括:

首先按照参数分析结果和业务特征,为每个计算任务匹配最佳的计算单元和通信中间件,然后启动中间件,构建各计算单元间的互通链路,完成该任务的计算网络创建。在任务实际执行过程中,中间件可以根据任务的实时需求唤醒或者休眠计算单元,完成资源的动态调配。

在本发明的优选实施例中,通信链路维持与中间件数据传输状态监控的主要特征包括:

中间件按照基地址周期性的向该计算网络中其它的中间件发送带有自身id、dma(直接内存访问,directmemoryaccess)基字节数、dma现行字节数的握手信息,目的中间件收到握手信息后回复一个携带自身信息和保持链路畅通的确认信息,中间件收到确认信息后维持链路畅通;若没有收到确认信息,则重新配置中间件和通信链路。然后将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确,若传输出现错误,中间件复位dma现行字节数,启动dma重传,若基字节数等于确认信息中的现行字节数说明数据传输完毕,中间件进行下一步操作——通信链路释放。

在本发明的优选实施例中,中间件通信链路释放的主要特征包括:

中间件监控自身所在链路的工作状态,首先进行链路侦听,若链路处于闲置状态,中间件向该链路上的所有单元发送握手信息,若收到其它中间件或者计算单元的确认信息则维持链路,否则切断链路,复位自身dma的基地址、基字节数、现行字节数等,等待下次调度。

本发明实施例提供的内部多类别的计算单元之间通信中间件控制方法包括以下步骤:

第一步,进行业务参数和计算资源状态参数分析,中间件检测到业务或者接到其他中间件的业务数据传输请求后,对所要执行的业务进行参数分析,根据业务特征预估完成该业务所需的计算单元数以及构建单元间互通链路所需的通信中间件数,然后进行计算资源状态参数分析,检测系统中所有的计算单元和通信中间件,按照空闲和忙碌两种标准分别统计计算单元中间件的数目;

第二步,通信中间件分配,按照传统的遗传启发式分配原则,为每个计算任务匹配最佳的计算单元和通信中间件,然后启动中间件,构建各计算单元的互通链路,完成该任务的计算网络创建。在任务实际执行过程中,中间件可以根据任务的实时需求唤醒或者休眠计算单元,完成资源的动态调配;

第三步,通信链路维持与中间件状态监控,中间件按照基地址周期性的向该计算网络中其它的中间件发送带有自身id、dma基字节数、dma现行字节数的握手信息,目的中间收受到握手信息后回复一个携带自身信息和保持链路畅通的确认信息,中间件收到确认信息后维持链路畅通。然后将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确,若传输出现错误,中间件复位dma现行字节数,启动dma重传,若基字节数等于确认信息中的现行字节数说明数据传输完毕,中间件进行下一步——通信链路释放;

第四步,中间件通信链路释放,中间件监控自身所在链路的工作状态,首先进行链路侦听,若链路处于闲置状态,中间件向该链路上的所有单元发送握手信息,若收到其它中间件或者计算单元的确认信息则维持链路,否则切断链路,复位自身dma的基地址、基字节数、现行字节数等,等待下次调度。如此能保证异构计算单元之间高质量通信,从而降低系统时延。

下面结合附图3对本发明的应用原理作进一步的描述。

本发明的具体实施例提供的是以高性能串/并行控制计算单元、高性能并行计算单元、高并行可重构逻辑计算单元(共u个)以及通信中间件(共m个)为基础的异构计算系统。

步骤一,检测到业务t,进行业务参数分析,按照其计算代码特点将任务t划分为以下三类子任务:高并行、多重复的计算密集型子任务,逻辑密集型子任务。预估完成该业务所需的各类计算单元数:并行计算单元u1个,可重构计算单元u2个(u1+u2<=u)。需要中间件m(m<m)个。然后进行通信资源参数分析,假设m个中间件全部空闲。

步骤二,首先按照参数分析结果和业务特征,给计算密集型子任务匹配u1个并行计算单元和m1个中间件,给逻辑密集型任务匹配u2可重构计算单元和m2个中间件,然后启动中间件,实现各计算单元互通,例如在任务1中,u1个计算单元通过m1个中间件互连形成一个计算网络,进行计算中间结果和数据的高效交换。另外,中间件可以动态唤醒和休眠计算单元间,以满足任务执行过程中的实时需求。

步骤三,通信链路维持与中间件数据传输状态监控,中间件按照基地址周期性的向该计算网络中其它的中间件发送带有自身id、dma基字节数、dma现行字节数的握手信息,目的中间件收到握手信息后回复一个携带自身信息和保持链路畅通的确认信息,中间件收到确认信息后维持链路畅通;若没有收到确认信息,则重新配置中间件。然后将中间件中dma的基字节数、现行字节数和确认信息对比,检测数据传输是否正确,若传输出现错误,中间件复位dma现行字节数,启动dma重传,若基字节数等于确认信息中的现行字节数说明数据传输完毕,中间件进行下一步操作——通信链路释放。

步骤四,中间件通信链路释放,中间件侦听自身所在链路的工作状态,如附图3所示,若此时链路处于闲置状态,中间件向执行该任务的u1+u2个计算单元发送问询信息,如有部分单元回馈任务等待信息则维持链路,否则切断互通链路,复位自身dma的基地址、基字节数、现行字节数等,等待下次调度。

下面结合仿真对本发明的应用效果作详细的描述。

1、仿真条件

本次实施例仿真在由一个intel(r)xeon(r)cpue5-2683v3@2.00ghz,一个nvidiageforcegtx1080ti和一个xilinxkcu1500fpga加速平台所组成的异构计算平台上进行。

2、仿真实验内容

在上述异构计算系统中,分别在使用通信中间件和不使用通信中间件的情况下测试了多种尺寸的数据在不同计算单元之间的传输时延,测试数据的大小分别为:4bytes、16bytes、256bytes、1kbytes、4kbytes、16kbytes,64kbytes、256kbytes、1mbytes、4mbytes、16mbytes、64mbytes、256mbytes,仿真结果如图4所示。

3、仿真实验结果分析

为了更好的展示实验结果,对仿真结果做了预处理,通过时延比参数更加直观的突出本发明在时延方面的提升效果。时延比定义如下:

时延比=不使用中间件的传输时延/使用中间件的传输时延

如图4所示,当传输数据较少时,使用中间件的时延反而高于不使用的情况,这主要是因为当数据量很小时,中间件的部署时间在整个计算时延中占据了很大一部分所以导致使用中间件的传输处于劣势;随着传输数据量的增加,时延比呈现先递增后稳定的趋势,说明使用中间件的时延优势越来越大最后趋于稳定,从最终稳定后的提升效果来看,本发明可以节省接近35%的计算时延。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1