一种异构众核系统上的流水式通信并行方法

文档序号:9765855阅读:495来源:国知局
一种异构众核系统上的流水式通信并行方法
【技术领域】
[0001]本发明涉及计算机技术领域,更具体地说,本发明涉及一种异构众核系统上的流水式通信并行方法。
【背景技术】
[0002]并行程序由一组运行在多个处理器上的多个进程组成,进程间存在通信,协同完成一个任务。运行在多处理器系统上的并行程序一般存在处理器之间的通信,这些通信往往与本地计算存在数据相关性,一般而言必须顺序执行,因此系统的计算资源与通信资源得不到充分利用,程序的执行效率也会受到影响。
[0003]具体地说,并行应用程序一般包括各处理器上的独立计算和处理器间的通信。根据Amdahl定律,随着并行度的提高,各个处理器并行执行的计算占总运行时间的比例逐渐减少,而通信所占比例则逐渐增加,通信逐渐成为决定并行程序性能的关键因素之一。由于计算与通信之间一般存在数据相关性,典型的并行应用一般会把计算与通信串行执行。程序在执行时一般执行一段时间计算,再执行一段处理器间通信。按这样的模式,处理器计算时网络带宽资源闲置,处理器通信时计算资源闲置。因此整体执行效率不高。

【发明内容】

[0004]本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够提高应用程序的执行效率和系统的利用率的异构众核系统上的流水式通信并行方法。
[0005]为了实现上述技术目的,根据本发明,提供了一种异构众核系统上的流水式通信并行方法,所述异构众核系统包含控制核心和计算核心。所述流水式通信并行方法包括:分析并行应用的数据,把逻辑上有关联的数据划分为一块;确定一块数据上的相关性顺序。
[0006]在该块数据上的相关性顺序是先通信后计算的情况下,每个处理器上的进程首先由控制核心启动对该块数据的通信处理,计算核心等待控制核心对该块数据的通信完成;计算核心收到控制核心针对该块数据通信完成的标志后开始该块数据的计算,同时控制核心开始下一块数据的通信;以此类推,直到所有的数据块都完成计算和通信。
[0007]在该块数据上的相关性顺序是先计算后通信的情况下,每个处理器上的进程首先由计算核心启动对该块数据的计算处理,控制核心等待计算核心对该块数据的计算完成;控制核心收到计算核心针对该块数据计算完成的标志后开始该块数据的通信,同时计算核心开始下一块数据的计算;以此类推,直到所有的数据块都完成计算和通信。
[0008]优选地,根据应用本身的算法来确定一块数据上的相关性顺序。
[0009]典型并行应用一般可以对数据进行分区,不同区域的数据之间无相关,同一区域内的数据的计算与通信存在相关。本发明针对这类应用对数据进行分区,利用异构众核结构特点,使用控制核心进行通信,计算核心执行计算,以流水的方式解决了异构众核系统上一类通信与计算并行执行的问题。本发明应用于异构众核系统,利用众核系统的结构特性实现本地计算与处理器间通信的并行,提高应用程序的执行效率和系统的利用率。
【附图说明】
[0010]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0011]图1示意性地示出了根据本发明优选实施例的异构众核系统上的流水式通信并行方法的流程图。
[0012]图2示意性地示出了根据本发明优选实施例的异构众核系统上的流水式通信并行方法的示意图。
[0013]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0014]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0015]在多处理器系统上运行的并行程序一般而言都涉及多个处理器对特定数据的协同处理。以科学计算类并行应用为例,从数据结构的角度一般是数组、结构或对象,从应用的数学描述角度往往是矩阵、向量。并行程序通常都是把大的矩阵按一维或二维块分布到各个处理器,各个处理器对属于本处理器的矩阵进行操作,当需要位于其他处理器的矩阵时与其他处理器通信。
[0016]并行应用的计算与通信往往具有较强的相关性,常见的运行模式是各个处理器独立进行一段计算后与其他处理器交换计算结果以进行下一阶段的计算。这样的模式下计算与通信是串行执行,系统的资源利用率较低。
[0017]异构众核是众核结构处理器的一种常见形式,一般由几个运行完整操作系统实现运行控制、处理器间通信等功能的控制核心和一组承担单纯计算功能的计算核心组成。异构众核的典型例子如Nvidia GPU和Intel Xeon Phy0
[0018]异构众核系统包含以控制为主的控制核心和计算为主的计算核心,具有把通信与计算并行的可能性。基于这一特点和对并行应用的分析,本发明提出异构众核系统上的流水式通信并行方法,当计算核心在执行本阶段的计算时,控制核心也同时执行下一阶段的通信。
[0019]图1示意性地示出了根据本发明优选实施例的异构众核系统上的流水式通信并行方法的流程图。图2示意性地示出了根据本发明优选实施例的异构众核系统上的流水式通信并行方法的示意图。
[0020]如图1和图2所示,所述异构众核系统包含控制核心和计算核心。在本发明中,通信指位于不同处理器上的进程间通过计算机网络交换数据的过程,计算指并行程序不需要通信的部分。
[0021]根据本发明优选实施例的异构众核系统上的流水式通信并行方法包括:
[0022]第一步骤S1:分析并行应用的数据,把逻辑上有关联(计算或通信)的数据划分为一块;这样块与块之间可以并行执行。
[0023]第二步骤S2:根据例如应用本身的算法,确定一块数据上的相关性顺序(例如先计算后通信还是先通信后计算);在该块数据上的相关性顺序是先通信后计算的情况下执行第三步骤S3,在该块数据上的相关性顺序是先计算后通信的情况下执行第四步骤S4;
[0024]第三步骤S3:每个处理器上的进程首先由控制核心启动对该块数据的通信处理,计算核心等待控制核心对该块数据的通信完成;计算核心收到控制核心针对该块数据通信完成的标志后开始该块数据的计算,同时控制核心开始下一块数据的通信;按照这个步骤的处理以此类推,直到所有的数据块都完成计算和通信。这样除了第一块数据的通信和最后一块数据的计算之外,所有的计算和通信均以流水方式实现了并行。如图2所示,控制核心依次执行通信11、通信12、通信13…;计算核心在通信12开始依次执行通信21、通信22、通信23…。
[0025]第四步骤S4:每个处理器上的进程首先由计算核心启动对该块数据的计算处理,控制核心等待计算核心对该块数据的计算完成;控制核心收到计算核心针对该块数据计算完成的标志后开始该块数据的通信,同时计算核心开始下一块数据的计算;按照这个步骤的处理以此类推,直到所有的数据块都完成计算和通信。同样,除了第一块数据的通信和最后一块数据的计算之外,所有的计算和通信均以流水方式实现了并行。
[0026]由此,本发明根据数据的相关性把需要计算和通信的数据分区,保证不同区域的数据之间无相关性。在运行的每一阶段同时并行执行某区域的计算和下一区域的通信,众核处理器的计算核心执行计算,控制核心执行通信,以流水方式实现计算与通信的并行。本发明能够显著提高异构众核系统上并行程序的执行效率,对广泛的科学计算类应用均有较好的效果。
[0027]此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
[0028]可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【主权项】
1.一种异构众核系统上的流水式通信并行方法,所述异构众核系统包含控制核心和计算核心,其特征在于所述流水式通信并行方法包括: 分析并行应用的数据,把逻辑上有关联的数据划分为一块; 确定一块数据上的相关性顺序。2.根据权利要求1所述的异构众核系统上的流水式通信并行方法,其特征在于还包括: 在该块数据上的相关性顺序是先通信后计算的情况下,每个处理器上的进程首先由控制核心启动对该块数据的通信处理,计算核心等待控制核心对该块数据的通信完成;计算核心收到控制核心针对该块数据通信完成的标志后开始该块数据的计算,同时控制核心开始下一块数据的通信;以此类推,直到所有的数据块都完成计算和通信。3.根据权利要求1或2所述的异构众核系统上的流水式通信并行方法,其特征在于还包括: 在该块数据上的相关性顺序是先计算后通信的情况下,每个处理器上的进程首先由计算核心启动对该块数据的计算处理,控制核心等待计算核心对该块数据的计算完成;控制核心收到计算核心针对该块数据计算完成的标志后开始该块数据的通信,同时计算核心开始下一块数据的计算;以此类推,直到所有的数据块都完成计算和通信。4.根据权利要求1或2所述的异构众核系统上的流水式通信并行方法,其特征在于,根据应用本身的算法来确定一块数据上的相关性顺序。
【专利摘要】本发明提供了一种异构众核系统上的流水式通信并行方法,包括:分析并行应用的数据,把逻辑上有关联的数据划分为一块;确定一块数据上的相关性顺序。在该块数据上的相关性顺序是先通信后计算的情况下,每个处理器上的进程首先由控制核心启动对该块数据的通信处理,计算核心等待控制核心对该块数据的通信完成;计算核心收到控制核心针对该块数据通信完成的标志后开始该块数据的计算,同时控制核心开始下一块数据的通信;按照这个步骤的处理以此类推,直到所有的数据块都完成计算和通信。
【IPC分类】G06F9/54
【公开号】CN105528253
【申请号】CN201510831794
【发明人】潘治, 漆锋滨, 林蓉芬, 袁欣辉
【申请人】无锡江南计算技术研究所
【公开日】2016年4月27日
【申请日】2015年11月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1