CN112231113B - 一种消息传递方法和装置 - Google Patents
一种消息传递方法和装置 Download PDFInfo
- Publication number
- CN112231113B CN112231113B CN202010988129.3A CN202010988129A CN112231113B CN 112231113 B CN112231113 B CN 112231113B CN 202010988129 A CN202010988129 A CN 202010988129A CN 112231113 B CN112231113 B CN 112231113B
- Authority
- CN
- China
- Prior art keywords
- message
- action
- function
- compression algorithm
- state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005540 biological transmission Effects 0.000 title abstract description 12
- 230000006870 function Effects 0.000 claims abstract description 198
- 230000009471 action Effects 0.000 claims abstract description 161
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 122
- 238000007906 compression Methods 0.000 claims abstract description 118
- 230000006835 compression Effects 0.000 claims abstract description 116
- 238000012546 transfer Methods 0.000 claims abstract description 78
- 230000008859 change Effects 0.000 claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 23
- 230000002787 reinforcement Effects 0.000 claims abstract description 22
- 238000013144 data compression Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 24
- 241000209094 Oryza Species 0.000 claims description 10
- 235000007164 Oryza sativa Nutrition 0.000 claims description 10
- 235000009566 rice Nutrition 0.000 claims description 10
- 230000006837 decompression Effects 0.000 claims description 7
- 238000005457 optimization Methods 0.000 abstract description 28
- 238000004891 communication Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000002716 delivery method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Abstract
本发明公开了一种消息传递方法和装置,方法包括:从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息。本发明能够使MPI数据压缩优化根据具体工作环境针对性地变化以降低传输时间并提高运行效率。
Description
技术领域
本发明涉及机器学习领域,更具体地,特别是指一种消息传递方法和装置。
背景技术
MPI(消息传递接口)自20世纪90年代以来一直是HPC(高性能计算)领域并行应用程序开发的底层基础标准。消息传递模型假设底层的消息传递单元是一组处理器,每个处理器都有自己的本地内存,并且通过互联网络实现与其他处理器的消息传递。MPI标准一直是最流行的并行编程消息传递规范,这种接口实现广泛应用于分布式内存系统和高性能集群上软件的运行过程。在基于MPI编写的并行程序中,MPI通信性能通常对程序整体并行效率和跨节点扩展性起着关键作用,因此优化MPI通信具有重要意义。近年来,随着高性能计算在不同领域应用越来越广泛,求解问题计算量呈指数增加,使用MPI的并行应用程序运行时需要节点数也越来越大,此时MPI通信逐渐成为软件运行时主要瓶颈,亟待针对不同并行应用特点对MPI消息传递过程进行优化。
针对MPI通信优化,目前主要工作包括通信算法优化、网络计算优化、应用消息压缩技术优化等。在MPI通信算法优化中,主要针对MPI规约、集合等常见通信模式开发新的优化算法,或者结合特定应用对MPI通信模式进行特殊优化。这种优化方法大部分仅能针对特定并行算法有效,工作量大并且使用范围较窄,优化后的结果无法直接应用到其他并行软件中。网络计算优化指使用网络设备,辅助分布式并行计算体系结构中MPI应用的运行,建立的一种通信加速技术。网络计算优化使用包括网卡、交换机等设备,在数据传输过程中,同时进行数据的在线计算,以达到降低通信延迟、提升整体计算效率等。但是这种方法需要对硬件设备进行升级,存在费用较高等缺点。通信压缩技术是通过将消息压缩技术引入通信消息的传输过程,通过软件优化方法实现在对大部分应用得到更好性能。对于以上三种方法,通信压缩技术通过软件手段,具有成本低、适用广等优点,能够用于大部分MPI应用的优化过程。但是由于消息压缩会引入额外开销,所以并不能够保证所有应用获得性能,在某些情况下反而会造成性能降低。
现有技术的采用数据压缩优化的MPI接口实现软件中,大部分软件都缺少灵活调整是否采用数据压缩策略,或者自动选取最优压缩算法的功能。并且在大部分应用中,由于会在多个函数中存在不同消息的传递过程,因此压缩算法选取必然会受用户的使用经验限制,导致使用这些MPI软件过程中无法使MPI程序获得最优性能。此外,MPI应用在不同网络硬件或网络拓扑上运行时,最优消息压缩算法也必然会有所不同。因此,亟需针对各种并行应用和不同的硬件环境,提出一种具有自适应选择数据压缩算法的MPI接口实现。
针对现有技术中MPI数据压缩优化的传输时间长、运行效率低、不适应具体工作环境的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种消息传递方法和装置,能够使MPI数据压缩优化根据具体工作环境针对性地变化以降低传输时间并提高运行效率。
基于上述目的,本发明实施例的第一方面提供了一种消息传递方法,包括执行以下步骤:
从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;
针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;
根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息。
在一些实施方式中,针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数包括:
使用消息传递接口函数和消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;
使用消息传递接口函数和消息压缩算法的所有可能的变化动作集作为动作。
在一些实施方式中,针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值包括:
初始化动作价值函数并根据压缩算法向量设置动作价值函数的当前状态;
从变化动作集选择一个动作对当前状态执行,以获得奖励和下一状态,根据奖励和下一状态更新动作价值函数并使用下一状态覆盖当前状态;
重复执行上一步骤直到动作价值函数收敛和/或迭代次数超过阈值。
在一些实施方式中,根据奖励和下一状态更新动作价值函数包括:
使用下式进行更新:
Q(ps,α)=(1-β)·Q(ps,α)+β[R+γmaxαQ(p′s,α)]
其中ps为当前状态,α为动作,Q(ps,a)为动作价值函数,β为学习率,R为奖励,γ为折扣因子,s′为下一状态,ps′为下一状态所采用动作的最大收敛函数值。
在一些实施方式中,集群环境包括:集群的硬件设备、消息类型、消息的数据压缩率、执行压缩的时间、执行解压的时间。
在一些实施方式中,消息压缩算法包括以下之一:RLE、HUFF、RICE、LZO、和不使用压缩算法;其中消息压缩算法为RLE、HUFF、RICE、或LZO时状态还包括消息压缩算法的压缩参数。
在一些实施方式中,消息传递接口函数附接在传递消息的进程接口上;消息传递接口函数在集群环境中的单步运行速度包括传递消息的进程的实际运行速度。
本发明实施例的第二方面提供了一种消息传递装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;
针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;
根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息。
在一些实施方式中,针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数包括:
使用消息传递接口函数和消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;
使用消息传递接口函数和消息压缩算法的所有可能的变化动作集作为动作。
在一些实施方式中,针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值包括:
初始化动作价值函数并根据压缩算法向量设置动作价值函数的当前状态;
从变化动作集选择一个动作对当前状态执行,以获得奖励和下一状态,根据奖励和下一状态更新动作价值函数并使用下一状态覆盖当前状态;
重复执行上一步骤直到动作价值函数收敛和/或迭代次数超过阈值。
本发明具有以下有益技术效果:本发明实施例提供的消息传递方法和装置,通过从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息的技术方案,能够使MPI数据压缩优化根据具体工作环境针对性地变化以降低传输时间并提高运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的消息传递方法的流程示意图;
图2为本发明提供的消息传递方法中Q-Learning算法的动作价值函数迭代循环示意图;
图3为本发明提供的消息传递方法中Q-Learning算法的动作价值函数迭代流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种使MPI数据压缩优化根据具体工作环境针对性地变化的消息传递方法的一个实施例。图1示出的是本发明提供的消息传递方法的流程示意图。
所述的消息传递方法,如图1所示,包括执行以下步骤:
步骤S101:从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
步骤S103:针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;
步骤S105:针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;
步骤S107:根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息。
本发明通过强化学习的试错和延迟奖励的两个特征,将MPI计算参数的优化和消息压缩传递算法的优化问题融入强化学习模型的训练过程,根据高性能软件并行消息通信特征和使用的硬件平台,对通信消息压缩算法进行选择,缩短MPI消息传递时间,提高并行计算效率提高,能够适用于不同并行算法的应用软件,通过替换软件链接的MPI函数库即可使用,具有适用性广和应用简单等优点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数包括:
使用消息传递接口函数和消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;
使用消息传递接口函数和消息压缩算法的所有可能的变化动作集作为动作。
在一些实施方式中,针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值包括:
初始化动作价值函数并根据压缩算法向量设置动作价值函数的当前状态;
从变化动作集选择一个动作对当前状态执行,以获得奖励和下一状态,根据奖励和下一状态更新动作价值函数并使用下一状态覆盖当前状态;
重复执行上一步骤直到动作价值函数收敛和/或迭代次数超过阈值。
在一些实施方式中,根据奖励和下一状态更新动作价值函数包括:
使用下式进行更新:
Q(ps,α)=(1-β)·Q(ps,α)+β[R+γmaxαQ(p′s,α)],
其中ps为当前状态,α为动作,Q(ps,a)为动作价值函数,β为学习率,R为奖励,γ为折扣因子,s′为下一状态,ps′为下一状态所采用动作的最大收敛函数值。
在一些实施方式中,集群环境包括:集群的硬件设备、消息类型、消息的数据压缩率、执行压缩的时间、执行解压的时间。
在一些实施方式中,消息压缩算法包括以下之一:RLE、HUFF、RICE、LZO、和不使用压缩算法;其中消息压缩算法为RLE、HUFF、RICE、或LZO时状态还包括消息压缩算法的压缩参数。
在一些实施方式中,消息传递接口函数附接在传递消息的进程接口上;消息传递接口函数在集群环境中的单步运行速度包括传递消息的进程的实际运行速度。
下面根据具体实施例进一步阐述本发明的具体实施方式。
MPI基本通信兼容当前MPI-1和MPI-2标准基本消息传递功能,如端到端通信、MPI数据类型和集合通信等功能,可以直接使用目前开源的OpenMPI或MPICH2等软件。在此基础上,搭配消息压缩算法优化模块实现对不同并行应用软件和不同硬件平台的MPI应用程序优化。
消息压缩包含了多种消息压缩算法和对应的压缩解压模块,如RLE、HUFF、RICE和LZO等。使用消息压缩模块后,需要在MPI模块在消息发送和接收前,使用对应算法的压缩和解压模块。通过消息压缩过程,目标是实现降低通信消息块的大小,从而降低消息传递过程所用时间。但是当传递消息时间极短时,引入消息压缩和解压过程反而会引入更多的运行耗时,因此需要引入对应的判别机制,对是否需要消息压缩过程和最优的消息压缩算法进行判断。
然后通过使用强化学习方法,判断程序运行过程中是否需要使用消息压缩机制。当判断需要使用消息压缩时,由于不同的消息压缩算法对不同类型数据压缩率和执行压缩/解压时间不同,需要继续通过训练识别并选取每个MPI通讯函数运行对应最优的消息压缩算法。在训练过程中,将每个消息传递函数使用消息压缩算法类型组成的向量作为状态(包括不使用消息压缩算法);将状态改变作为动作以构建动作价值函数;将并行应用软件单步运行速度作为奖励;根据所述奖励采用强化学习算法对所述动作价值函数进行迭代计算,最终得到收敛后的最优结果,从而根据所述状态、动作和收敛函数值实现MPI消息传递时间优化。强化学习算法使用Q-Learning算法,状态集为所有MPI通信函数可能的消息压缩算法组成集合,并使用数字代表对应的压缩算法ps作为状态,如:
ps=[p1,p2,…,pN-1,pN],
其中下标代表MPI调用函数编号,pi为对应使用的消息压缩算法,使用数字表示采用对应压缩算法,如下表所示:
压缩算法 | 无压缩 | RLE | HUFF | RICE | LZO |
对应数字 | 0 | 1 | 2 | 3 | 4 |
。
在使用强化学习方法进行训练时,所有MPI函数的对应的压缩算法变化构成动作集。根据所述奖赏采用Q-Learning算法对所述动作价值函数进行迭代计算,主要步骤包括:
1)初始化所述动作价格的函数值,设置所述动作价值函数的当前状态;根据所述当前状态和策略,从所述动作集中选择一个动作;
2)执行所述动作得到奖励和下一个状态;
3)根据所述奖励和所述下一个状态,对动作价值函数进行更新;
4)随后将下一个所述状态作为当前状态,重复迭代直到达到所述状态集的终止状态。
在使用所述奖励和所述下一个状态,对动作价值函数进行更新时,更新后的动作价值函数的计算公式为:
Q(ps,α)=(1-β)·Q(ps,α)+β[R+γmaxαQ(p′s,α)],
ps=ps′,
其中ps为当前状态,α为动作,Q(ps,α)为动作价值函数,表示当前状态ps执行动作α所获得的收敛函数值,β为学习率,R为奖励,γ为折扣因子,ps′为下一状态所采用动作的最大收敛函数值。ps=ps′表示将下一状态的值赋予当前状态以继续迭代。在图2中示出了在Q-Learning算法中使用动作价值函数的迭代过程,其中环境包含了并行应用计算时实际运行速度,对于每次训练后的结果返回单步计算运行速度作为奖励,从而使模型根据不同处理数据和硬件设备的运行进行训练,最终得到适用于特定并行应用和网络拓扑的MPI消息压缩算法优化结果。
在使用强化学习优化训练过程中,每个MPI函数对应的消息压缩算法组成状态向量,训练过程对所有MPI函数调用都进行优化。当训练次数超过用户指定阈值后不再进行优化,在使用强化学习训练过程中的迭代过程详见图3。通过上述方式,可以针对MPI应用运行特点和使用平台的网络特征获得最优的MPI应用运行结果,进而提高软件并行计算运行速度。
从上述实施例可以看出,本发明实施例提供的消息传递方法,通过从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息的技术方案,能够使MPI数据压缩优化根据具体工作环境针对性地变化以降低传输时间并提高运行效率。
需要特别指出的是,上述消息传递方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于消息传递方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种使MPI数据压缩优化根据具体工作环境针对性地变化的消息传递装置的一个实施例。
消息传递装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;
针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;
根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息。
在一些实施方式中,针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数包括:
使用消息传递接口函数和消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;
使用消息传递接口函数和消息压缩算法的所有可能的变化动作集作为动作。
在一些实施方式中,针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值包括:
初始化动作价值函数并根据压缩算法向量设置动作价值函数的当前状态;
从变化动作集选择一个动作对当前状态执行,以获得奖励和下一状态,根据奖励和下一状态更新动作价值函数并使用下一状态覆盖当前状态;
重复执行上一步骤直到动作价值函数收敛和/或迭代次数超过阈值。
从上述实施例可以看出,本发明实施例提供的消息传递装置,通过从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;针对每个消息传递接口函数,以其使用的消息压缩算法的向量作为状态、以状态的变化作为动作构建动作价值函数;针对每个动作价值函数,使用强化学习算法以消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到动作价值函数收敛和/或迭代次数超过阈值;根据对应的状态、动作、和收敛的动作价值函数确定最优的消息传递接口函数和相应的消息压缩算法以压缩并传递消息的技术方案,能够使MPI数据压缩优化根据具体工作环境针对性地变化以降低传输时间并提高运行效率。
需要特别指出的是,上述消息传递装置的实施例采用了所述消息传递方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述消息传递方法的其他实施例中。当然,由于所述消息传递方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述消息传递装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (4)
1.一种消息传递方法,其特征在于,包括执行以下步骤:
从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
针对每个所述消息传递接口函数,以其使用的所述消息压缩算法的向量作为状态、以所述状态的变化作为动作构建动作价值函数,其进一步包括:
使用所述消息传递接口函数和所述消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;以及
使用所述消息传递接口函数和所述消息压缩算法的所有可能的变化动作集作为动作;
针对每个所述动作价值函数,使用强化学习算法以所述消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到所述动作价值函数收敛和/或迭代次数超过阈值,其进一步包括:
初始化所述动作价值函数并根据所述压缩算法向量设置所述动作价值函数的当前状态;
从所述变化动作集选择一个动作对所述当前状态执行,以获得奖励和下一状态,根据所述奖励和所述下一状态更新所述动作价值函数并使用所述下一状态覆盖所述当前状态;
重复执行上一步骤直到所述动作价值函数收敛和/或迭代次数超过阈值;
其中,根据所述奖励和所述下一状态更新所述动作价值函数包括:
使用下式进行更新:
Q(ps,α)=(1-β)·Q(ps,α)+β[R+γmaxαQ(ps′,α)]
其中ps为当前状态,α为动作,Q(ps,a)为动作价值函数,β为学习率,R为奖励,γ为折扣因子,ps′为下一状态,maxαQ(ps′,α)为下一状态所采用动作的最大收敛函数值;
根据对应的所述状态、动作、和收敛的所述动作价值函数确定最优的所述消息传递接口函数和相应的所述消息压缩算法以压缩并传递消息;
其中,所述消息压缩算法为以下之一:RLE、HUFF、RICE、LZO,或不使用压缩算法;其中所述消息压缩算法为RLE、HUFF、RICE或LZO时所述状态还包括所述消息压缩算法的压缩参数。
2.根据权利要求1所述的方法,其特征在于,所述集群环境包括:集群的硬件设备、消息类型、消息的数据压缩率、执行压缩的时间、执行解压的时间。
3.根据权利要求1所述的方法,其特征在于,所述消息传递接口函数附接在传递消息的进程接口上;所述消息传递接口函数在集群环境中的单步运行速度包括所述传递消息的进程的实际运行速度。
4.一种消息传递装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时依次执行以下步骤:
从基本消息传递模块中提取出消息传递接口函数及其使用的消息压缩算法;
针对每个所述消息传递接口函数,以其使用的所述消息压缩算法的向量作为状态、以所述状态的变化作为动作构建动作价值函数,其进一步包括:
使用所述消息传递接口函数和所述消息压缩算法的所有可能的数值对的集合构成压缩算法向量作为状态;以及
使用所述消息传递接口函数和所述消息压缩算法的所有可能的变化动作集作为动作;
针对每个所述动作价值函数,使用强化学习算法以所述消息传递接口函数在集群环境中的单步运行速度作为奖励进行迭代训练,直到所述动作价值函数收敛和/或迭代次数超过阈值,其进一步包括:
初始化所述动作价值函数并根据所述压缩算法向量设置所述动作价值函数的当前状态;
从所述变化动作集选择一个动作对所述当前状态执行,以获得奖励和下一状态,根据所述奖励和所述下一状态更新所述动作价值函数并使用所述下一状态覆盖所述当前状态;
重复执行上一步骤直到所述动作价值函数收敛和/或迭代次数超过阈值;
其中,根据所述奖励和所述下一状态更新所述动作价值函数包括:
使用下式进行更新:
Q(ps,α)=(1-β)·Q(ps,α)+β[R+γmaxαQ(ps′,α)]
其中ps为当前状态,α为动作,Q(ps,a)为动作价值函数,β为学习率,R为奖励,γ为折扣因子,ps′为下一状态,maxαQ(ps′,α)为下一状态所采用动作的最大收敛函数值;根据对应的所述状态、动作、和收敛的所述动作价值函数确定最优的所述消息传递接口函数和相应的所述消息压缩算法以压缩并传递消息;
其中,所述消息压缩算法为以下之一:RLE、HUFF、RICE、LZO,或不使用压缩算法;其中所述消息压缩算法为RLE、HUFF、RICE或LZO时所述状态还包括所述消息压缩算法的压缩参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010988129.3A CN112231113B (zh) | 2020-09-18 | 2020-09-18 | 一种消息传递方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010988129.3A CN112231113B (zh) | 2020-09-18 | 2020-09-18 | 一种消息传递方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231113A CN112231113A (zh) | 2021-01-15 |
CN112231113B true CN112231113B (zh) | 2023-01-06 |
Family
ID=74106989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010988129.3A Active CN112231113B (zh) | 2020-09-18 | 2020-09-18 | 一种消息传递方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231113B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132482B (zh) * | 2021-04-13 | 2022-10-14 | 河海大学 | 一种基于强化学习的分布式消息系统参数自适应优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556546A (zh) * | 2009-05-27 | 2009-10-14 | 北京联合大学 | 一种基于计算机集群的压缩程序并行化的处理方法 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448863B2 (en) * | 2011-11-08 | 2016-09-20 | Intel Corporation | Message passing interface tuning using collective operation modeling |
-
2020
- 2020-09-18 CN CN202010988129.3A patent/CN112231113B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556546A (zh) * | 2009-05-27 | 2009-10-14 | 北京联合大学 | 一种基于计算机集群的压缩程序并行化的处理方法 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112231113A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | LAG: Lazily aggregated gradient for communication-efficient distributed learning | |
Xu et al. | Improved polar decoder based on deep learning | |
Even-Dar et al. | Action elimination and stopping conditions for the multi-armed bandit and reinforcement learning problems. | |
US11531932B2 (en) | Systems and methods for compression and distribution of machine learning models | |
Pajarinen et al. | Periodic finite state controllers for efficient POMDP and DEC-POMDP planning | |
CN109725988B (zh) | 一种任务调度方法和装置 | |
JP2018120441A (ja) | 分散深層学習装置及び分散深層学習システム | |
US20210318878A1 (en) | Method and system for accelerating ai training with advanced interconnect technologies | |
CN112231113B (zh) | 一种消息传递方法和装置 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
EP3767549A1 (en) | Delivery of compressed neural networks | |
US11652573B2 (en) | Error correction in network packets using soft information | |
CN114297934A (zh) | 一种基于代理模型的模型参数并行仿真优化方法及装置 | |
CN113452655A (zh) | 一种分布式训练方法、梯度通信方法、装置以及计算设备 | |
JP2020091549A (ja) | テキスト分類装置、学習装置、およびプログラム | |
CN107273092B (zh) | 一种优化数据流架构访存延迟的方法及其系统 | |
CN111461336B (zh) | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 | |
CN117555683A (zh) | 基于深度强化学习的云集群资源调度方法 | |
CN113259482B (zh) | 多对多通信模式的优化方法、装置、存储介质及电子设备 | |
CN115409180A (zh) | 一种分布式图推理计算方法、装置、终端及存储介质 | |
CN115904533A (zh) | 一种基于深度强化学习的边缘计算任务卸载方法 | |
Savchenko et al. | Optimizing degree distributions of LT-based codes with deep reinforcement learning | |
Kollias et al. | Sketch to skip and select: Communication efficient federated learning using locality sensitive hashing | |
CN110069293A (zh) | 一种升级服务器软件的方法、系统和装置 | |
CN113824546B (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 |