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