CN112202599B - 针对异构多核平台通信优化的拓扑感知映射方法及*** - Google Patents
针对异构多核平台通信优化的拓扑感知映射方法及*** Download PDFInfo
- Publication number
- CN112202599B CN112202599B CN202010956523.9A CN202010956523A CN112202599B CN 112202599 B CN112202599 B CN 112202599B CN 202010956523 A CN202010956523 A CN 202010956523A CN 112202599 B CN112202599 B CN 112202599B
- Authority
- CN
- China
- Prior art keywords
- communication
- group
- processes
- groups
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对异构多核平台通信优化的拓扑感知映射方法及***,该拓扑感知映射方法包括:获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;基于拓扑距离矩阵和进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。本发明针对异构多核平台的通信优化,通过对多核任务的合理分配,有效地降低了核间通信开销。
Description
技术领域
本发明涉及异构多核平台通信优化技术领域,特别涉及一种针对异构多核平台通信优化的拓扑感知映射方法及***。
背景技术
高性能计算机的发展在提升计算速度的同时,面临着能耗墙、存储墙、通信墙与可靠性墙等问题。其中,通信效率直接影响***计算效率与加速比。在应用程序进程对处理器节点映射过程中,传统策略通常会忽略底层网络拓扑,导致通信距离过大。而交换机的消息延迟随着程序执行越来越长,进程通信最终可能导致互连网络严重拥塞。
针对异构多核平台的通信优化,拓扑感知映射是提高大型***并行应用程序通信性能的有效解决方案,合理的进程到处理器的映射将很大程度提高进程间的通信效率,减少拥塞。映射算法用进程通信拓扑图和硬件拓扑图构建模型,最终的目标就是找到最小化通信开销的进程与处理器映射。
在“神威·太湖之光”超级计算机中,两个核心的物理位置更近的处理器通信性能更高。并且该***的网络拓扑为两级胖树结构,超节点内理论上是全连接的,超节点内的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)若是第No组的第一个进程,则选取未被分配的进程,将chosen置1,同时将进程号j赋值给groups[No][1];
2)若不是第No组的第一个进程,则循环查找进程,计算当前进程j与已分组的该组通信量和w,将当前w值赋给cMax,表示到目前为止所获得的最大通信量;并将当前进程j赋给winner,表示进程j为当前找到的可以加入分组的进程。其中,cMax表示在找第i个进程时,未分配进程中与当前已分配进程之间通信量的最大值;winner表示找到的可以放入该分组中的进程;
3)当所有进程查找完毕之后,将找到的winner进程加入分组,chosen对应元素的值赋1,进程号赋给该组第i个进程。返回的进程分组情况为一个二维数组,groups[i][j]=k表示第i组中第j个进程为进程k。
步骤3,分组完成后通信矩阵更新,newCi,j表示分组i和分组j之间的通信量,即分组i中进程与分组j的进程之间通信量之和,具体实现过程如下:
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)初始化,将所有进程组分成未选中的进程组Gunchosen和已选中的进程组Gchosen,并将所有空闲的处理器节点分成未选中的节点Punchosen和已选中的节点Pchosen;
2)计算未选中的分组的通信量对整体通信量的影响因子α1和拓扑距离计算时的权重α2;
3)循环处理分组与节点的映射,遍历未选中的进程组Gunchosen,基于更新后的进程通信模式矩阵,确定未选中的进程组与已选中的进程组之间的通信总量w[g],选择w[g]的最大值对应的进程组g;
4)遍历未选中的处理器节点Punchosen,基于拓扑距离矩阵,确定未选中的处理器节点与已选中的处理器节点之间的拓扑距离之和distance[node],选择distance[node]的最小值对应的处理器节点node;
5)将进程组g映射到处理器节点node上,并在Gchosen中***进程组g,在Gunchosen中删除进程组g;在Pchosen中***处理器节点node,在Punchosen中删除处理器节点node。更新α1和α2,所有进程组都已被映射,结束循环,返回映射关系。
综上,本实施例的方法先利用贪心的思想将进程进行分组,再将分组结果映射到不同的计算节点上。映射时尽可能将频繁通信的进程划分到临近或同一节点上,从而通过对多核任务的合理分配来降低核间通信开销。
将本实施例的方法应用于“神威·太湖之光”超级计算机***中,并在该超级计算机***中运行用于评估超级计算机性能的程序NAS并行基准测试程序(NAS ParallelBenchmark,NPB),结果如图2所示,性能提升达到6%-12%。
由此可见,本实施例的针对异构多核平台通信优化的拓扑感知映射方法通过遍历所有的分组和空闲节点,将具有最大通信的进程映射到拓扑距离最小的处理器上,减少了通信延迟。提供了从大量非连续的计算资源中选取合适的节点并将其分组进行映射的方法,符合大规模集群中用户程序任务映射的场景。
第二实施例
本实施例提供了一种针对异构多核平台通信优化的拓扑感知映射***,该针对异构多核平台通信优化的拓扑感知映射***包括以下功能模块:
矩阵获取模块,用于获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵和所述异构多核平台的处理器节点的拓扑距离矩阵;
进程分组模块,用于基于所述矩阵获取模块所获取的进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;
映射模块,用于基于所述矩阵获取模块所获取的拓扑距离矩阵和所述进程分组模块得到的进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。
本实施例的针对异构多核平台通信优化的拓扑感知映射***与上述第一实施例的针对异构多核平台通信优化的拓扑感知映射方法相对应;其中,本实施例的针对异构多核平台通信优化的拓扑感知映射***中的各功能模块所实现的功能与上述第一实施例的方法中的各流程步骤一一对应;故,在此不再赘述。
第三实施例
本实施例提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行,以实现第一实施例的方法。
该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)和一个或一个以上的存储器,其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以下步骤:
S101,获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;
S102,基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;
S103,基于拓扑距离矩阵和进程分组结果,将分组后同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。
第四实施例
本实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述方法。其中,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。其内存储的指令可由终端中的处理器加载并执行以下步骤:
S101,获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及异构多核平台的处理器节点的拓扑距离矩阵;
S102,基于进程通信模式矩阵,根据进程间通信量对并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;
S103,基于拓扑距离矩阵和进程分组结果,将分组后同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上。
此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
Claims (6)
1.一种针对异构多核平台通信优化的拓扑感知映射方法,其特征在于,所述针对异构多核平台通信优化的拓扑感知映射方法包括:
获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵,以及所述异构多核平台的处理器节点的拓扑距离矩阵;
基于所述进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;
基于所述拓扑距离矩阵和进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上;
根据进程间通信量对所述并行应用程序的进程进行分组,包括:
根据并行应用程序的进程数m和预设的每个进程组中的进程数n,计算出可完整划分出的进程组的组数,将完整划分后剩余的进程构成单独一个进程组;
对于当前未被分配进程的进程组,选取一个未分组的进程加入当前进程组;
在当前进程组分配了进程但当前进程组中的进程数小于n时,循环遍历未分组的进程,并计算当前遍历到的未分组进程与当前进程组中的已分组进程间的通信量之和w,遍历结束后将最大w值对应的未分组进程分配到当前进程组;
根据进程间通信量对所述并行应用程序的进程进行分组,还包括:
对于分组后得到的进程组,分别嵌套遍历当前进程组和其他每一进程组中的进程,以分别计算出当前进程组和其他每一进程组之间的通信总量;
根据计算出的两个进程组之间的通信总量,更新所述进程通信模式矩阵;其中,更新后的进程通信模式矩阵中的元素表示两个进程组之间的通信总量。
2.如权利要求1所述的针对异构多核平台通信优化的拓扑感知映射方法,其特征在于,基于所述拓扑距离矩阵和进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上,包括:基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上。
3.如权利要求2所述的针对异构多核平台通信优化的拓扑感知映射方法,其特征在于,基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上,包括:
将所有进程组分成未选中的进程组和已选中的进程组,并将所有空闲的处理器节点分成未选中的节点和已选中的节点;
遍历未选中的进程组,基于更新后的进程通信模式矩阵,确定未选中的进程组与已选中的进程组之间的通信总量,选择最大通信总量对应的进程组g;
遍历未选中的处理器节点,基于所述拓扑距离矩阵,确定未选中的处理器节点与已选中的处理器节点之间的拓扑距离之和,选择拓扑距离之和最小值对应的处理器节点node;
将进程组g映射到处理器节点node上,并将进程组g标记为已选中的进程组,将处理器节点node标记为已选中的处理器节点。
4.一种针对异构多核平台通信优化的拓扑感知映射***,其特征在于,所述针对异构多核平台通信优化的拓扑感知映射***包括:
矩阵获取模块,用于获取待通信优化的异构多核平台当前运行的并行应用程序的进程通信模式矩阵和所述异构多核平台的处理器节点的拓扑距离矩阵;
进程分组模块,用于基于所述矩阵获取模块所获取的进程通信模式矩阵,根据进程间通信量对所述并行应用程序的进程进行分组;其中,组与组之间的进程通信量相对少于组内进程通信量;
映射模块,用于基于所述矩阵获取模块所获取的拓扑距离矩阵和所述进程分组模块得到的进程分组结果,将分组后位于同一组内的进程映射到同一个处理器节点上,不同组之间的进程分别映射到不同的处理器节点上;
所述进程分组模块具体用于:
根据并行应用程序的进程数m和预设的每个进程组中的进程数n,计算出可完整划分出的进程组的组数,将完整划分后剩余的进程构成单独一个进程组;
对于当前未被分配进程的进程组,选取一个未分组的进程加入当前进程组;
在当前进程组分配了进程但当前进程组中的进程数小于n时,循环遍历未分组的进程,并计算当前遍历到的未分组进程与当前进程组中的已分组进程间的通信量之和w,遍历结束后将最大w值对应的未分组进程分配到当前进程组;
所述进程分组模块还用于:
对于分组后得到的进程组,分别嵌套遍历当前进程组和其他每一进程组中的进程,以分别计算出当前进程组和其他每一进程组之间的通信总量;
根据计算出的两个进程组之间的通信总量,更新所述进程通信模式矩阵;其中,更新后的进程通信模式矩阵中的元素表示两个进程组之间的通信总量。
5.如权利要求4所述的针对异构多核平台通信优化的拓扑感知映射***,其特征在于,所述映射模块具体用于:
基于所述拓扑距离矩阵和更新后的进程通信模式矩阵,将当前具有最大通信总量的进程组映射到拓扑距离最小的处理器节点上。
6.如权利要求5所述的针对异构多核平台通信优化的拓扑感知映射***,其特征在于,所述映射模块具体还用于:
将所有进程组分成未选中的进程组和已选中的进程组,并将所有空闲的处理器节点分成未选中的节点和已选中的节点;
遍历未选中的进程组,基于更新后的进程通信模式矩阵,确定未选中的进程组与已选中的进程组之间的通信总量,选择最大通信总量对应的进程组g;
遍历未选中的处理器节点,基于所述拓扑距离矩阵,确定未选中的处理器节点与已选中的处理器节点之间的拓扑距离之和,选择拓扑距离之和最小值对应的处理器节点node;
将进程组g映射到处理器节点node上,并将进程组g标记为已选中的进程组,将处理器节点node标记为已选中的处理器节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956523.9A CN112202599B (zh) | 2020-09-11 | 2020-09-11 | 针对异构多核平台通信优化的拓扑感知映射方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956523.9A CN112202599B (zh) | 2020-09-11 | 2020-09-11 | 针对异构多核平台通信优化的拓扑感知映射方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202599A CN112202599A (zh) | 2021-01-08 |
CN112202599B true CN112202599B (zh) | 2021-08-03 |
Family
ID=74014820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010956523.9A Active CN112202599B (zh) | 2020-09-11 | 2020-09-11 | 针对异构多核平台通信优化的拓扑感知映射方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202599B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244708B (zh) * | 2021-04-26 | 2023-08-08 | 无锡江南计算技术研究所 | 一种胖树网络结构上的通信优化方法 |
CN113259482B (zh) * | 2021-06-21 | 2021-12-07 | 北京卡普拉科技有限公司 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
CN116170435A (zh) * | 2021-11-25 | 2023-05-26 | 华为技术有限公司 | 数据传输方法、计算设备及计算*** |
CN115102864B (zh) * | 2022-06-21 | 2023-08-29 | 中国人民解放军国防科技大学 | 一种用于Dragonfly拓扑的Allgather方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597042A (zh) * | 2020-05-11 | 2020-08-28 | Oppo广东移动通信有限公司 | 业务线程运行方法、装置、存储介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387965B (zh) * | 2008-10-24 | 2011-05-18 | 北京科技大学 | 并行程序编译方法及*** |
CN101834780B (zh) * | 2010-01-28 | 2014-04-16 | 武汉理工大学 | 片上网络的拓扑结构的映射优化方法 |
CN102855153B (zh) * | 2012-07-27 | 2016-03-02 | 华中科技大学 | 面向片式多核处理器的流编译优化方法 |
US9160627B2 (en) * | 2013-04-04 | 2015-10-13 | Netspeed Systems | Multiple heterogeneous NoC layers |
CN104270308A (zh) * | 2014-10-15 | 2015-01-07 | 重庆大学 | 一种面向非均衡通信特征的射频片上网络应用映射方法 |
US10142353B2 (en) * | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
CN109710403B (zh) * | 2018-12-20 | 2020-08-14 | 深圳大学 | 应用进程映射方法、电子装置及计算机可读存储介质 |
-
2020
- 2020-09-11 CN CN202010956523.9A patent/CN112202599B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597042A (zh) * | 2020-05-11 | 2020-08-28 | Oppo广东移动通信有限公司 | 业务线程运行方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112202599A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112202599B (zh) | 针对异构多核平台通信优化的拓扑感知映射方法及*** | |
CN107659433B (zh) | 一种云资源调度方法及设备 | |
Çatalyürek et al. | Integrated data placement and task assignment for scientific workflows in clouds | |
Walshaw et al. | A localized algorithm for optimizing unstructured mesh partitions | |
Gao et al. | An energy-aware ant colony algorithm for network-aware virtual machine placement in cloud computing | |
CN110519090B (zh) | 一种fpga云平台的加速卡分配方法、***及相关组件 | |
US20070143759A1 (en) | Scheduling and partitioning tasks via architecture-aware feedback information | |
WO2013015905A1 (en) | Method and apparatus for assignment of virtual resources within a cloud environment | |
WO2022001086A1 (zh) | 一种高效的gpu资源分配优化方法和*** | |
CN110688219A (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
Schlag et al. | Scalable edge partitioning | |
Tuncer et al. | Pacmap: Topology mapping of unstructured communication patterns onto non-contiguous allocations | |
Chai et al. | A parallel placement approach for service function chain using deep reinforcement learning | |
CN103825946A (zh) | 一种基于网络感知的虚拟机放置方法 | |
CN106844037B (zh) | 一种基于knl的测试方法及*** | |
CN108304261A (zh) | 一种基于6D-Torus网络的作业调度方法和装置 | |
CN110308965B (zh) | 云数据中心的基于规则的启发式虚拟机分配方法及*** | |
CN116302389A (zh) | 一种基于改进蚁群算法的任务调度方法 | |
CN115914237A (zh) | 一种边缘环境下的深度学习任务调度方法、设备及介质 | |
CN115408122A (zh) | 一种去中心化的分布式并行计算框架及计算方法 | |
CN104331336A (zh) | 匹配于高性能计算机结构的多层嵌套负载平衡方法 | |
CN112068955B (zh) | 一种异构多核平台处理器内的通信优化方法及电子设备 | |
CN114595052A (zh) | 一种基于图分割算法的分布式通信负载均衡方法 | |
Li et al. | An efficient multicore based parallel computing approach for TSP problems | |
CN112988367A (zh) | 资源的分配方法、装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |