一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种封装任务量自适应分配方法、装置及存储介质与流程

2022-03-05 09:10:27 来源:中国专利 TAG:


1.本技术涉及数据封装技术领域,特别是涉及一种封装任务量自适应分配方法、装置及存储介质。


背景技术:

2.web 1.0出现于20世纪90年代和21世纪初,当时的互联网是静态、只读的html页面。用户之间的互联也相当有限。
3.web2.0也被称为读写网络,开始于2004年左右,至今也仍然处于web2.0时代。它由社交媒体网站、博客和在线社区组成,终端用户可以在任何时间实时地交互和协作。
4.web3.0更难被定义,在无中介的读写网络中提供更好的以用户为中心的体验。技术使得个人在缺省情况下能控制数据隐私和所有权。web3.0引入去中心化互联网,本质上,web3.0技术为p2p通信、支付、服务和市场提供了基础。
5.ipfs是为实现web3.0推出的去中心化存储解决方案。ipfs(inter planetary file system)星际文件系统,是一个面向全球的、点对点的分布式版本文件系统,是一个分布式的web,点到点超媒体协议.可以让我们的互联网速度更快,更加安全,并且更加开放。
6.作为一种面向全球的点对点分布式版本文件系统,ipfs凭借去中心化、开放、安全性与透明性高等优势,已经成为一个流行的网络存储协议。它是一个类似http协议的互联网底层协议,已被成功应用于数据存储、文件传输、网络视频、社交媒体、去中心化交易等各个领域。在这些技术趋势的推动下,基于ipfs网络的相关filecoin(fil)产业也在不断壮大。
7.filecoin是星际文件系统上唯一的激励层,是帮用户存储数据来获取奖励的过程,分为数据封存和共识证明两个过程。filecoin是一个将云存储转变为算法市场的去中心化存储网络,矿工通过提供存储、分发和检索数据服务获得奖励,而客户则需要付费获得这些服务。目前全球ipfs项目逐渐增加,数据存储市场的需求也在逐步加大,filecoin作为激励层,成为市场为ipfs保驾护航的迫切需求。
8.filecoin是帮用户存储数据来获取奖励的过程,分为数据封存和共识证明两个过程。本发明关注数据封存阶段,数据封存阶段主要涉及precommit 1,precommit 2,commit 1,commit 2四个小阶段。简称p1、p2、c1、c2阶段,数据依次完成4个阶段封装,无法并行;
9.1)precommit1阶段(文件分割阶段,下文简称p1阶段):
10.系统会把用户需要存储的文件分成一个个大小为32gb或者64gb的扇区(sector),p1阶段就是矿工先对扇区数据进行进一步的拆分,然后再按顺序进行存储,中间需要进行11层计算,且无法并行计算;在该阶段,通过大容量内存的方式,就有可能同时存储多个扇区数据,并通过软件优化存储一个扇区数据占用的内存的大小来提高p1阶段的速度,该阶段只能使用cpu计算;
11.2)precommit2阶段(动态文件信息表生成阶段,下文简称p2阶段):
12.p2阶段即就是计算column hash以及生成replica,并构造相应的merkle树,相当
于解题并做出答案的过程。该阶段采用gpu计算。
13.3)commit1阶段(标签阶段,下文简称c1阶段):
14.c1阶段主要是为sector证明准备所需要的数据。这个时间很短,一般在一分钟以内。
15.4)commit2阶段(零知识证明阶段,下文简称c2阶段):
16.c2阶段是零知识证明的数据处理以及生成零知识证明的过程。相当于确认答案是否正确的阶段。该阶段采用gpu计算,时间短。
17.目前封装集群分为单节点全流程封装及分布式封装,在单节点全流程封装中,4个封装阶段在同一节点进行计算,完成前一个阶段才能进行下阶段。每个阶段的任务可以并行计算。
18.filecoin集群单节点全流程封装中,并行任务数需手工配置,当设置太多任务数,会导致并行完成封装的p1数据超过p2阶段gpu处理能力,导致p1数据堆积和数据拥堵,封装效率下降,最终导致宕机。而设置太少p1任务数,会导致设备利用率不高,导致封装成本上升。


技术实现要素:

19.基于此,有必要针对上述技术问题,提供一种封装任务量自适应分配方法、装置及存储介质,能够充分利用算力,提升封装效率。
20.一方面,提供一种封装任务量自适应分配方法,所述方法包括:
21.计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2;
22.对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb;
23.确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据中的部分数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口对所述部分数据进行动态文件信息表生成阶段封装。
24.在其中一个实施例中,所述方法包括:
25.建立查询表,所述查询表包括封装节点的标识以及所述封装节点的n1和n2值;
26.查询所述查询表,确定n1大于n2的第一封装节点和n1小于n2的第二封装节点。
27.在其中一个实施例中,所述确定所述cb与所述ca满足预定条件,包括:
28.所述cb值与所述ca值相等。
29.在其中一个实施例中,所述确定所述cb与所述ca满足预定条件,包括:
30.所述cb值属于由所述ca值的不同倍数构成的区间内。
31.在其中一个实施例中,所述方法包括:
32.确定封装节点的cpu总核心数c1和gpu个数g;
33.记录单个封装任务文件分割阶段时长、动态文件信息表生成阶段任务时长和文件分割阶段计算核心数c2。
34.在其中一个实施例中,所述方法包括:
35.通过以下公式计算每个封装节点预定时间内文件分割阶段最大封装任务数n1和
动态文件信息表生成阶段最大封装任务数n2,将所述n1和所述n2记录到查询表中;
36.n1=(24h/t1)*(c1/c2);n2=(24h/t2)*g;
37.其中,24h/t1表示24小时可完成1轮文件分割阶段的次数,c1/c2表示同时进行文件分割阶段并行数;24h/t2表示24小时可完成1轮动态文件信息表生成阶段的次数,g表示同时进行动态文件信息表生成阶段可并行数。
38.另一方面,提供了一种封装任务量自适应分配装置,所述装置包括:
39.计算模块,用于计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2;
40.确定模块,用于对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb;
41.分配模块,用于确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据中的部分数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口对所述部分数据进行动态文件信息表生成阶段封装。
42.在其中一个实施例中,所述装置还包括建立模块和查询模块:
43.所述建立模块,用于建立查询表,所述查询表包括封装节点的标识以及所述封装节点的n1和n2值;
44.所述查询模块,用于查询所述查询表,确定n1大于n2的第一封装节点和n1小于n2的第二封装节点。
45.在其中一个实施例中,所述分配模块用于:
46.确定所述cb与所述ca满足预定条件:所述cb值与所述ca值相等。
47.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
48.计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2;
49.对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb;
50.确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据中的部分数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口对所述部分数据进行动态文件信息表生成阶段封装。
51.上述封装任务量自适应分配方法、装置和存储介质,通过计算单机cpu和gpu数量和记录单任务p1和p2封装时间,得出p1、p2最大任务数,通过调度将p1封装能力剩余的数据传输至p2封装能力剩余的设备中,从而更加充分的利用算力,提升封装效率。
附图说明
52.图1为一个实施例中封装任务量自适应分配方法流程示意图;
53.图2为一个实施例中封装任务量自适应分配装置的结构框图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.在一个实施例中,如图1所示,提供一种封装任务量自适应分配方法,所述方法包括:
56.s1:计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2。
57.本步骤中,可以通过计算单机cpu和gpu数量和记录单任务文件分割阶段和动态文件信息表生成阶段封装时间,得出文件分割阶段、动态文件信息表生成阶段最大任务数n1和n2。
58.s2:对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb。
59.本步骤中,在确定了每个封装节点的文件分割阶段、动态文件信息表生成阶段最大任务数n1和n2之后,比较n1和n2的值,确定n1大于n2的封装节点为a节点,n1小于n2的封装节点为b节点,对于a节点,计算得到n1与n2的差值ca,对于b节点,计算得到n2与n1的差值cb。
60.s3:确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据中的部分数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口对所述部分数据进行动态文件信息表生成阶段封装。
61.本步骤中,在确定所述cb与所述ca的值之后,将二者进行比较,当二者的关系满足预定的条件时,将第一封装节点的文件分割阶段封装数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口进行动态文件信息表生成阶段封装,从而实现封装任务量的自适应分配。
62.上述封装任务量自适应分配方法,通过计算单机cpu和gpu数量和记录单任务文件分割阶段和动态文件信息表生成阶段封装时间,得出文件分割阶段、动态文件信息表生成阶段最大任务数,通过调度将文件分割阶段封装能力剩余的数据传输至动态文件信息表生成阶段封装能力剩余的设备中,从而更加充分的利用算力,提升封装效率。
63.在其中一个实施例中,所述方法包括:
64.建立查询表,所述查询表包括封装节点的标识以及所述封装节点的n1和n2值;
65.查询所述查询表,确定n1大于n2的第一封装节点和n1小于n2的第二封装节点。
66.具体地,可以建立查询表,在表中包括封装节点的标识以及所述封装节点的n1和n2值,通过查表比较n1和n2值的大小来确定封装节点是a类节点还是b类节点。
67.根据查询表,查找n1大于n2的设备,标记为a1至an,并将设备多余的文件分割阶段任务数,即n1与n2的差值,记录在ca表中,为ca1至can;查找n1小于n2的设备,标记为b1至bn,并将设备多余的动态文件信息表生成阶段任务数,即n2与n1的差值记录为cb1至cbn。
68.在其中一个实施例中,确定所述cb与所述ca满足预定条件,包括:
69.所述cb值与所述ca值相等。
70.具体地,在cb表中查找与ca1任务数相同的设备,如果正好匹配,将ca1对应设备上的文件分割阶段通过网络传输至该设备并调用这台设备的动态文件信息表生成阶段封装接口进行动态文件信息表生成阶段封装。
71.在其中一个实施例中,确定所述cb与所述ca满足预定条件,包括:
72.所述cb值属于由所述ca值的不同倍数构成的区间内。
73.具体地,在cb表中查找与ca1任务数相同的设备,如果不匹配,在cb表中寻找动态文件信息表生成阶段任务数在ca1任务数的0.5倍到1.5倍之间的设备,将ca1对应设备上的文件分割阶段通过网络传输至该设备并调用这台设备的动态文件信息表生成阶段封装接口进行动态文件信息表生成阶段封装。
74.在其中一个实施例中,所述方法包括:
75.确定封装节点的cpu总核心数c1和gpu个数g;
76.记录单个封装任务文件分割阶段时长、动态文件信息表生成阶段任务时长和文件分割阶段计算核心数c2。
77.具体地,通过lscpu命令获取单个封装节点cpu总核心数c1,通过lspci命令获取gpu个数g;
78.记录单个封装任务文件分割阶段时长t1(hours)和动态文件信息表生成阶段任务时长t2(hours),通过查看fil_proofs_multicore_sdr_producers变量,确定文件分割阶段计算核心数c2,该变量为数据准备核心数,c2为封装核心加数据准备核心。
79.在其中一个实施例中,所述方法包括:
80.通过以下公式计算每个封装节点预定时间内文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2,将所述n1和所述n2记录到查询表中;
81.n1=(24h/t1)*(c1/c2);n2=(24h/t2)*g;
82.其中,24h/t1表示24小时可完成1轮文件分割阶段的次数,c1/c2表示同时进行文件分割阶段并行数;24h/t2表示24小时可完成1轮动态文件信息表生成阶段的次数,g表示同时进行动态文件信息表生成阶段可并行数。
83.本步骤中,预定时间被限定为一天(即24小时),也可以是其他的时间段。
84.以下给出本实施例的一个具体实施过程:
85.1.第一封装节点(封装节点a):cpu总核心数40个(通过lscpu命令获取)、gpu 4个(通过lspci命令获取);
86.2.记录单个封装任务文件分割阶段时长1h,文件分割阶段计算核心数2(查看fil_proofs_multicore_sdr_producers变量,该变量为数据准备核心数,c2为封装核心加数据准备核心),动态文件信息表生成阶段任务时长0.5h;
87.3.a节点文件分割阶段每天的最大封装任务数:n1=(24h/1h)*(40/2)=480;
88.4.a节点动态文件信息表生成阶段每天的最大封装任务数:n2=(24h/0.5h)*4=192;
89.5.第二封装节点(封装节点b):cpu总核心数20个(通过lscpu命令获取)、gpu 8个;
90.6.记录单个封装任务文件分割阶段时长2h,文件分割阶段计算核心数2,动态文件信息表生成阶段任务时长0.5h;
91.7.b节点文件分割阶段每天的最大封装任务数:n1=(24h/2h)*(20/2)=120;
92.8.b节点动态文件信息表生成阶段每天的最大封装任务数:n2=(24h/0.5h)*8=384;
93.9.通过上述算法,记录集群中每台设备的n1和n2记录到列表文件l;
94.10.根据列表l,节点a的n1大于n2,标记为a1,多出的文件分割阶段封装数ca1为480-192=288,节点b的n1小于n2,标记为b1,多出的动态文件信息表生成阶段封装数cb1为384-120=264。
95.11.ca1(288)与cb1(264)数量不相等,但cb1在ca1的0.5倍到1.5倍之间,将节点a的文件分割阶段封装数据通过网络传输至节点b并调用节点b的动态文件信息表生成阶段封装接口进行动态文件信息表生成阶段封装。
96.应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
97.在一个实施例中,如图2所示,提供了一种封装任务量自适应分配装置,所述装置包括:
98.计算模块201,用于计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2;
99.确定模块204,用于对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb;
100.分配模块205,用于确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据中的部分数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口对所述部分数据进行动态文件信息表生成阶段封装。
101.在其中一个实施例中,所述装置还包括建立模块202和查询模块203:
102.所述建立模块202,用于建立查询表,所述查询表包括封装节点的标识以及所述封装节点的n1和n2值;
103.所述查询模块203,用于查询所述查询表,确定n1大于n2的第一封装节点和n1小于n2的第二封装节点。
104.在其中一个实施例中,所述分配模块205用于:
105.确定所述cb与所述ca满足预定条件:所述cb值与所述ca值相等。
106.在其中一个实施例中,所述分配模块205用于:
107.确定所述cb与所述ca满足预定条件:所述cb值属于由所述ca值的不同倍数构成的区间内。
108.在其中一个实施例中,所述计算模块201用于:
109.确定封装节点的cpu总核心数c1和gpu个数g;
110.记录单个封装任务文件分割阶段时长、动态文件信息表生成阶段任务时长和文件分割阶段计算核心数c2。
111.在其中一个实施例中,所述计算模块201用于:
112.通过以下公式计算每个封装节点预定时间内文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2,将所述n1和所述n2记录到查询表中;
113.n1=(24h/t1)*(c1/c2);n2=(24h/t2)*g;
114.其中,24h/t1表示24小时可完成1轮文件分割阶段的次数,c1/c2表示同时进行文件分割阶段并行数;24h/t2表示24小时可完成1轮动态文件信息表生成阶段的次数,g表示同时进行动态文件信息表生成阶段可并行数。
115.关于封装任务量自适应分配装置的具体限定可以参见上文中对于封装任务量自适应分配方法的限定,在此不再赘述。上述封装任务量自适应分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
116.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
117.计算每个封装节点预设时间内的文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2;
118.对于n1大于n2的第一封装节点,确定n1与n2的差值ca,对于n1小于n2的第二封装节点,确定n2与n1的差值cb;
119.确定所述cb与所述ca满足预定条件时,将第一封装节点的文件分割阶段封装数据传输至第二封装节点,并调用第二封装节点的动态文件信息表生成阶段封装接口进行动态文件信息表生成阶段封装。
120.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
121.建立查询表,所述查询表包括封装节点的标识以及所述封装节点的n1和n2值;
122.查询所述查询表,确定n1大于n2的第一封装节点和n1小于n2的第二封装节点。
123.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
124.确定所述cb与所述ca满足预定条件:所述cb值与所述ca值相等。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
126.确定所述cb与所述ca满足预定条件:所述cb值属于由所述ca值的不同倍数构成的区间内。
127.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
128.确定封装节点的cpu总核心数c1和gpu个数g;
129.记录单个封装任务文件分割阶段时长、动态文件信息表生成阶段任务时长和文件分割阶段计算核心数c2。
130.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
131.通过以下公式计算每个封装节点预定时间内文件分割阶段最大封装任务数n1和动态文件信息表生成阶段最大封装任务数n2,将所述n1和所述n2记录到查询表中;
132.n1=(24h/t1)*(c1/c2);n2=(24h/t2)*g;
133.其中,24h/t1表示24小时可完成1轮文件分割阶段的次数,c1/c2表示同时进行文件分割阶段并行数;24h/t2表示24小时可完成1轮动态文件信息表生成阶段的次数,g表示同时进行动态文件信息表生成阶段可并行数。
134.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
135.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
136.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献