CN113259482A - 多对多通信模式的优化方法、装置、存储介质及电子设备 - Google Patents
多对多通信模式的优化方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113259482A CN113259482A CN202110682761.XA CN202110682761A CN113259482A CN 113259482 A CN113259482 A CN 113259482A CN 202110682761 A CN202110682761 A CN 202110682761A CN 113259482 A CN113259482 A CN 113259482A
- Authority
- CN
- China
- Prior art keywords
- many
- communication
- sub
- overhead
- processes
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种多对多通信模式的优化方法、装置、存储介质及电子设备,涉及通信技术领域,所述方法包括:将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。本发明提供的技术方案,能够大幅提高多对多通信模式的通信效率。
Description
技术领域
本发明涉及通信技术领域,特别地涉及一种多对多通信模式的优化方法、装置、存储介质及电子设备。
背景技术
很多计算机应用程序所处理的问题规模快速扩大,导致计算量飞速增长。因此,需要开发这些应用程序的并行版本,通过利用高性能计算机的众多处理器核,来大幅加速计算。并行版本的研发通常需要实现程序在多个进程上的并行运行与协作计算,支持进程间数据通信的消息传递接口(Massage Passing Interface,MPI)是并行程序研发的基本工具和编程规范。
由于高性能计算机内通信网络的数据传输速率通常远慢于处理器的计算速度,通信开销便成为影响甚至决定应用程序并行效率和并行可扩展性的最重要因素。根据通信网络的特点,通信开销通常由建立通信链路的开销和传输数据的开销两部分组成,这使得通信效率(通常采用单位时间内通信的消息大小来量化)常受到消息大小的影响。此外,通信网络作为高性能计算机中的共享资源,会被同时通信的多组进程竞争使用,这使得通信效率也受到并行程序通信模式的影响。
多对多是一种常用的通信模式,即一组进程协同完成相互之间的通信,其中各个进程会向多个进程发送数据、各个进程会从多个进程接收数据。全部对全部通信模式,即每个进程会向其自身以外的所有进程发送数据、每个进程会从自身以外的所有进程接收数据,可被理解为一种特殊的多对多通信模式。多对多通信模式易导致通信网络使用上的严重竞争,因此通信效率较低,易成为并行程序的性能瓶颈。
发明内容
针对上述现有技术中的问题,本申请提出了一种多对多通信模式的优化方法、装置、存储介质及电子设备,能够大幅提高多对多通信模式的通信效率。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种多对多通信模式的优化方法,所述方法包括:
将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
在一些实施例中,所述多对多通信模式具有未分组的多个进程,所述将所述多对多通信模式分解为依次执行的两个以上子多对多通信,包括:
循环执行以下步骤,直至当前未分组的进程的数量小于等于第一预设阈值,其中,每次所述循环确定一个所述子多对多通信:
确定当前进程组大小;
基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组;
确定每个所述进程组内的满足预设条件的点对点通信关系;
基于所述当前进程组大小和当前未分组的进程的数量,确定下一次所述循环中未分组的进程的数量。
在一些实施例中,每个所述进程组内的点对点通信关系至少满足以下预设条件:
同一个所述进程组内的任意两个进程之间能够相互通信,属于不同的所述进程组的两个进程之间不通信。
在一些实施例中,所述方法还包括:计算获得所述多对多通信模式的理想通信开销、实际通信开销和网络竞用开销倍率;
如果当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率大于等于第二预设阈值、且所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值大于等于第三预设阈值时,所述确定当前进程组大小,包括:
基于当前未分组的进程的数量,确定多个候选进程组大小;其中,每个所述候选进程组大小对应一个候选子多对多通信;
预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销;
选取所述多个预测通信开销中最小的预测通信开销所对应的候选子多对多通信作为当前子多对多通信,并将当前子多对多通信对应的候选进程组大小作为当前进程组大小。
在一些实施例中,所述预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销,包括:
对于每个所述候选子多对多通信,执行以下步骤:
计算获得该候选子多对多通信的参考通信开销;
预测获得该候选子多对多通信的网络竞用开销倍率;
基于该候选子多对多通信的参考通信开销、该候选子多对多通信的网络竞用开销倍率、当前未分组的进程的数量和与该候选子多对多通信对应的候选进程组大小,采用数值拟合法或机器学习法预测该候选子多对多通信的通信开销,获得与该候选子多对多通信对应的预测通信开销。
在一些实施例中,所述计算获得该候选子多对多通信的参考通信开销,包括:
获取该候选子多对多通信的基准通信性能参数;
获取该候选子多对多通信中每个点对点通信的消息大小;
基于所述基准通信性能参数和所述每个点对点通信的消息大小,计算该候选子多对多通信中每个点对点通信的基准耗时;
基于该候选子多对多通信中每个点对点通信的基准耗时,计算该候选子多对多通信的参考通信开销。
在一些实施例中,每个候选子多对多通信的基准通信性能参数包括:
该候选子多对多通信内两个进程之间建立通信链路的平均时间,以及该候选子多对多通信传输数据的平均通信带宽。
在一些实施例中,所述预测获得该候选子多对多通信的网络竞用开销倍率,包括:
获取该候选子多对多通信的基本通信参数;
将该候选子多对多通信的基本通信参数作为预先建立的预测模型的输入,以使所述预测模型输出该候选子多对多通信的网络竞用开销倍率;其中,该候选子多对多通信的基本通信参数包括:该候选子多对多通信的进程数、点对点通信个数、各进程的最大通信次数以及各进程的最小通信次数。
在一些实施例中,所述方法还包括:计算获得所述多对多通信模式的理想通信开销、实际通信开销和网络竞用开销倍率;
如果当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率小于第二预设阈值,或者,所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值小于第三预设阈值时,所述确定当前进程组大小,包括:
将当前未分组的进程的数量确定为当前进程组大小。
在一些实施例中,当所述多对多通信模式中的发送数据的进程数不等于接收数据的进程数时,在所述基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组之后,还包括:
基于所述多对多通信模式中的发送数据的进程数与接收数据的进程数的比例,确定每个所述进程组内的发送数据的进程数与接收数据的进程数的比例。
第二方面,本发明实施例提供了一种多对多通信模式的优化装置,所述装置包括:
分解模块,用于将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
第三方面,本发明实施例提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例中任一项所述的多对多通信模式的优化方法。
第四方面,本发明实施例提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例中任一项所述的多对多通信模式的优化方法。
本发明实施例提供的一种多对多通信模式的优化方法、装置、存储介质及电子设备,通过将多对多通信模式分解为依次执行的两个以上子多对多通信,且每个子多对多通信具有预先确定的点对点通信关系,每个子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销,使得在进行数据传输时,能够有序地通过规划好的传输路径将数据从一个发送进程传输至目标接收进程,大大降低了各进程之间的竞争;同时,由于每个子多对多通信均具有最小的预测通信开销,即通过上述规划好的传输路径传输数据时,网络通信开销相较于原有的通信模式将大大降低。可见,本发明实施例提供的技术方案能够大幅提高多对多通信模式的通信效率。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本发明公开的范围。其中所包括的附图是:
图1为本发明实施例的方法流程图;
图2为本发明实施例中一个未经优化的多对多通信模式;
图3为本发明实施例中对图2所示的多对多通信模式进行优化后的通信模式示意图;
图4为本发明实施例的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本发明的实施方法,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例一
一个多对多通信模式由多个点对点通信(点对点通信指:一个发送进程将一定大小的消息通信给一个接收进程)组成。如果两个点对点通信的发送进程相同、接收进程相同、且消息大小相同,则两个点对点通信相同。给定两个多对多通信模式,对于其中任意一个通信模式的任意一个点对点通信,都能从另一个通信模式中找到完全相同的点对点通信,则两个多对多通信模式相同。一个并行程序常使用同一个多对多通信模式进行多次通信。
基于上述概念和原理,本发明实施例提供了一种多对多通信模式的优化方法,如图1所示,本实施例所述的方法包括:
步骤S101,将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
本实施例中,所述多对多通信模式具有未分组的多个进程,则所述将所述多对多通信模式分解为依次执行的两个以上子多对多通信,包括:
循环执行以下步骤,直至当前未分组的进程的数量小于等于第一预设阈值,其中,每次所述循环确定一个所述子多对多通信:
步骤一,确定当前进程组大小;
步骤二,基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组;
步骤三,确定每个所述进程组内的满足预设条件的点对点通信关系;
步骤四,基于所述当前进程组大小和当前未分组的进程的数量,确定下一次所述循环中未分组的进程的数量。
本实施例中,所述第一预设阈值可设置为1,当然也可根据实际需要设定为其它数值,此处不做限制。
即在本实施例中,循环执行以上四个步骤,直至当前未分组的进程的数量小于或等于1时,停止循环/迭代。由于上述循环/迭代每执行一次,会确定一个子多对多通信,因此当上述循环/迭代过程结束时,会自动得到多个子多对多通信,该多个子多对多通信在进行数据传输时会按顺序依次执行。
例如,一个多对多通信模式共有10000个进程,首先确定第一次循环的进程组大小例如40,得到10000/40=250个组;然后基于第一次循环的剩余未分组进程数250再确定进程组大小,例如得到第二次循环的进程组大小25,随后是250/25=10。若循环/迭代三次后,满足上述当前未分组的进程的数量小于等于第一预设阈值的条件,则在这种情况下,共确定了三个子多对多通信,即子多对多通信的最终数量就是上述循环/迭代的次数。
本实施例中,每个所述进程组内的点对点通信关系至少满足以下预设条件:同一个所述进程组内的任意两个进程之间能够相互通信,属于不同的所述进程组的两个进程之间不通信。
本实施例所述的方法还包括:计算获得所述多对多通信模式的理想通信开销、实际通信开销和网络竞用开销倍率,之后进一步判断该理想通信开销、实际通信开销和网络竞用开销倍率所满足的数值关系。当判断出当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率大于等于第二预设阈值、且所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值大于等于第三预设阈值时,上述确定当前进程组大小的步骤,具体包括:
基于当前未分组的进程的数量,确定多个候选进程组大小;其中,每个所述候选进程组大小对应一个候选子多对多通信;预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销;选取所述多个预测通信开销中最小的预测通信开销所对应的候选子多对多通信作为当前子多对多通信,并将当前子多对多通信对应的候选进程组大小作为当前进程组大小。
对于多个候选进程组大小的确定,理论上,候选进程组大小可以是大于1且不超过未分组进程数的任意整数,即采用穷举法的方式来确定多个候选进程组大小。或者,为了减少计算开销,本领域技术人员也可以按照预设规律,例如等差数列、幂级数等计算方式来确定多个候选进程组大小。
本实施例中,采用以下方式计算所述多对多通信模式的理想通信开销:根据多对多通信模式所有的点对点通信关系,基于该多对多通信模式传输数据的平均通信带宽,计算出不考虑建立通信链路的开销和不考虑通信网络竞用情况下多对多通信的理想开销。
本实施例中,所述多对多通信模式的实际通信开销指的是,在实际运行该多对多通信模式时,所得到考虑通信网络竞用情况下的通信开销。
本实施例中,所述多对多通信模式的网络竞用开销倍率指的是,该多对多通信模式的实际通信开销与该多对多通信模式的参考通信开销之间的比率。
其中,上述第二预设阈值和第三预设阈值均可根据实际情况设定或修改,此处不对其具体数值进行限定。
具体地,所述预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销,包括:
对于每个所述候选子多对多通信,执行以下步骤:计算获得该候选子多对多通信的参考通信开销;预测获得该候选子多对多通信的网络竞用开销倍率;基于该候选子多对多通信的参考通信开销、该候选子多对多通信的网络竞用开销倍率、当前未分组的进程的数量和与该候选子多对多通信对应的候选进程组大小,采用数值拟合法或机器学习法预测该候选子多对多通信的通信开销,获得与该候选子多对多通信对应的预测通信开销。
本实施例中,所述计算获得该候选子多对多通信的参考通信开销,包括:获取该候选子多对多通信的基准通信性能参数;获取该候选子多对多通信中每个点对点通信的消息大小;基于所述基准通信性能参数和所述每个点对点通信的消息大小,计算该候选子多对多通信中每个点对点通信的基准耗时;基于该候选子多对多通信中每个点对点通信的基准耗时,计算该候选子多对多通信的参考通信开销。
其中,上述每个候选子多对多通信的基准通信性能参数包括:该候选子多对多通信内两个进程之间建立通信链路的平均时间,以及该候选子多对多通信传输数据的平均通信带宽。
上述两个进程之间建立通信链路的平均时间可以通过实际运行多个小消息(例如1个字节大小的消息)的点对点通信来获得;上述传输数据的平均通信带宽可以通过实际运行多个的适当规模消息(例如1兆字节大小的消息)的点对点通信来获得。
本实施例中,所述预测获得该候选子多对多通信的网络竞用开销倍率,包括:获取该候选子多对多通信的基本通信参数;将该候选子多对多通信的基本通信参数作为预先建立的预测模型的输入,以使所述预测模型输出该候选子多对多通信的网络竞用开销倍率;其中,该候选子多对多通信的基本通信参数包括:该候选子多对多通信的进程数、点对点通信个数、各进程的最大通信次数以及各进程的最小通信次数。
需要说明的是,上述预测模型可以是一个已经训练好的神经网络模型,采用大量的已有的各多对多通信的基本通信参数和与每个多对多通信的基本通信参数对应的该多对多通信的网络竞用开销倍率,来对建立的神经网络模型进行训练,将训练好的神经网络模型作为后续的预测模型,预测新的多对多通信的网络竞用开销倍率。或者,还可以基于该候选子多对多通信的进程数、点对点通信个数、各进程的最大通信次数以及各进程的最小通信次数等参量,采用数值拟合法或机器学习法,完成该候选子多对多通信的网络竞用开销倍率的预测。
上述已有的各多对多通信的基本通信参数和网络竞用开销倍率可以采用以下方式获取:由于在一段时间内,目标计算机上可以运行多个并行应用程序,每个并行应用程序可能会有多个多对多通信模式,因此,可以将上述多个并行应用程序的多个多对多通信模式作为已有的多对多通信,进一步获取该已有的多对多通信的基本通信参数和网络竞用开销倍率。
本实施例中,当判断出当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率小于上述第二预设阈值,或者,所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值小于上述第三预设阈值时,上述确定当前进程组大小的步骤,具体包括:将当前未分组的进程的数量确定为当前进程组大小。即,当多对多通信模式的网络竞用开销倍率本身就小于理想值,或者,当多对多通信模式的实际通信开销接近于其理想通信开销时,不需要再对该多对多通信模式进行优化,而采用现有的多对多通信模式进行通信。
为了提高通信带宽利用率、降低通信开销,本实施例中,当所述多对多通信模式中的发送数据的进程数不等于接收数据的进程数时,在所述基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组之后,本实施例所述的方法还包括:基于所述多对多通信模式中的发送数据的进程数与接收数据的进程数的比例,确定每个所述进程组内的发送数据的进程数与接收数据的进程数的比例。
例如,当多对多通信模式是将500个发送进程的数据发送给20个接收进程,且由两个子多对多通信来完成,其中第一个子多对多通信的最终进程组大小是25,对应着一共有500/25=20个组。发送进程数到接收进程数的比值是25。进程组大小25对应的比例可如下计算:log(500)/log(25)=1.93,对25开1.93次方,得到5.3左右,然后取整得到5。因此,第一个子多对多通信的发送进程数为500、接收进程数为100,分为共20个组,每个组完成25个发送进程到5个接收进程的通信。如此,能够更进一步地降低通信开销,且能够提高通信带宽的利用率。
本发明旨在提高多次使用同一个多对多通信模式时的通信效率,其在第一次调用一个多对多通信时或在需要时自适应建立通信优化机制,并在每次调用该多对多通信时使用该通信优化机制来加快通信。该通信优化机制把该多对多通信模式自动分解为由多个子多对多通信组成的序列;每个子多对多通信对应着一个进程组大小,根据该进程组大小把多对多通信模式所涉及到的所有进程划分为若干个进程组,实现在各个进程组内的多个进程之间的相互通信、不同进程组之间无通信。
图2和图3给出了一个对多对多通信模式进行优化的例子。其中,图2示出了一个未经优化的多对多通信模式,该多对多通信模式包括9个进程;图3表示将图2中的多对多通信模式进行了优化,将其分解为了两个子多对多通信,各个子多对多通信对应的进程组大小均为3。
在图2和图3中,P0表示0号进程,P0-1表示0号进程要发送给1号进程的数据。图中箭头表示通信路径。又例如,在图3中,第二列进程中的进程P0,其方框中的P1-3,表示1号进程要发送给3号进程的数据,经过本方案优化后的传输路径为:P1先将数据发送给P0,P0再将该数据发送给P3。如此,能够大大降低各进程之间的网络传输竞争,从而大幅提高通信效率。
本实施例用于实现上述优化方法所编写的程序模块如下:
第一模块,基准通信性能参数管理模块。自适应优化系统通过该模块获取高性能计算机上的基准通信性能参数,包括在两个进程间建立通信链路的平均时间、传输数据的平均通信带宽(例如每秒钟传输的数据量)。如果用户设定了基准通信性能参数,该模块返回该参数。否则,如果用户指定了计算基准通信性能参数的程序,该模块调用该程序,并将所获得的基准通信性能参数返回;否则,该模块调用基准通信性能参数采样模块,并将所获得的基准通信性能参数返回。
第二模块,基准通信性能参数采样模块。该模块运行多个小消息(例如1个字节大小的消息)的点对点通信,得到两个进程间建立通信链路的平均时间;该模块通过运行多个的适当规模消息(例如1兆字节大小的消息)的点对点通信,得到传输数据的平均通信带宽。
第三模块,点对点通信基准耗时计算模块。针对一个点对点通信,该模块利用基准通信性能参数管理模块返回的在两个进程间建立通信链路的平均时间、传输数据的平均通信带宽,基于点对点通信的消息大小,计算出并返回该点对点通信的基准耗时。
第四模块,多对多通信理想开销计算模块。对于一个多对多通信模式,该模块首先根据其所有的点对点通信关系,利用基准通信性能参数管理模块返回的传输数据的平均通信带宽,计算出并返回不考虑建立通信链路的开销和不考虑通信网络竞用情况下多对多通信的理想开销。
第五模块,多对多通信参考开销计算模块。对于一个多对多通信模式,该模块首先根据其所有的点对点通信关系,基于点对点通信基准耗时计算模块,计算出并返回不考虑通信网络竞用情况下多对多通信的参考通信开销。
第六模块,通信网络竞用开销采样模块。对于一个多对多通信模式,该模块首先通过多对多通信参考开销计算模块得到多对多通信的参考通信开销;然后运行多对多通信,得到考虑通信网络竞用情况下的实际通信开销。该模块返回多对多通信的实际通信开销和参考通信开销,以及两者的比率,该比率即为该多对多通信的网络竞用开销倍率。
第七模块,进程组大小确定模块。该模块根据给定的多对多通信模式和未分组进程数,确定该多对多通信模式的当前子多对多通信对应的进程组大小。对于给定的多对多通信模式,该模块首先通过通信网络竞用开销采样模块确定其实际通信开销和网络竞用开销倍率,并通过多对多通信理想开销计算模块确定其理想通信开销。如果网络竞用开销倍率小于用户设定的相应阈值(第二预设阈值),或者实际通信开销与理想通信开销的比值小于用户设定的相应阈值(第三预设阈值),该模块把给定的未分组进程数确定为当前进程组大小并返回。否则,该模块根据给定的未分组进程数确定多个候选进程组大小,对于各个候选进程组大小,采用多对多通信开销预测模块预测出相应的通信开销(称为预测通信开销),将最小的预测通信开销对应的候选进程组大小确定为当前进程组大小并返回。
第八模块,多对多通信开销预测模块。该模块根据给定的多对多通信模式、已有的子多对多通信、未分组进程数和候选进程组大小,预测相应候选子多对多通信的通信开销。该模块首先确定对应于候选进程组大小时的候选子多对多通信,然后通过多对多通信参考开销计算模块计算出候选子多对多通信的参考通信开销,并通过网络竞用开销倍率预测模块计算出候选子多对多通信的网络竞用开销倍率。该模块最后基于参考通信开销、网络竞用开销倍率、未分组进程数、候选进程组大小,预测并返回候选进程组大小对应的通信开销。
需要说明的是,多对多通信开销预测模块算出的相应的通信开销,不是实际通信开销,而是基于理想通信开销、参考通信开销、网络竞用开销倍率预测出来的通信开销,在实际应用中,试图让这个预测出来的通信开销(即预测通信开销)与实测开销(即实际通信开销)相近。
上述已有的子多对多通信指的是,在多对多通信优化机制创建模块的迭代过程中,已经通过循环/迭代过程完全确定好的前面的子多对多通信。
第九模块,网络竞用开销倍率预测模块。该模块基于通过通信网络竞用开销采样模块得到的已有的各多对多通信模式的网络竞用开销倍率,预测一个新给定的多对多通信模式的网络竞用开销倍率。如果用户指定了预测网络竞用开销倍率的程序,该模块将使用该程序,并将所获得的网络竞用开销倍率返回;否则,将基于已有的各多对多通信模式的网络竞用开销倍率、进程数、点对点通信个数、各进程最大/最小通信次数等参量,利用数值拟合或机器学习方法,完成对新给定的多对多通信模式的网络竞用开销倍率的预测,并返回预测结果。
需要说明的是,上述预测过程也可采用预测模型来实现,该预测模型可以是一个已经训练好的神经网络模型,采用大量的已有的各多对多通信的基本通信参数和与每个多对多通信的基本通信参数对应的该多对多通信的网络竞用开销倍率,来对建立的神经网络模型进行训练,将训练好的神经网络模型作为后续的预测模型,预测新的多对多通信的网络竞用开销倍率。
第十模块,子多对多通信创建模块。该模块根据给定的未分组进程数、进程组大小,把多对多通信模式所涉及到的所有进程划分为若干个进程组,为给定的多对多通信模式建立在各个进程组内的多个进程之间的相互通信、在不同进程组之间不通信的子多对多通信。当给定的多对多通信模式中发送数据的进程数不同于接收数据的进程数时,该模块基于多对多通信模式中的发送数据的进程数与接收数据的进程数的比例,确定每个进程组内的发送数据的进程数与接收数据的进程数的比例。
例如,当多对多通信模式是将500个发送进程的数据发送给20个接收进程,且由两个子多对多通信来完成,其中第一个子多对多通信的最终进程组大小是25,对应着一共有500/25=20个组。发送进程数到接收进程数的比值是25。进程组大小25对应的比例可如下计算:log(500)/log(25)=1.93,对25开1.93次方,得到5.3左右,然后取整得到5。因此,第一个子多对多通信的发送进程数为500、接收进程数为100,分为共20个组,每个组完成25个发送进程到5个接收进程的通信。如此,能够更进一步地降低通信开销,且能够提高通信带宽的利用率。
第十一模块,多对多通信优化机制创建模块。该模块为给定的多对多通信模式自适应建立通信优化机制,即建立能完成给定的多对多通信的子多对多通信的序列。该模块首先把给定的多对多通信涉及到的所有进程的数量设置为未分组进程数,然后进入迭代过程,在每个迭代中通过进程组大小确定模块来确定当前的进程组大小、通过子多对多通信创建模块生成并记录相应的子多对多通信、以当前进程组大小为比例减小未分组进程数;当未分组进程数小于或等于1时,迭代结束,该模块完成了对所有子多对多通信的序列的创建。
第十二模块,多对多通信自适应优化模块。用户通过调用该模块,完成给定多对多通信模式的通信。当尚未建立给定多对多通信模式的通信优化机制、或需要时,该模块通过多对多通信优化机制创建模块,建立并记录给定多对多通信模式的通信优化机制。然后,该模块使用已建立好的通信优化机制,依次进行各个子多对多通信,完成给定多对多通信模式的通信。
在实际的程序运行中,上述十二个模块的调用关系为:
1、多对多通信自适应优化模块(第十二模块,是最大入口)调用多对多通信优化机制创建模块(第十一模块);
2、多对多通信优化机制创建模块(第十一模块)调用进程组大小确定模块(第七模块)和子多对多通信创建模块(第十模块);
3、进程组大小确定模块(第七模块)调用通信网络竞用开销采样模块(第六模块)、多对多通信理想开销计算模块(第四模块)、多对多通信开销预测模块(第八模块);
4、多对多通信开销预测模块(第八模块)调用多对多通信参考开销计算模块(第五模块)和网络竞用开销倍率预测模块(第九模块);
5、通信网络竞用开销采样模块(第六模块)调用多通信参考开销计算模块(第五模块);
6、多对多通信参考开销计算模块(第五模块)调用点对点通信基准耗时计算模块(第三模块);
7、多对多通信理想开销计算模块(第四模块)调用基准通信性能参数管理模块(第一模块);
8、点对点通信基准耗时计算模块(第三模块)调用基准通信性能参数管理模块(第一模块);
9、基准通信性能参数管理模块(第一模块)调用基准通信性能参数采样模块(第二模块)。
本发明实施例提供的一种多对多通信模式的优化方法,通过将多对多通信模式分解为依次执行的两个以上子多对多通信,且每个子多对多通信具有预先确定的点对点通信关系,每个子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销,使得在进行数据传输时,能够有序地通过规划好的传输路径将数据从一个发送进程传输至目标接收进程,大大降低了各进程之间的竞争;同时,由于每个子多对多通信均具有最小的预测通信开销,即通过上述规划好的传输路径传输数据时,网络通信开销相较于原有的通信模式将大大降低。可见,本发明实施例提供的技术方案能够大幅提高多对多通信模式的通信效率。
实施例二
与上述方法实施例相对应地,本发明还提供一种多对多通信模式的优化装置,如图4所示,所述装置包括:
分解模块201,用于将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
上述装置的工作原理、工作流程等涉及具体实施方式的内容可参见本发明所提供的多对多通信模式的优化方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
实施例三
根据本发明的实施例,还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例任一项所述的多对多通信模式的优化方法。
该方法的具体内容可参见本发明所提供的多对多通信模式的优化方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
实施例四
根据本发明的实施例,还提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例任一项所述的多对多通信模式的优化方法。
该方法的具体内容可参见本发明所提供的多对多通信模式的优化方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
本发明实施例提供的一种多对多通信模式的优化方法、装置、存储介质及电子设备,通过将多对多通信模式分解为依次执行的两个以上子多对多通信,且每个子多对多通信具有预先确定的点对点通信关系,每个子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销,使得在进行数据传输时,能够有序地通过规划好的传输路径将数据从一个发送进程传输至目标接收进程,大大降低了各进程之间的竞争;同时,由于每个子多对多通信均具有最小的预测通信开销,即通过上述规划好的传输路径传输数据时,网络通信开销相较于原有的通信模式将大大降低。可见,本发明实施例提供的技术方案能够大幅提高多对多通信模式的通信效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (13)
1.一种多对多通信模式的优化方法,其特征在于,所述方法包括:
将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
2.根据权利要求1所述的多对多通信模式的优化方法,其特征在于,所述多对多通信模式具有未分组的多个进程,所述将所述多对多通信模式分解为依次执行的两个以上子多对多通信,包括:
循环执行以下步骤,直至当前未分组的进程的数量小于等于第一预设阈值,其中,每次所述循环确定一个所述子多对多通信:
确定当前进程组大小;
基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组;
确定每个所述进程组内的满足预设条件的点对点通信关系;
基于所述当前进程组大小和当前未分组的进程的数量,确定下一次所述循环中未分组的进程的数量。
3.根据权利要求2所述的多对多通信模式的优化方法,其特征在于,每个所述进程组内的点对点通信关系至少满足以下预设条件:
同一个所述进程组内的任意两个进程之间能够相互通信,属于不同的所述进程组的两个进程之间不通信。
4.根据权利要求2所述的多对多通信模式的优化方法,其特征在于,所述方法还包括:计算获得所述多对多通信模式的理想通信开销、实际通信开销和网络竞用开销倍率;
如果当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率大于等于第二预设阈值、且所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值大于等于第三预设阈值时,所述确定当前进程组大小,包括:
基于当前未分组的进程的数量,确定多个候选进程组大小;其中,每个所述候选进程组大小对应一个候选子多对多通信;
预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销;
选取所述多个预测通信开销中最小的预测通信开销所对应的候选子多对多通信作为当前子多对多通信,并将当前子多对多通信对应的候选进程组大小作为当前进程组大小。
5.根据权利要求4所述的多对多通信模式的优化方法,其特征在于,所述预测每个所述候选子多对多通信对应的通信开销,获得多个预测通信开销,包括:
对于每个所述候选子多对多通信,执行以下步骤:
计算获得该候选子多对多通信的参考通信开销;
预测获得该候选子多对多通信的网络竞用开销倍率;
基于该候选子多对多通信的参考通信开销、该候选子多对多通信的网络竞用开销倍率、当前未分组的进程的数量和与该候选子多对多通信对应的候选进程组大小,采用数值拟合法或机器学习法预测该候选子多对多通信的通信开销,获得与该候选子多对多通信对应的预测通信开销。
6.根据权利要求5所述的多对多通信模式的优化方法,其特征在于,所述计算获得该候选子多对多通信的参考通信开销,包括:
获取该候选子多对多通信的基准通信性能参数;
获取该候选子多对多通信中每个点对点通信的消息大小;
基于所述基准通信性能参数和所述每个点对点通信的消息大小,计算该候选子多对多通信中每个点对点通信的基准耗时;
基于该候选子多对多通信中每个点对点通信的基准耗时,计算该候选子多对多通信的参考通信开销。
7.根据权利要求6所述的多对多通信模式的优化方法,其特征在于,每个候选子多对多通信的基准通信性能参数包括:
该候选子多对多通信内两个进程之间建立通信链路的平均时间,以及该候选子多对多通信传输数据的平均通信带宽。
8.根据权利要求5所述的多对多通信模式的优化方法,其特征在于,所述预测获得该候选子多对多通信的网络竞用开销倍率,包括:
获取该候选子多对多通信的基本通信参数;
将该候选子多对多通信的基本通信参数作为预先建立的预测模型的输入,以使所述预测模型输出该候选子多对多通信的网络竞用开销倍率;其中,该候选子多对多通信的基本通信参数包括:该候选子多对多通信的进程数、点对点通信个数、各进程的最大通信次数以及各进程的最小通信次数。
9.根据权利要求2所述的多对多通信模式的优化方法,其特征在于,所述方法还包括:计算获得所述多对多通信模式的理想通信开销、实际通信开销和网络竞用开销倍率;
如果当前未分组的进程的数量对应的所述多对多通信模式的网络竞用开销倍率小于第二预设阈值,或者,所述多对多通信模式的实际通信开销与所述多对多通信模式的理想通信开销的比值小于第三预设阈值时,所述确定当前进程组大小,包括:
将当前未分组的进程的数量确定为当前进程组大小。
10.根据权利要求2所述的多对多通信模式的优化方法,其特征在于,当所述多对多通信模式中的发送数据的进程数不等于接收数据的进程数时,在所述基于所述当前进程组大小,将所述多对多通信模式中的所有进程划分为多个进程组之后,还包括:
基于所述多对多通信模式中的发送数据的进程数与接收数据的进程数的比例,确定每个所述进程组内的发送数据的进程数与接收数据的进程数的比例。
11.一种多对多通信模式的优化装置,其特征在于,所述装置包括:
分解模块,用于将所述多对多通信模式分解为依次执行的两个以上子多对多通信;其中,每个所述子多对多通信具有预先确定的点对点通信关系,且每个所述子多对多通信在执行该预先确定的点对点通信时,具有最小的预测通信开销。
12.一种存储介质,所述存储介质上存储有程序代码,其特征在于,所述程序代码被处理器执行时,实现如权利要求1至10中任一项所述的多对多通信模式的优化方法。
13.一种电子设备,其特征在于,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如权利要求1至10中任一项所述的多对多通信模式的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682761.XA CN113259482B (zh) | 2021-06-21 | 2021-06-21 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682761.XA CN113259482B (zh) | 2021-06-21 | 2021-06-21 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259482A true CN113259482A (zh) | 2021-08-13 |
CN113259482B CN113259482B (zh) | 2021-12-07 |
Family
ID=77188828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110682761.XA Active CN113259482B (zh) | 2021-06-21 | 2021-06-21 | 多对多通信模式的优化方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259482B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048045A (zh) * | 2021-11-03 | 2022-02-15 | 北京航空航天大学 | 一种面向并行应用核间通信竞争的通信性能预测方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236511A (zh) * | 2007-01-31 | 2008-08-06 | 国际商业机器公司 | 用于优化全局归约处理的方法和系统 |
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
US20100275213A1 (en) * | 2009-04-28 | 2010-10-28 | Ryuji Sakai | Information processing apparatus, parallel process optimization method |
US20140101663A1 (en) * | 2012-10-04 | 2014-04-10 | Lawrence J. Dickson | Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude |
CN104461466A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
US20150149145A1 (en) * | 2013-11-28 | 2015-05-28 | International Business Machines Corporation | Simulation apparatus, simulation method, and program |
CN111597054A (zh) * | 2020-07-24 | 2020-08-28 | 北京卡普拉科技有限公司 | 一种信息处理方法、系统、电子设备及存储介质 |
CN112202599A (zh) * | 2020-09-11 | 2021-01-08 | 北京科技大学 | 针对异构多核平台通信优化的拓扑感知映射方法及系统 |
-
2021
- 2021-06-21 CN CN202110682761.XA patent/CN113259482B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236511A (zh) * | 2007-01-31 | 2008-08-06 | 国际商业机器公司 | 用于优化全局归约处理的方法和系统 |
US20100275213A1 (en) * | 2009-04-28 | 2010-10-28 | Ryuji Sakai | Information processing apparatus, parallel process optimization method |
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
US20140101663A1 (en) * | 2012-10-04 | 2014-04-10 | Lawrence J. Dickson | Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude |
CN104461466A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
US20150149145A1 (en) * | 2013-11-28 | 2015-05-28 | International Business Machines Corporation | Simulation apparatus, simulation method, and program |
CN111597054A (zh) * | 2020-07-24 | 2020-08-28 | 北京卡普拉科技有限公司 | 一种信息处理方法、系统、电子设备及存储介质 |
CN112202599A (zh) * | 2020-09-11 | 2021-01-08 | 北京科技大学 | 针对异构多核平台通信优化的拓扑感知映射方法及系统 |
Non-Patent Citations (1)
Title |
---|
胡章杰: ""并行算法在大规模线性方程组求解中的应用与研究"", 《中国优秀硕士学位论文全文数据库(基础科学辑)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048045A (zh) * | 2021-11-03 | 2022-02-15 | 北京航空航天大学 | 一种面向并行应用核间通信竞争的通信性能预测方法 |
CN114048045B (zh) * | 2021-11-03 | 2024-06-21 | 北京航空航天大学 | 一种面向并行应用核间通信竞争的通信性能预测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113259482B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Multiobjective computation offloading for workflow management in cloudlet‐based mobile cloud using NSGA‐II | |
CN111597043A (zh) | 一种全场景边缘计算方法、装置及系统 | |
CN113259482B (zh) | 多对多通信模式的优化方法、装置、存储介质及电子设备 | |
CN114281521A (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN112672382A (zh) | 混合协作计算卸载方法、装置、电子设备及存储介质 | |
Detti et al. | μBench: An open-source factory of benchmark microservice applications | |
Limmer et al. | Comparison of common parallel architectures for the execution of the island model and the global parallelization of evolutionary algorithms | |
Baldo et al. | Performance models for master/slave parallel programs | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
CN116501828B (zh) | 基于非结构化数据集的服务器无感知向量查询方法和系统 | |
CN101356503A (zh) | 数据处理系统和数据处理方法 | |
Vigliotti et al. | A green network-aware VMs placement mechanism | |
Pellegrini et al. | Optimizing mpi runtime parameter settings by using machine learning | |
Cornebize et al. | Fast and faithful performance prediction of MPI applications: the HPL case study | |
CN114254735A (zh) | 一种基于分布式的僵尸网络模型构建方法和装置 | |
CN111291893A (zh) | 调度方法、调度系统、存储介质和电子装置 | |
CN114629959B (zh) | 一种云环境中上下文感知的IoT服务调度策略方法 | |
CN117724851B (zh) | 数据处理方法、装置、存储介质及设备 | |
CN118101493B (zh) | 智算中心网络架构的仿真寻优方法、装置、设备及介质 | |
EP4220501A1 (en) | Runtime predictors for computation reduction in dependent computations | |
CN118095382A (zh) | 深度学习模型的并行计算调度方法、装置、设备及介质 | |
Xiang et al. | Decomposition of power system inspection services for 5G cloud-edge-end collaboration | |
Kanwal et al. | Research Article Head Node Selection Algorithm in Cloud Computing Data Center | |
Bouneb | Distributed algorithm for parallel computation of the n queens solutions | |
CN116415667A (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 |