掌桥专利:专业的专利平台
掌桥专利
首页

针对异构多核平台通信优化的拓扑感知映射方法及系统

文献发布时间:2023-06-19 09:29:07


针对异构多核平台通信优化的拓扑感知映射方法及系统

技术领域

本发明涉及异构多核平台通信优化技术领域,特别涉及一种针对异构多核平台通信优化的拓扑感知映射方法及系统。

背景技术

高性能计算机的发展在提升计算速度的同时,面临着能耗墙、存储墙、通信墙与可靠性墙等问题。其中,通信效率直接影响系统计算效率与加速比。在应用程序进程对处理器节点映射过程中,传统策略通常会忽略底层网络拓扑,导致通信距离过大。而交换机的消息延迟随着程序执行越来越长,进程通信最终可能导致互连网络严重拥塞。

针对异构多核平台的通信优化,拓扑感知映射是提高大型系统并行应用程序通信性能的有效解决方案,合理的进程到处理器的映射将很大程度提高进程间的通信效率,减少拥塞。映射算法用进程通信拓扑图和硬件拓扑图构建模型,最终的目标就是找到最小化通信开销的进程与处理器映射。

在“神威·太湖之光”超级计算机中,两个核心的物理位置更近的处理器通信性能更高。并且该系统的网络拓扑为两级胖树结构,超节点内理论上是全连接的,超节点内的256个节点被划分为16组,组内16个节点在同一路由器上,不同组之间通信时需经过路由器中转。因此,在超节点内位于同一组中的节点的通信性能高于不同组中的节点的通信性能。在这样具有数万个计算节点的高性能计算机中,计算资源由用户共享使用,而不是由某个程序或用户独占。因此,用户提交作业运行后,所获得的计算资源常常是不连续的。为了进一步提高通信局部性,在所有非连续的计算资源中选取适当的资源,构建分组到计算节点的映射,使通信开销最小化,需将进程间通信较多的进程映射到机器中拓扑距离较小的处理器上。因此需要对其拓扑映射算法进行优化。

发明内容

本发明提供了一种针对异构多核平台通信优化的拓扑感知映射方法及系统,以解决异构多核平台的通信优化的技术问题。

为解决上述技术问题,本发明提供了如下技术方案:

一方面,本发明提供了一种针对异构多核平台通信优化的拓扑感知映射方法,该针对异构多核平台通信优化的拓扑感知映射方法包括:

获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及所述异构多核平台的处理器节点的拓扑距离矩阵;

基于所述进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;

基于所述拓扑距离矩阵和进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

进一步地,根据进程间通信量对所述并行应用程序的进程进行分组,包括:

根据并行应用程序的进程数m和预设的每个进程组中的进程数n,计算出可完整划分出的进程组的组数,将完整划分后剩余的进程构成单独一个进程组;

对于当前未被分配进程的进程组,选取一个未分组的进程加入当前进程组;

在当前进程组分配了进程但当前进程组中的进程数小于n时,循环遍历未分组的进程,并计算当前遍历到的未分组进程与当前进程组中的已分组进程间的通信量之和w,遍历结束后将最大w值对应的未分组进程分配到当前进程组。

进一步地,根据进程间通信量对并行应用程序的进程进行分组,还包括:

对于分组后得到的进程组,分别嵌套遍历当前进程组和其他每一进程组中的进程,以分别计算出当前进程组和其他每一进程组之间的通信总量;

根据计算出的两个进程组之间的通信总量,更新所述进程通信模式矩阵;其中,更新后的进程通信模式矩阵中的元素表示两个进程组之间的通信总量。

进一步地,基于所述拓扑距离矩阵和进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上,包括:基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上。

进一步地,基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上,包括:

将所有进程组分成未选中的进程组和已选中的进程组,并将所有空闲的处理器节点分成未选中的节点和已选中的节点;

遍历未选中的进程组,基于更新后的进程通信模式矩阵,确定未选中的进程组与已选中的进程组之间的通信总量,选择最大通信总量对应的进程组g;

遍历未选中的处理器节点,基于所述拓扑距离矩阵,确定未选中的处理器节点与已选中的处理器节点之间的拓扑距离之和,选择拓扑距离之和最小值对应的处理器节点node;

将进程组g映射到处理器节点node上,并将进程组g标记为已选中的进程组,将处理器节点node标记为已选中的处理器节点。

另一方面,本发明还提供了一种针对异构多核平台通信优化的拓扑感知映射系统,该针对异构多核平台通信优化的拓扑感知映射系统包括:

矩阵获取模块,用于获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵和所述异构多核平台的处理器节点的拓扑距离矩阵;

进程分组模块,用于基于所述矩阵获取模块所获取的进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;

映射模块,用于基于所述矩阵获取模块所获取的拓扑距离矩阵和所述进程分组模块得到的进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

进一步地,所述进程分组模块具体用于:

根据并行应用程序的进程数m和预设的每个进程组中的进程数n,计算出可完整划分出的进程组的组数,将完整划分后剩余的进程构成单独一个进程组;

对于当前未被分配进程的进程组,选取一个未分组的进程加入当前进程组;

在当前进程组分配了进程但当前进程组中的进程数小于n时,循环遍历未分组的进程,并计算当前遍历到的未分组进程与当前进程组中的已分组进程间的通信量之和w,遍历结束后将最大w值对应的未分组进程分配到当前进程组。

进一步地,所述进程分组模块还用于:

对于分组后得到的进程组,分别嵌套遍历当前进程组和其他每一进程组中的进程,以分别计算出当前进程组和其他每一进程组之间的通信总量;

根据计算出的两个进程组之间的通信总量,更新所述进程通信模式矩阵;其中,更新后的进程通信模式矩阵中的元素表示两个进程组之间的通信总量。

进一步地,所述映射模块具体用于:

基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上。

进一步地,所述映射模块具体还用于:

将所有进程组分成未选中的进程组和已选中的进程组,并将所有空闲的处理器节点分成未选中的节点和已选中的节点;

遍历未选中的进程组,基于更新后的进程通信模式矩阵,确定未选中的进程组与已选中的进程组之间的通信总量,选择最大通信总量对应的进程组g;

遍历未选中的处理器节点,基于所述拓扑距离矩阵,确定未选中的处理器节点与已选中的处理器节点之间的拓扑距离之和,选择拓扑距离之和最小值对应的处理器节点node;

将进程组g映射到处理器节点node上,并将进程组g标记为已选中的进程组,将处理器节点node标记为已选中的处理器节点。

再一方面,本发明还提供了一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。

又一方面,本发明还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。

本发明提供的技术方案带来的有益效果至少包括:

本发明的针对异构多核平台通信优化的拓扑感知映射方法利用贪心的思想将进程进行分组,再将分组结果映射到不同的计算节点上;通过将具有最大通信的进程映射到拓扑距离最小的处理器上,减少了通信延迟。通过对多核任务的合理分配来降低核间通信开销,符合大规模集群中用户程序任务映射的场景。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的针对异构多核平台通信优化的拓扑感知映射方法的流程示意图;

图2是本发明实施例提供的针对异构多核平台通信优化的拓扑感知映射方法在NPB上应用的性能提升示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

第一实施例

本实施例提供了一种针对异构多核平台通信优化的拓扑感知映射方法,该方法可以由电子设备实现,该电子设备可以是终端或者服务器。该方法考虑处理器核心之间通信的系统资源分配和处理器负载平衡,对应用程序进程到处理器节点进行动态映射,具体地,该方法的执行流程如图1所示,包括以下步骤:

S101,获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;

需要说明的是,上述S101是在并行应用程序运行时,首先使用通信检测工具获取该并行应用程序的通信模式;同时获取机器的拓扑结构。然后再根据获得的进程通信模式及拓扑结构分别生成进程通信矩阵和拓扑距离矩阵。

S102,基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;

需要说明的是,上述S102是将进程分为若干组,进程间通信量较多的进程被分到同一组,组与组之间的通信量相对少于组内通信量。

具体地,本实施例所采用的进程分组方法为基于贪心的进程分组算法,该基于贪心的进程分组算法的执行流程如下:

步骤1、根据并行应用程序的进程数m和预设的每个进程组中的进程数n,根据m和n计算出可完整划分出的进程组的组数nGroups,将完整划分后剩余的进程构成单独一个进程组;初始化每组可分得的进程数num[i]与是否已分组chosen[i],利用步骤2的方法循环计算第i组分组情况并返回groups[][]。

其中,在本实施例中,每组进程数n初始值取2、4。

步骤2,循环查找可以放入同一组的进程。对于当前未被分配进程的进程组,选取一个未分组的进程加入当前进程组;在当前进程组分配了进程但当前进程组中的进程数小于n时,循环遍历未分组的进程,并计算当前遍历到的未分组进程与当前进程组中的已分组进程间的通信量之和w,遍历结束后将最大w值对应的未分组进程分配到当前进程组。具体实现过程如下:

1)若是第N

2)若不是第N

3)当所有进程查找完毕之后,将找到的winner进程加入分组,chosen对应元素的值赋1,进程号赋给该组第i个进程。返回的进程分组情况为一个二维数组,groups[i][j]=k表示第i组中第j个进程为进程k。

步骤3,分组完成后通信矩阵更新,newC

1)嵌套遍历第i组的进程和第j组的进程,groups[i][k]为第i组中的第k个进程,groups[j][m]为第j组中的第m个进程,通过原矩阵C获取通信量的值,并与w值相加。循环结束后,w的值为第i组和第j组之间的通信总量;

2)将用来存储第i组到第j组之间的通信总量的临时变量w值赋给newC[i][j],同时因为矩阵为对称矩阵,因此将w值也赋给newC[j][i];

3)返回新的通信矩阵newC[j][i],表示分组i和分组j之间的通信量,即分组i中进程与分组j的进程之间通信量之和。

S103,基于拓扑距离矩阵和进程分组结果,将分组后同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

需要说明的是,上述S103是基于拓扑距离矩阵和更新后的进程通信模式矩阵,将分组后同一组内的进程映射到同一个处理器节点上,而对于不同组之间的进程,则是将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上。从而提高进程之间的通信局部性,降低通信开销。

具体地,基于拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上的执行流程如下:

1)初始化,将所有进程组分成未选中的进程组G

2)计算未选中的分组的通信量对整体通信量的影响因子α

3)循环处理分组与节点的映射,遍历未选中的进程组G

4)遍历未选中的处理器节点P

5)将进程组g映射到处理器节点node上,并在G

综上,本实施例的方法先利用贪心的思想将进程进行分组,再将分组结果映射到不同的计算节点上。映射时尽可能将频繁通信的进程划分到临近或同一节点上,从而通过对多核任务的合理分配来降低核间通信开销。

将本实施例的方法应用于“神威·太湖之光”超级计算机系统中,并在该超级计算机系统中运行用于评估超级计算机性能的程序NAS并行基准测试程序(NAS ParallelBenchmark,NPB),结果如图2所示,性能提升达到6%-12%。

由此可见,本实施例的针对异构多核平台通信优化的拓扑感知映射方法通过遍历所有的分组和空闲节点,将具有最大通信的进程映射到拓扑距离最小的处理器上,减少了通信延迟。提供了从大量非连续的计算资源中选取合适的节点并将其分组进行映射的方法,符合大规模集群中用户程序任务映射的场景。

第二实施例

本实施例提供了一种针对异构多核平台通信优化的拓扑感知映射系统,该针对异构多核平台通信优化的拓扑感知映射系统包括以下功能模块:

矩阵获取模块,用于获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵和所述异构多核平台的处理器节点的拓扑距离矩阵;

进程分组模块,用于基于所述矩阵获取模块所获取的进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;

映射模块,用于基于所述矩阵获取模块所获取的拓扑距离矩阵和所述进程分组模块得到的进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

本实施例的针对异构多核平台通信优化的拓扑感知映射系统与上述第一实施例的针对异构多核平台通信优化的拓扑感知映射方法相对应;其中,本实施例的针对异构多核平台通信优化的拓扑感知映射系统中的各功能模块所实现的功能与上述第一实施例的方法中的各流程步骤一一对应;故,在此不再赘述。

第三实施例

本实施例提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行,以实现第一实施例的方法。

该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)和一个或一个以上的存储器,其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以下步骤:

S101,获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;

S102,基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;

S103,基于拓扑距离矩阵和进程分组结果,将分组后同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

第四实施例

本实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述方法。其中,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。其内存储的指令可由终端中的处理器加载并执行以下步骤:

S101,获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;

S102,基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;

S103,基于拓扑距离矩阵和进程分组结果,将分组后同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。

此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

相关技术
  • 针对异构多核平台通信优化的拓扑感知映射方法及系统
  • 针对异构多核平台通信优化的拓扑感知映射方法及系统
技术分类

06120112184745