CN112769522A - 一种基于Partition结构的编码分布式计算方法 - Google Patents

一种基于Partition结构的编码分布式计算方法 Download PDF

Info

Publication number
CN112769522A
CN112769522A CN202110072010.6A CN202110072010A CN112769522A CN 112769522 A CN112769522 A CN 112769522A CN 202110072010 A CN202110072010 A CN 202110072010A CN 112769522 A CN112769522 A CN 112769522A
Authority
CN
China
Prior art keywords
nodes
node
lambda
group
receiving
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
Application number
CN202110072010.6A
Other languages
English (en)
Other versions
CN112769522B (zh
Inventor
钟逸云
蒋静
曲凌晓
周玲玲
王文汉
董洪岩
姬生鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangxi Normal University
Original Assignee
Guangxi Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangxi Normal University filed Critical Guangxi Normal University
Priority to CN202110072010.6A priority Critical patent/CN112769522B/zh
Publication of CN112769522A publication Critical patent/CN112769522A/zh
Application granted granted Critical
Publication of CN112769522B publication Critical patent/CN112769522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于Partition结构的编码分布式计算方法,在编码分布式计算中,对于N个输入文件,使用K个分布式计算节点来计算Q个输出函数的值,整个计算过程分三个阶段进行:Map阶段、Shuffle阶段和Reduce阶段,以K个节点共同计算Q个函数s次的分布式计算的方法,包括如下步骤:A.Map阶段;B.Shuffle阶段;C.Reduce阶段。这种方法所实现的通信负载几乎约等于最优通信负载,并且在此基础上,所需的输入文件个数N及输出函数个数Q的最小要求相比Ali的方案明显减少。

Description

一种基于Partition结构的编码分布式计算方法
技术领域
本发明属于网络通信技术,具体是一种基于Partition结构的编码分布式计算方法。
背景技术
在机器学习和数据科学快速发展的推动下,现代计算范式已经从传统的单处理器系统转向大型分布式计算系统,而MapReduce框架便是分布式计算的一个流行框架。分布式计算在处理大规模数据时,显示出自身的很大优势,因此成为近两年的热门研究方向。
分布式计算是一种计算方法,和集中式计算是相对的。分布式计算是指将计算由一台设备上的集中计算分配到网络中多个设备上分布式地进行计算,这样就加速了计算进程。它可以处理大规模的数据分析任务,如机器学习,神经网络的学习。
MapReduce是用于分布式计算的一个流行框架,如图1所示,然而在数据处理过程中存在着大量数据交换,耗费许多时间,为了加速数据交换进程,S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamental tradeoff between computation andcommunication in distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.提出了编码的分布式计算(“coded distributed computing”,CDC),并且得到了分布式计算的最优通信负载;然而其方案中所需输入文件数量和输出函数数量很大,解决实际问题存在一定困难,因此降低输入文件数量和输出函数数量便成为一个很有意义的研究方向。
对于编码分布式计算而言,它可以分为两大类:一类是在同构模型下的研究(即每个节点的计算能力,存储能力和传输能力都是相同的)。例如文献S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamental tradeoff between computation andcommunication in distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.;Q.Yan,S.Yang,and M.Wigger,“Storage,computation,andcommunication:A fundamental tradeoff in distributed computing,”in IEEE ITW,Nov 2018.;K.Lee,M.Lam,R.Pedarsani,D.Papailiopoulos,and K.Ramchandran,“Speeding up distributed machine learning using codes,"IEEE Trans.Inf.Theory,vol.64,no.3,pp.1514–1529,Mar.2018.。其中S.Li,M.A.Maddah-Ali,Q.Yu,andA.S.Avestimehr,“A fundamental tradeoff between computation and communicationin distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中主要研究了分布式计算的最优通信负载;Q.Yan,S.Yang,and M.Wigger,“Storage,computation,and communication:A fundamental tradeoff in distributedcomputing,”in IEEE ITW,Nov 2018.使得每个计算节点计算部分输入文件从而降低计算负载;K.Lee,M.Lam,R.Pedarsani,D.Papailiopoulos,and K.Ramchandran,“Speeding updistributed machine learning using codes,"IEEE Trans.Inf.Theory,vol.64,no.3,pp.1514–1529,Mar.2018.针对分布式计算对大规模数据处理任务机器学习进行了研究。另一类是在异构模型下的研究(即每个节点上的计算能力、存储能力和传输能力不完全相同)。例如文献M.Kiamari,C.Wang,and A.S.Avestimehr,“On heterogeneous codeddistributed computing,”in IEEE GLOBECOM,Dec 2017,pp.1–7.;N.Shakya,F.Li,andJ.Chen,“On distributed computing with heterogeneous communicationconstraints,”in 52nd Asilomar Conf.Signals,Syst.Comput.,Oct 2018,pp.1795–1799.;“Coded distributed computing with heterogeneous function assignments,”2019.[Online].Available:http://arxiv.org/abs/1902.10738.。其中M.Kiamari,C.Wang,and A.S.Avestimehr,“On heterogeneous coded distributed computing,”inIEEE GLOBECOM,Dec 2017,pp.1–7.给出了在有3个节点且它们的计算能力不同时的情况下,得到了最优的通信负载;N.Shakya,F.Li,and J.Chen,“On distributed computingwith heterogeneous communication constraints,”in 52nd Asilomar Conf.Signals,Syst.Comput.,Oct 2018,pp.1795–1799.对不同节点给定了不同的传输能力,得到了系统的最小计算负载;“Coded distributed computing with heterogeneous functionassignments,”2019.[Online].Available:http://arxiv.org/abs/1902.10738.对不同节点给定了不同的存储能力,研究每个节点所需计算的输出函数的数量。
在编码分布式计算中,对于N个输入文件,使用K个分布式计算节点来计算Q个输出函数的值。整个计算过程分三个阶段进行:Map阶段、Shuffle阶段和Reduce阶段。
Map阶段:每个节点各自存储一部分文件,然后各个节点对存储的文件通过Map函数进行计算,生成中间值;
Shuffle阶段:节点间将Map阶段计算得到的中间值编码成信号,多播给其他节点;本阶段结束时,各个节点都收到到了来自其他节点多播的信号;
Reduce阶段:每个节点由Shuffle阶段收到的信号和Map阶段计算得到的中间值,解出缺少的中间值;之后进一步将中间值通过Reduce函数计算得到输出值。
MapReduce阶段的流程图如图2所示。
Shuffle阶段的数据传输会产生通信负载L(即K个节点的总通信量与QNT的比值),我们的目的是使L尽可能小。在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“Afundamental tradeoff between computation and communication in distributedcomputing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.所提方案中,输入文件和输出函数的数量过大,无法进行实际应用,因此我们希望牺牲部分通信负载L来降低输入文件的数量N和输出函数的数量Q。
发明内容
本发明的目的是针对现有技术的不足,而提供一种基于Partition结构的编码分布式计算方法。这种方法所实现的通信负载几乎约等于最优通信负载,并且在此基础上,所需的输入文件个数N及输出函数个数Q的最小要求相比Ali的方案明显减少。
实现本发明目的的技术方案是:
一种基于Partition结构的编码分布式计算方法,在编码分布式计算中,对于N个输入文件,使用K个分布式计算节点来计算Q个输出函数的值,整个计算过程分三个阶段进行:Map阶段、Shuffle阶段和Reduce阶段,以K个节点共同计算Q个函数s次的分布式计算的方法,包括如下步骤:
A.Map阶段:
每个节点通过Map函数
Figure BDA0002906232150000031
n∈{1,...,N},T∈N对本地已存储文件计算生成分别对应于所有Q个函数的中间值vq,n
Figure BDA0002906232150000032
其中
Figure BDA0002906232150000033
n∈{1,...,N}表示将文件n映射为Q个T位的二元向量的函数,T是正整数;
(1)给定m个互不相交的z元节点集合:K1,...,Km,|Ki|=z,
Figure BDA0002906232150000034
将每个节点集合看做一个组,即给定m个有z个节点的组,因此节点总个数为K=mz,m,z∈Z*
(2)在m个组中,从每一个组中选择一个节点组成一个m元节点组T,即
Figure BDA0002906232150000035
即共有zm个m元节点组
Figure BDA0002906232150000036
(3)给定N个文件,将这N个文件平均分成zm个互不相交的文件集合,将这zm个文件集合分别标记为
Figure BDA0002906232150000037
一个文件集合Bi的文件只能被一个节点集合Ti中的所有节点存储;
(4)给定Q个函数,将这Q个函数平均分成zm个互不相交的函数集合,将这zm个函数集合分别标记为
Figure BDA0002906232150000038
一个函数集合Di的函数只能被一个节点集合Ti中的所有节点输出;
(5)设一个文件集合Bi中有η1个文件,一个函数集合Di中有η2个函数,即|Bi|=η1∈Z+,
Figure BDA0002906232150000039
|Di|=η2∈Z+,
Figure BDA00029062321500000310
则文件总个数为N=zmη1,函数总个数为Q=zmη2
B.Shuffle阶段:
在Shuffle阶段,每个节点将Map阶段计算得到的中间值编码成信号,多播给其他节点;其中Shuffle阶段由m轮传输组成,被λ个节点需要的中间值在第λ轮传输中交换,第λ轮分别根据λ所在的取值范围采用以下步骤:
1)当1≤λ≤m-1时,每个2λ元接收节点组S及其对应的m-λ元发送节点组G构造说明如下:
(1)在第λ轮传输中,在m个节点组中任意选择λ个节点组作为接收中间值的一方R,并在这m个节点组中的每一个节点组里任意选择两个节点作为接收节点,即|S∩Ki|=2,
Figure BDA0002906232150000041
R|=λ,|S|=2λ;而另外的m-λ个节点组作为发送中间值的一方P,即|G∩Kj|=2,
Figure BDA0002906232150000042
|P|=m-λ,|G|=m-λ;
(2)对于一个接收集合S中的2λ个接收节点,在λ个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个λ元接收节点子集
Figure BDA0002906232150000043
使其满足S'∩Ki|=1,
Figure BDA0002906232150000044
|R|=λ,|S'|=λ;另外的λ个节点构成另一个λ元接收节点子集
Figure BDA0002906232150000045
使其满足|{S\S'}∩Ki|=1,
Figure BDA0002906232150000046
|R|=λ,|{S\S'}|=λ;
(3)将接收节点的集合定义为Tα,将发送节点的集合定义为Tβ,因此在第λ轮传输中,需要交换的中间值可分为两部分表示:
①只被集合S\S'中的节点需要、并且仅由集合S'∪G中的节点计算的中间值集合:
Figure BDA0002906232150000047
②只被集合S'中的节点需要、并且仅由集合{S\S'}∪G中的节点计算的中间值集合:
Figure BDA0002906232150000048
对于每一对独立的接收集合S'和S\S',在发送节点组G中选取任一个节点将按位异或编码后的信号
Figure BDA0002906232150000049
发送给接收节点组S的2λ个接收节点;
2)当λ=m时,每个2m元传输节点组S的组成说明如下:在第m轮传输中,在m个组中的每一个组里任意选择2个节点作为传输节点,则传输节点组S中一共有2m个节点参与传输,并且,对于一个接收集合S中的2m个接收节点,在m个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个m元发送节点子集
Figure BDA00029062321500000410
使其满足|S'∩Ki|=1,
Figure BDA0002906232150000051
|S'|=m,另外的m个节点构成另一个m元接收节点子集
Figure BDA0002906232150000052
使其满足|{S\S'}∩Ki|=1,
Figure BDA0002906232150000053
|{S\S'}|=m,将只被集合S\S'中的节点需要、并且仅由集合S'中的节点计算的中间值集合定义为:
Figure BDA0002906232150000054
然后将这组中间值分割成2m-1个大小相等、互不相交的子集:
Figure BDA0002906232150000055
传输组S中的每个节点k∈S多播包含内容
Figure BDA0002906232150000056
的系数互为线性无关的2m-1个线性组合;
C.Reduce阶段:
每个节点k∈{1,...,K}利用在Shuffle阶段接收到的信号以及在Map阶段计算得到的中间值,解码出所需要但缺少的中间值;然后再将任一函数q∈{1,...,Q}的对应于所有N个文件的所有N个中间值通过Reduce函数
Figure BDA0002906232150000057
计算得到所负责函数的输出值{uq=hq(vq,1,...,vq,N):q∈Wk,n∈{1,...,N}}。
这种方法所实现的通信负载几乎约等于最优通信负载,并且在此基础上,所需的输入文件个数N及输出函数个数Q的最小要求相比Ali的方案明显减少。
附图说明
图1为现有技术MapReduce编码分布式计算框架图;
图2为现有技术MapReduce阶段流程图;
图3为实施例中传输组S={2,3,5,6,7,8}中节点2、3、5、6发送的信号示意图;
图4为实施例中传输组S={2,3,5,6,7,8}中节点7、8发送的信号示意图。
具体实施方式
下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。
实施例:
对每个输出函数被计算的次数s而言,大多数文献都是对s=1的情况下进行的研究,只有极少数文章中有提到s>1的情况,而本例中,致力于解决s>1的情况下如何降低输入文件个数N和输出函数数量Q的问题。
一种基于Partition结构的编码分布式计算方法,在编码分布式计算中,对于N个输入文件,使用K个分布式计算节点来计算Q个输出函数的值,整个计算过程分三个阶段进行:Map阶段、Shuffle阶段和Reduce阶段,K个节点共同计算Q个函数s次的分布式计算的方法,包括如下步骤:
A.Map阶段:
每个节点通过Map函数
Figure BDA0002906232150000061
n∈{1,...,N},T∈N进行对本地已存储文件计算生成分别对应于所有Q个函数的中间值vq,n
Figure BDA0002906232150000062
其中
Figure BDA0002906232150000063
n∈{1,...,N}表示将文件n映射为Q个T位的二元向量的函数,T是正整数;
(1)给定m个互不相交的z元节点集合:K1,...,Km,|Ki|=z,
Figure BDA0002906232150000064
将每个节点集合看做一个组,即给定m个有z个节点的组,因此节点总个数为K=mz,m,z∈Z*
本例给定m=3个互不相交的z=3元节点集合:K1={1,2,3},K2={4,5,6},K3={7,8,9},|Ki|=z=3,
Figure BDA0002906232150000065
将每一个节点集合看做一个组,即给定m=3个组,每个组有z=3个节点,因此这是一个K=mz=9个节点
Figure BDA0002906232150000066
的计算网络;
(2)在m个组中,从每一个组中选择一个节点组成一个m元节点组T,即
Figure BDA0002906232150000067
即共有zm个m元节点组
Figure BDA0002906232150000068
在m=3个组中,从每一个组中选择一个节点组成一个m=3元节点组,即
Figure BDA0002906232150000069
所以一共有zm=33=27个这样的m=3元节点组{T1,...,T27};
(3)给定N个文件,将这N个文件平均分成zm个互不相交的文件集合,将这zm个文件集合分别标记为
Figure BDA00029062321500000610
一个文件集合Bi的文件只能被一个节点集合Ti中的所有节点存储;
(4)给定Q个函数,将这Q个函数平均分成zm个互不相交的函数集合,将这zm个函数集合分别标记为
Figure BDA00029062321500000611
一个函数集合Di的函数只能被一个节点集合Ti中的所有节点输出;
对于任一i∈{1,...,27},集合Ti中的每个节点存储集合Bi中所有的输入文件、并且被分配输出集合Di中所有的输出函数,将这zm=27个文件集合Bi分别标记为B1,...,B27,将这zm=27个函数集合Di分别标记为D1,...,D27
由于将每个文件和每个Reduce函数分别分配给m=3个组中的一个节点,即从分别K1,K2,K3中各取一个节点存储同一个文件、并且输出同一个Reduce函数,所以每一个文件被分别来自r=m=3个不同组的节点存储,每一个Reduce函数由分别来自s=m=3个不同组的节点输出;
(5)设一个文件集合Bi中有η1个文件,一个函数集合Di中有η2个函数,即|Bi|=η1∈Z+,
Figure BDA0002906232150000071
|Di|=η2∈Z+,
Figure BDA0002906232150000072
则文件总个数为N=zmη1,函数总个数为Q=zmη2
本例假设η1=1,η2=1,那么一个文件集合Bi中有η1=1个文件,一个Reduce函数集合Di中有η2=1个函数,即|Bi|=1,
Figure BDA0002906232150000073
|Di|=1,
Figure BDA0002906232150000074
因此文件总个数为N=zmη1=27×1=27,Reduce函数的总个数为Q=zmη2=27×1=27,每一个文件或者函数类似于一个z元域上m长的向量的域
Figure BDA0002906232150000075
中的一个元素,每一个元素分别对应于每一个组中的一个节点;
为了表达更加直观,本例使用组的组合方式进行构造,如表1所示,一共有m=3个组,分别代表m=3个互不相交的z=3元节点集合K1={1,2,3},K2={4,5,6},K3={7,8,9},每个组的z=3个节点分别用3个列标表示,即K=9个节点
Figure BDA0002906232150000076
分别用9个列标表示,每个行标代表一个文件,因此行标总个数就是文件总个数N=zmη1=27,将这N个文件的集合表示为
Figure BDA0002906232150000077
Figure BDA0002906232150000078
中的每个元素表示在每个节点组中选择一个节点组成的一个所有节点的集合
Figure BDA0002906232150000079
的m=3元子集,例如元素147表示集合{1,4,7},即文件147仅仅被节点1、节点4和节点7存储到本地,其他节点都没有存储文件147,因此,在行标为147的这一行中,仅在列标为1、4、7这三个方格中用*标记,从表1中可以很明显地看出,同一个组中不同的节点存储的文件没有相同的,即
Figure BDA0002906232150000081
k≠p;而分别来自两个不同组的两个节点存储的相同文件个数为mη1=3个,即|Mk∩Mp|=mη1=3,
Figure BDA0002906232150000082
p∈Kj,i≠j;
表1 文件分配给各个节点的情况
Figure BDA0002906232150000083
Figure BDA0002906232150000091
每个Reduce函数也被分配给分别来自不同组的m=3个节点,因此复制Q=zmη2=27个函数分配表,每一个表分别用来表示每一个Reduce函数的分配情况,将这Q个Reduce函数的集合表示为
Figure BDA0002906232150000092
与文件集合
Figure BDA0002906232150000093
的表达意义类似,Reduce函数集合
Figure BDA0002906232150000094
中的每个元素分别表示节点集合
Figure BDA0002906232150000095
中的一个m=3元子集,例如元素147表示集合{1,4,7},如表2所示,函数147仅仅被分配给节点1、节点4和节点7输出,其他节点都不输出函数147,因此,在第一个表示Reduce函数分配情况的表格中,把列标为1、4、7的这三列方格全部用灰色填充,一行中没有标*号的灰色方格被对应列的节点需要,即在一行中,没有标*号的灰色方格个数表示该中间值被几个节点需要,因此在不同颜色空格中标上数字表示该中间值被几个节点需要接收,从表2可以很明显地看出,同一组的不同节点输出的Reduce函数没有相同的,而分别来自两个不同组的两个节点输出的相同函数个数为mη2=3个,即|Wk∩Wl|=3,k∈Ki,l∈Kj,i≠j;
表2 Reduce函数147分配情况
Figure BDA0002906232150000096
Figure BDA0002906232150000101
对于所有的i∈{157,257,357,158,258,358,159,259,359},节点5已在本地存储文件i,并且被分配输出Reduce函数i,同理可得,对于所有的i∈{167,267,367,168,268,368,169,269,369},节点6已在本地存储文件i,并且被分配输出Reduce函数i,节点5和节点6之所以都没有在本地存储相同的文件和输出相同的Reduce函数,是因为节点5和节点6都属于第二个组;但是由于节点2与节点5、6不属于同一个组,因此节点2分别与节点5、6存储的相同文件个数为mη1=3个,输出的相同Reduce函数个数也是mη2=3个;
B.Shuffle阶段:
在Shuffle阶段,每个节点将Map阶段计算得到的中间值编码成信号,多播给其他节点;其中Shuffle阶段由m轮传输组成,被λ个节点需要的中间值在第λ轮传输中交换,第λ轮分别根据λ所在的取值范围采用以下步骤:
1)当1≤λ≤m-1时,每个2λ元接收节点组S及其对应的m-λ元发送节点组G构造说明如下:
(1)在第λ轮传输中,在m个节点组中任意选择λ个节点组作为接收中间值的一方R,并在这m个节点组中的每一个节点组里任意选择两个节点作为接收节点,即|S∩Ki|=2,
Figure BDA0002906232150000111
|R|=λ,|S|=2λ;而另外的m-λ个节点组作为发送中间值的一方P,即|G∩Kj|=2,
Figure BDA0002906232150000112
|P|=m-λ,|G|=m-λ;
(2)对于一个接收集合S中的2λ个接收节点,在λ个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个λ元接收节点子集
Figure BDA0002906232150000113
使其满足|S'∩Ki|=1,
Figure BDA0002906232150000114
|R|=λ,|S'|=λ;另外的λ个节点构成另一个λ元接收节点子集
Figure BDA0002906232150000115
使其满足|{S\S'}∩Ki|=1,
Figure BDA0002906232150000116
|R|=λ,|{S\S'}|=λ;
(3)将接收节点的集合定义为Tα,将发送节点的集合定义为Tβ,因此在第λ轮传输中,需要交换的中间值可分为两部分表示:
①只被集合S\S'中的节点需要、并且仅由集合S'∪G中的节点计算的中间值集合:
Figure BDA0002906232150000117
②只被集合S'中的节点需要、并且仅由集合{S\S'}∪G中的节点计算的中间值集合:
Figure BDA0002906232150000118
对于每一对独立的接收集合S'和S\S',在发送节点组G中选取任一个节点将按位异或编码后的信号
Figure BDA0002906232150000119
发送给接收节点组S的2λ个接收节点;
首先,对于第λ=0轮,显然这些中间值都只被那些能够自己计算出该中间值的节点所需要,即没有节点需要接收这些中间值,所以接下来考虑传输只被1个节点接收的中间值的第λ=1轮,这些中间值可以通过一个m=3元节点组Tα来观察,该节点组的m=3个节点分别由每个组的1个节点——分别来自K1,K2,K3的3个节点组成;
在交换被1个节点需要接收的中间值的第λ=1轮中,假设以第一个和第二个组作为发送组,第三个组作为接收组,举个例子,在第一个组中选择节点2、在第二个组中选择节点6作为发送节点,接着在第三个组中任选两个节点作为接收节点,由表3可以看出,在被节点2和节点6共同存储的文件中,只被第三个组中任意两个节点中的一个节点存储、另一个节点缺少的文件有:文件267、268分别只被节点7、8中的一个节点存储、另一个节点缺少;文件268、269分别只被节点8、9中的一个节点存储、另一个节点缺少;文件267、269分别只被节点7、9中的一个节点存储、另一个节点缺少;由于Reduce函数分配给节点的方式和文件分配方式一样,所以可以将文件和函数的标号互换的两个中间值编码成一个信号发给相对应的两个节点,即在第λ=1轮中,节点7、8中的接收编码信号
Figure BDA0002906232150000121
节点8、9中的接收编码信号
Figure BDA0002906232150000122
节点7、9中的接收编码信号
Figure BDA0002906232150000123
这三个编码信号只要由节点2或节点6中的一个节点发送即可;假设一个中间值大小为T比特,因为将两个中间值按位异或编码后所形成的信号大小等于一个中间值的大小,即一个异或编码信号
Figure BDA0002906232150000124
的大小为T比特,所以在第λ=1轮中,节点2或节点6需要发给节点7、8、9的信号大小一共为3T比特;
表3 第λ=1轮传输示例
Figure BDA0002906232150000125
在第λ=1轮中,这样的传输组合是在m=3个组中选择λ=1个组作为接收组,其余的m-λ=2个组作为发送组;然后从每一个发送组中选择一个节点作为发送节点,即m-λ=2个发送节点;再从每一个接收组中的任选2个节点作为接收节点,即2λ=2个接收节点,在这个传输组合交换的两个中间值中,文件和函数的标号分别用m-λ=2个发送节点和其中一个接收节点(即λ=1个接收节点)组成的集合表示,显然这样的组合有
Figure BDA0002906232150000126
个,每一个组合需交换T比特的信号,所以该例在第λ=1轮中的总传输量为81T比特;
与第λ=1轮的传输方式相似,在交换被2个节点需要接收的中间值的第λ=2轮中,假设以第一个组作为发送组,第二、三个组作为接收组。在第一个组中选择一个节点2作为发送节点,即G={2},接着分别在第二、第三个组中任选两个节点作为2λ=4元接收节点,例如S={4,5,7,8},因此,可以看出,文件{247,248,257,258}中的每个文件被S={4,5,7,8}中的2个节点存储,并且这些文件都被节点2存储,如表4所示如果设S'={4,7},S\S'={5,8},那么节点2发送S={4,5,7,8}的四个节点的信号是
Figure BDA0002906232150000131
如果设S'={4,8},S\S'={5,7},那么节点2发送S={4,5,7,8}的四个节点的信号是
Figure BDA0002906232150000132
因此,在S={4,5,7,8}和G={2}这个传输组合中,一共需要交换的信号量为2T比特;
表4 第λ=2轮传输示例
Figure BDA0002906232150000133
在第λ=2轮中,这样的传输组合是在m=3个组中选择λ=2个组作为接收组,其余的m-λ=1个组作为发送组;然后从每一个发送组中选择一个节点作为发送节点,即m-λ=1个发送节点;再从每一个接收组中的任选2个节点作为接收节点,即2λ=4个接收节点,在这个传输组合交换的两个中间值中,文件和函数的标号分别用m-λ=1个发送节点和其中每一个接收组中的1个接收节点(即λ=2个接收节点)组成的集合表示,显然这样的组合一共有
Figure BDA0002906232150000134
个,每一个组合需交换2T比特的信号,所以该例在第λ=2轮中的总传输量为81*2T=162T比特;
2)当λ=m时,每个2m元传输节点组S的组成说明如下:在第m轮传输中,在m个组中的每一个组里任意选择2个节点作为传输节点,则传输节点组S中一共有2m个节点参与传输,并且,对于一个接收集合S中的2m个接收节点,在m个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个m元发送节点子集
Figure BDA0002906232150000135
使其满足|S'∩Ki|=1,
Figure BDA0002906232150000136
|S'|=m,另外的m个节点构成另一个m元接收节点子集
Figure BDA0002906232150000137
使其满足|{S\S'}∩Ki|=1,
Figure BDA0002906232150000138
|{S\S'}|=m,将只被集合S\S'中的节点需要、并且仅由集合S'中的节点计算的中间值集合定义为
Figure BDA0002906232150000139
然后将这组中间值分割成2m-1个大小相等、互不相交的子集:
Figure BDA00029062321500001310
传输组S中的每个节点k∈S多播包含内容
Figure BDA0002906232150000141
的系数互为线性无关的2m-1个线性组合;
考虑最后一轮(λ=m=3),交换被3个节点需要接收的中间值,分别在三个组中任选两个节点组成一个2λ=2m=6元传输组,例如S={2,3,5,6,7,8},由表5可以看出,S={2,3,5,6,7,8}的每个节点都有四个已在本地计算的中间值和四个需要接收的中间值,并且需要接收的中间值都可以根据另外五个节点发送的线性组合解码出来,于是将每个中间值分割成5个部分,例如将大小为T比特的中间值v258,369分成五个部分
Figure BDA0002906232150000142
每一个部分大小为
Figure BDA0002906232150000143
比特,因此每个节点需要接收4*5=20个未知部分,由于每个节点需要接收来自5个节点的传输,所以每个节点将本地中间值分割后,编码成系数线性无关的
Figure BDA0002906232150000144
个线性组合,并将其多播给传输组S={2,3,5,6,7,8}中的其他5个节点,在传输组S={2,3,5,6,7,8}中各节点发送的信号如图3、图4所示,其中α1234567891011121314151617181920是20个线性无关的系数;
表5 第λ=m=3轮传输示例
Figure BDA0002906232150000145
在第λ=m=3轮中,这样的传输组合是在m=3个组中,每一个组选择2个节点,即一共有2λ=2m=6节点作为一个传输组,在一个2λ=2m=6元传输组交换的中间值里,每一个节点有2λ-1=2m-1=4个已知中间值和2λ-1=2m-1=4个未知中间值,把每一个中间值分成2λ-1=2m-1=5个部分,则每个节点有2m-1(2m-1)=20个未知部分,为了解码出这20个未知部分,每一个节点需要接收来自另外的2λ-1=2m-1=5个节点中每一个节点发送的
Figure BDA0002906232150000151
个线性组合,每一个线性组合的大小为
Figure BDA0002906232150000152
比特,因此在一个传输组中一共交换
Figure BDA0002906232150000153
显然这样的组合一共有
Figure BDA0002906232150000154
个,所以第λ=m=3轮的总传输量为
Figure BDA0002906232150000155
比特;
C.Reduce阶段:
每个节点k∈{1,...,K}利用在Shuffle阶段接收到的信号以及在Map阶段计算得到的中间值,解码出所需要但缺少的中间值;然后再将任一函数q∈{1,...,Q}的对应于所有N个文件的所有N个中间值通过Reduce函数
Figure BDA0002906232150000156
计算得到所负责函数的输出值{uq=hq(vq,1,...,vq,N):q∈Wk,n∈{1,...,N}};
因为在这个m=3,z=3的例子中,所涉及到的中间值一共有QN=27*27=729个,所以使用所有中间值总大小QNT规范化后,得到的通信负载为
Figure BDA0002906232150000157
由相同的参数K=9,r=s=3,Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamental tradeoff betweencomputation andcommunication in distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案所得到的最优通信负载为L*(r,s)=0.4821,因此可以得到本例的通信负载大约是最优方案的1.06倍。
但是由于本例所需要的最少文件数为N=zm=33=27,最少函数个数为Q=zm=33=27,然而Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamentaltradeoff betweencomputation and communication in distributed computing,"IEEETrans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案所需要的最少文件数是
Figure BDA0002906232150000158
最少函数个数是
Figure BDA0002906232150000161
显然本例所需要的最少文件数和最少函数个数比Ali在S.Li,M.A.Maddah-Ali,Q.Yu,andA.S.Avestimehr,“A fundamental tradeoff betweencomputation and communicationin distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案少很多。并且随着参数m,z的增加,这个差距会越来越明显。本例所需要的最少文件数和最少函数个数与Ali在S.Li,M.A.Maddah-Ali,Q.Yu,andA.S.Avestimehr,“A fundamental tradeoff between computation and communicationin distributedcomputing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案对比如下,其中(N,Q)_new表示本方案的最少文件数和最少函数个数,(N,Q)_Ali表示Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“Afundamental tradeoff between computation andcommunication in distributedcomputing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案所需要的最少文件数和最少函数个数,new/Ali表示本方案的最少文件数和最少函数个数除以Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamentaltradeoffbetween computation and communication in distributed computing,"IEEETrans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出的方案所需要的最少文件数和最少函数个数得到的比值。
由构造可以看出,在给定参数r=s=m,K=mz的条件下,所需的输入文件个数N及输出Reduce函数个数Q的最小要求都为N=Q=zm,而在给定相同参数r=s=m,K=mz的条件下,S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,“A fundamental tradeoffbetweencomputation and communication in distributed computing,"IEEETrans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.的方案中N和Q的最小要求分别是
Figure BDA0002906232150000162
Figure BDA0002906232150000163
因此,可以观察到,本例方法将所需的输入文件个数N及输出函数个数Q的最小要求很明显地减少了。
最后,本例中所得到的通信负载是
Figure BDA0002906232150000164
在给定相同参数r=s=m,K=mz以及传输组节点个数l的条件下,Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,"A fundamental tradeoff betweencomputation andcommunication in distributed computing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出方案的最优通信负载可以表示为
Figure BDA0002906232150000171
与Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,"A fundamentaltradeoff betweencomputation and communication in distributed computing,"IEEETrans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中提出方案的最优通信负载相比,本例得到的通信负载除了极个别最高可以达到最优通信负载的1.473倍,使用其他绝大多数的参数所得到的通信负载都小于最优通信负载的1.025倍。由于本例的文件总个数N和Reduce函数总个数Q相同,所以(N,Q)_new/(N,Q)_Ali表示本例方法与Ali在S.Li,M.A.Maddah-Ali,Q.Yu,and A.S.Avestimehr,"A fundamental tradeoff betweencomputation and communication in distributedcomputing,"IEEE Trans.Inf.Theory,vol.64,no.1,pp.109–128,Jan.2018.中所提出方案的所需文件、函数的最小个数的比值。部分数据对比汇总如表6所示:
表6 相同参数K,r,s下本方案与Ali最优方案的通信负载、文件和函数最少个数对比
Figure BDA0002906232150000172
Figure BDA0002906232150000181

Claims (1)

1.一种基于Partition结构的编码分布式计算方法,在编码分布式计算中,对于N个输入文件,使用K个分布式计算节点来计算Q个输出函数的值,整个计算过程分三个阶段进行:Map阶段、Shuffle阶段和Reduce阶段,其特征在于,以K个节点共同计算Q个函数s次的分布式计算的方法,包括如下步骤:
A.Map阶段:
每个节点通过Map函数
Figure FDA0002906232140000011
T∈N对本地已存储文件计算生成分别对应于所有Q个函数的中间值vq,n
{vq,n=gq,n(wn)∈F2T:n∈Wk,q∈{1,...,Q}},
其中
Figure FDA0002906232140000012
表示将文件n映射为Q个T位的二元向量的函数,T是正整数;
(1)给定m个互不相交的z元节点集合:
Figure FDA0002906232140000013
将每个节点集合看做一个组,即给定m个有z个节点的组,因此节点总个数为K=mz,m,z∈Z*
(2)在m个组中,从每一个组中选择一个节点组成一个m元节点组T,即
Figure FDA0002906232140000014
即共有zm个m元节点组
Figure FDA0002906232140000015
(3)给定N个文件,将这N个文件平均分成zm个互不相交的文件集合,将这zm个文件集合分别标记为
Figure FDA0002906232140000016
一个文件集合Bi的文件只能被一个节点集合Ti中的所有节点存储;
(4)给定Q个函数,将这Q个函数平均分成zm个互不相交的函数集合,将这zm个函数集合分别标记为
Figure FDA0002906232140000017
一个函数集合Di的函数只能被一个节点集合Ti中的所有节点输出;
(5)设一个文件集合Bi中有η1个文件,一个函数集合Di中有η2个函数,即
Figure FDA0002906232140000018
则文件总个数为N=zmη1,函数总个数为Q=zmη2
B.Shuffle阶段:
在Shuffle阶段,每个节点将Map阶段计算得到的中间值编码成信号,多播给其他节点;其中Shuffle阶段由m轮传输组成,被λ个节点需要的中间值在第λ轮传输中交换,第λ轮分别根据λ所在的取值范围采用以下步骤:
1)当1≤λ≤m-1时,每个2λ元接收节点组S及其对应的m-λ元发送节点组G构造说明如下:
(1)在第λ轮传输中,在m个节点组中任意选择λ个节点组作为接收中间值的一方R,并在这m个节点组中的每一个节点组里任意选择两个节点作为接收节点,即
Figure FDA0002906232140000021
而另外的m-λ个节点组作为发送中间值的一方P,即
Figure FDA0002906232140000022
(2)对于一个接收集合S中的2λ个接收节点,在λ个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个λ元接收节点子集
Figure FDA0002906232140000023
使其满足
Figure FDA0002906232140000024
另外的λ个节点构成另一个λ元接收节点子集
Figure FDA0002906232140000025
使其满足
Figure FDA0002906232140000026
(3)将接收节点的集合定义为Tα,将发送节点的集合定义为Tβ,因此在第λ轮传输中,需要交换的中间值可分为两部分表示:
①只被集合S\S'中的节点需要、并且仅由集合S'∪G中的节点计算的中间值集合:
Figure FDA0002906232140000027
②只被集合S'中的节点需要、并且仅由集合{S\S'}∪G中的节点计算的中间值集合:
Figure FDA0002906232140000028
对于每一对独立的接收集合S'和S\S',在发送节点组G中选取任一个节点将按位异或编码后的信号
Figure FDA0002906232140000029
发送给接收节点组S的2λ个接收节点;
2)当λ=m时,每个2m元传输节点组S的组成说明如下:在第m轮传输中,在m个组中的每一个组里任意选择2个节点作为传输节点,则传输节点组S中一共有2m个节点参与传输,并且,对于一个接收集合S中的2m个接收节点,在m个节点组的每个节点组已选取的两个节点中任选一个节点,构成一个m元发送节点子集
Figure FDA00029062321400000210
使其满足
Figure FDA00029062321400000211
另外的m个节点构成另一个m元接收节点子集
Figure FDA00029062321400000212
使其满足
Figure FDA00029062321400000213
将只被集合S\S'中的节点需要、并且仅由集合S'中的节点计算的中间值集合定义为:
Figure FDA00029062321400000214
然后将这组中间值分割成2m-1个大小相等、互不相交的子集:
Figure FDA0002906232140000031
传输组S中的每个节点k∈S多播包含内容
Figure FDA0002906232140000032
的系数互为线性无关的2m-1个线性组合;
C.Reduce阶段:
每个节点k∈{1,...,K}利用在Shuffle阶段接收到的信号以及在Map阶段计算得到的中间值,解码出所需要但缺少的中间值;然后再将任一函数q∈{1,...,Q}的对应于所有N个文件的所有N个中间值通过Reduce函数
Figure FDA0002906232140000033
计算得到所负责函数的输出值{uq=hq(vq,1,...,vq,N):q∈Wk,n∈{1,...,N}}。
CN202110072010.6A 2021-01-20 2021-01-20 一种基于Partition结构的编码分布式计算方法 Active CN112769522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110072010.6A CN112769522B (zh) 2021-01-20 2021-01-20 一种基于Partition结构的编码分布式计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110072010.6A CN112769522B (zh) 2021-01-20 2021-01-20 一种基于Partition结构的编码分布式计算方法

Publications (2)

Publication Number Publication Date
CN112769522A true CN112769522A (zh) 2021-05-07
CN112769522B CN112769522B (zh) 2022-04-19

Family

ID=75703372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110072010.6A Active CN112769522B (zh) 2021-01-20 2021-01-20 一种基于Partition结构的编码分布式计算方法

Country Status (1)

Country Link
CN (1) CN112769522B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106253A (zh) * 2013-01-16 2013-05-15 西安交通大学 一种MapReduce计算模型中基于遗传算法的数据平衡方法
CN108809520A (zh) * 2018-06-20 2018-11-13 苏州大学 一种基于边缘计算环境的编码分布式计算方法及装置
US20190188308A1 (en) * 2017-12-20 2019-06-20 Sap Se Computing data lineage across a network of heterogeneous systems
CN111490795A (zh) * 2020-05-25 2020-08-04 南京大学 一种面向中间值长度异构的编码MapReduce方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106253A (zh) * 2013-01-16 2013-05-15 西安交通大学 一种MapReduce计算模型中基于遗传算法的数据平衡方法
US20190188308A1 (en) * 2017-12-20 2019-06-20 Sap Se Computing data lineage across a network of heterogeneous systems
CN108809520A (zh) * 2018-06-20 2018-11-13 苏州大学 一种基于边缘计算环境的编码分布式计算方法及装置
CN111490795A (zh) * 2020-05-25 2020-08-04 南京大学 一种面向中间值长度异构的编码MapReduce方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JING JIANG: "Cascaded Coded Distributed Computing Schemes Based on Placement Delivery Arrays", 《IEEE ACCESS》 *
SONGZE LI: "A Fundamental Tradeoff Between Computation and Communication in Distributed Computing", 《IEEE TRANSACTIONS ON INFORMATION THEORY》 *
王艳等: "编码技术改进大规模分布式机器学习性能综述", 《计算机研究与发展》 *

Also Published As

Publication number Publication date
CN112769522B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
CN105656604B (zh) 一种比特交织极化编码调制方法及装置
CN111630797B (zh) 使用分布匹配器的集合的通信系统及方法
CN108494437B (zh) 一种稀疏码分多址接入的码书生成方法
CN104009907B (zh) 并行计算系统中的“所有到所有”消息交换
Parrinello et al. Coded distributed computing with node cooperation substantially increases speedup factors
CN103384354A (zh) 一种无源光网络光分配网的优化设计方法
CN107124251A (zh) 一种基于任意内核的极化码编码方法
CN107302420B (zh) 一种线性网络编码方法
CN106534295A (zh) 一种邻近协作网络的邻对计算自分配方法
CN109547160B (zh) 一种循环移位网络编码构造方法
CN112769522B (zh) 一种基于Partition结构的编码分布式计算方法
Gupta et al. Locality-aware hybrid coded MapReduce for server-rack architecture
CN107437976A (zh) 一种数据处理方法及设备
Yao et al. The capacity of 3 user linear computation broadcast
CN116915293A (zh) 基于有限域多址码本的构造方法及网络层多用户通信方法、设备
CN106253910A (zh) 一种压缩编码方法
CN105959224A (zh) 基于比特向量的高速路由查找装置及方法
CN106850142A (zh) 记忆信道下利用Homophonic编码的码字最优分布的polar码构造方法
CN109150397B (zh) 一种构造极化码序列的方法及装置
Zhou et al. On the randomness cost of linear secure computation:(Invited Presentation)
Li et al. Architectures for coded mobile edge computing
CN112257285B (zh) 用于大规模分布式仿真的轻量化dds自动发现方法
CN113434299B (zh) 基于MapReduce框架的编码分布式计算方法
CN112787694A (zh) 一种基于期望传播的mimo-scma系统的低复杂度检测算法
CN110650539A (zh) 一种基于scma的无线通信下行链路资源分配方法

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