一种基于扁平化模型的通信实现方法技术

技术编号:12789157 阅读:56 留言:0更新日期:2016-01-28 19:01
本发明专利技术提供了一种基于扁平化模型的通信实现方法,可用于点对点通信和集合通信。所述方法包括:运算核心将用户消息的描述符在内存中进行组装;所述运算核心通过写内存方式,将描述符地址信息作为消息请求通知给控制核心;所述控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配;所述控制核心利用消息匹配的结果与远程控制核心进行消息通信。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及。
技术介绍
在异构众核体系结构下,用户进行并行程序设计通常要采用两层设计模型,即在控制核心实现消息通信,在运算核心实现加速运算;其产生的负面影响也是显而易见的。首先,给用户带来了较重的编程负担;其次,多核时代的遗产代码大多需要通过改造才能在众核平台上运行。因此,在异构平台上提供传统扁平化编程视角,有助于提升程序设计生产率,同时也有利于遗产代码在异构众核系统上平滑过渡。基于控制核心代理的运算核心消息通信实现,是扁平化编程模型的重要关键技术之一。运算核心消息通信实现主要包括点对点消息和集合消息。在点对点消息方面,通常的实现方式是采用运算核心中断控制核心发出消息代理请求,由控制核心在中断处理中解析消息请求并进行消息代理操作的方式;这种方式存在中断代价过高导致消息性能下降的缺陷。在集合操作方面,如果采用传统的点对点消息实现方式,由于密集的消息通信请求,容易出现控制核心热点的问题。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术中存在上述缺陷,提供,采用控制核心主动轮询方式,对用户的点对点消息请求进行批量处理,解决了中断代价过高的问题;此外,在集合消息方面,本专利技术利用运算核心数据传输能力强的特点,采用数据传输加单运算核心请求的方式,避免了控制核心的热点问题。根据本专利技术,提供了,用于点对点通信,包括:运算核心将用户消息的描述符在内存中进行组装;所述运算核心通过写内存方式,将描述符地址信息作为消息请求的至少一部分,通知给控制核心;所述控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配;所述控制核心利用消息匹配的结果与远程控制核心进行消息通信。优选地,在所述控制核心与所述远程控制核心的消息通信结束后,所述控制核心将完成信息写入预定完成位中,以便运算核心进行查询。根据本专利技术,还提供了,用于集合通信,包括:运算核心阵列进行同步,由运算核心阵列中核号最小的运算核心组织描述符并通知控制核心,运算核心阵列中的其他运算核心进入下一个阵列同步等待数据通信完成;所述控制核心收到运算核心消息请求后,从消息请求解析描述符以确定根进程位置,并申请集合操作缓冲区并进行消息集合操作,完成后通知所述核号最小的运算核心提出申请的上层消息集合操作已经完成,运算核心阵列发起数据传输操作,将缓冲区中的数据拷贝至相应目的地址。本专利技术基于轮询方式的低开销点对点消息代理机制,而且利用单个核心通知和阵列数据传输相结合的集合通信机制。由此,本专利技术的优点在于,首先,控制核心线程采用轮询的交互方式处理运算核心的消息通信请求,降低了代理实现的代价;其次,利用单个核心通知和阵列数据传输相集合的方式,避免了控制核心的热点问题,充分挖掘了底层芯片的通信潜能。【附图说明】结合附图,并通过参考下面的详细描述,将会更容易地对本专利技术有更完整的理解并且更容易地理解其伴随的优点和特征,其中:图1示意性地示出了根据本专利技术第一优选实施例的基于扁平化模型的通信实现方法的流程图。图2示意性地示出了根据本专利技术第二优选实施例的基于扁平化模型的通信实现方法的流程图。需要说明的是,附图用于说明本专利技术,而非限制本专利技术。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。【具体实施方式】为了使本专利技术的内容更加清楚和易懂,下面结合具体实施例和附图对本专利技术的内容进行详细描述。在异构众核平台上,由于网络接口只对控制核心开放,运算核心的消息通信只能通过主核代理来实现。本专利技术在体系结构特点的基础上,利用运算核心和控制核心之间的交互手段,基于控制核心代理实现了运算核心的点对点通信(某一对进程之间的数据交互,通常包括双边消息操作和单边消息操作)协议以及集合通信(以一组进程为通信集合,按照一定的逻辑规律进行的数据交互,通常包括广播、收集、散发、全交换等)协议,使得用户能够在异构众核系统上方便地采用传统扁平化视图进行消息并行程序设计。〈第一实施例〉图1示意性地示出了根据本专利技术第一优选实施例的基于扁平化模型的通信实现方法的流程图。如图1所示,根据本专利技术第一优选实施例的基于扁平化模型的通信实现方法,用于点对点通信,所述方法包括:第一步骤S1:运算核心将用户消息的描述符在内存中进行组装;第二步骤S2:所述运算核心通过写内存方式,将描述符地址信息(即,描述符的位置)作为消息请求的至少一部分,通知给控制核心;第三步骤S3:所述控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配;第四步骤S4:所述控制核心利用消息匹配的结果与远程控制核心(S卩,远程的另一控制核心)进行消息通信;第五步骤S5:优选地,在所述控制核心与所述远程控制核心的消息通信结束后,所述控制核心将完成信息写入预定完成位中,以便运算核心进行查询。可以看出,运算核心负责将用户消息描述符在内存中进行组装,并通过写内存方式通知控制核心描述符的位置;控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配并和远程控制核心进行消息通信,消息通信完成后,将完成信息写入事先约定的完成位中,由运算核心进行查询。<第二实施例>图2示意性地示出了根据本专利技术第二优选实施例的基于扁平化模型的通信实现方法的流程图。如图2所示,根据本专利技术第二优选实施例的基于扁平化模型的通信实现方法,用于集合通信,所述方法包括:第一步骤S10:运算核心阵列进行同步,由运算核心阵列中核号最小的运算核心组织描述符(例如,作为消息请求的至少一部分)并通知控制核心,运算核心阵列中的其他运算核心进入下一个阵列同步等待数据通信完成;第二步骤S20:所述控制核心收到运算核心消息请求后,从消息请求解析描述符以确定集合操作类型,并申请集合操作缓冲区并进行消息集合操作;第三步骤S30:消息集合操作完成后,通知所述核号最小的运算核心提出申请的上层操作已经完成;例如,在第三步骤S30中,可以通过置完成位来通知所述核号最小的运算核心提出申请的上层操作已经完成。第四步骤S40:所述核号最小的运算核心在收到通知后,使用阵列数据传输将内存中的数据拷贝至运指定位置。可以看出,集合通信例如用于实现广播操作,其中运算核心阵列进行同步,由核号最小的运算核心组织描述符并通知控制核心,其他运算核心进入下一个阵列同步等待数据通信完成;控制核心收到运算核心消息请求,解析描述符,确定根进程位置,申请缓冲区并进行消息集合操作;完成后,置完成位通知先前运算核心提出申请的上层集合操作已经完成,运算核心收到通知后,使用数据传输将内存中的数据拷贝至运算核心指定的位置,并进入阵列同步;这样,在阵列同步完成后,所有运算核心集合操作完成。此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。可以理解的是,虽然本专利技术已以较佳实施例披露如上,然而上述实施例并非用以限定本专利技术。对于任何熟悉本领域的技术人员而言,在不脱离本专利技术技术方案范围情况下,都本文档来自技高网...
一种基于扁平化模型的通信实现方法

【技术保护点】
一种基于扁平化模型的通信实现方法,用于点对点通信,其特征在于包括:运算核心将用户消息的描述符在内存中进行组装;所述运算核心通过写内存方式,将描述符地址信息作为消息请求的至少一部分,通知给控制核心;所述控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配;所述控制核心利用消息匹配的结果与远程控制核心进行消息通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:魏迪何王全尹万旺刘勇王涛
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:江苏;32

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

1