CN113778675A - 一种基于面向区块链网络的计算任务分配系统及方法 - Google Patents
一种基于面向区块链网络的计算任务分配系统及方法 Download PDFInfo
- Publication number
- CN113778675A CN113778675A CN202111024482.0A CN202111024482A CN113778675A CN 113778675 A CN113778675 A CN 113778675A CN 202111024482 A CN202111024482 A CN 202111024482A CN 113778675 A CN113778675 A CN 113778675A
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- terminal
- calculation
- initiator
- 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.)
- Withdrawn
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种基于面向区块链网络的计算任务分配系统及方法,包括:任务发起终端、多个计算终端、智能合约模块和验证终端;任务发起终端用于向智能合约模块发起计算请求任务;智能合约模块将计算请求任务进行分拆,对拆分后任务小块的属性和难易程度匹配到计算终端,进行计算,并输出计算结果;验证终端用于验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。本发明通过智能合约模块基于强化学习方法的任务分配算法,结合用户选择和动态资源对训练任务进行分配,以降低能量消耗。采用深度学习模型,将训练和预测分离,减少由于节点过多造成的时间损耗。
Description
技术领域
本发明涉及区块链网络技术领域,尤其涉及一种基于面向区块链网络的计算任务分配系统及方法。
背景技术
移动边缘计算(Mobile Edge Computing,MEC)主要是为了解决移动设备资源有限的问题,将全部或部分计算密集型任务卸载到边缘网络服务器,降低任务的执行时间和移动终端能耗。当前边缘计算中降低任务延时的途径主要包括两方面,内容缓存和任务卸载。内容缓存是内容提供者将常用内容缓存于边缘节点上,以降低发起人请求内容的延时。任务卸载是考虑将哪些任务在什么时候从终端卸载到边缘节点,已达到在最短时间内完成计算任务的目标,包括两种卸载机制:二进制卸载和部分卸载。
二进制卸载机制决定计算任务是全部卸载到MEC服务器还是全部本地处理,判断标准是:若本地处理的时延大于通信时延与计算处理时延的和,则全部卸载到MEC服务器;若本地处理的时延小于通信时延与计算处理时延的和,则全部本地处理。
部分卸载机制将计算任务划分为多个子任务,一部分子任务在本地设备上执行,一部分子任务卸载到MEC服务器。
区块链网络把发起人发布的计算任务分配到各个边缘节点,通过区块链网络记录所有的任务分配过程,任务卸载节点,任务消耗的算力等信息。现有技术中,无法有效的将任务分配到相匹配的计算终端,如果计算终端分配到无法有效执行的计算任务时,将导致计算终端无法执行计算任务,延误系统的计算处理的时效,而且还消耗系统的运算量。有的任务的整体计算量较大,在进行计算处理时,耗费系统资源较大,造成计算处理时间长,系统对数据处理效率低。而且区块链网络中的每个节点均需要训练和预测,增加了节点的运算量损耗,延误数据处理时效。
发明内容
为了克服上述现有技术中的不足,本发明提供一种基于面向区块链网络的计算任务分配系统,包括:任务发起终端、多个计算终端、智能合约模块和验证终端;
任务发起终端用于向智能合约模块发起计算请求任务;
每个计算终端具有不同的计算训练模型;
智能合约模块用于实时收集网络中任务发起终端发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;对拆分后任务小块的属性和难易程度匹配到计算终端,进行计算,并输出计算结果;
验证终端用于验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;
如果未达到阈值,则削减计算终端的信誉积分;
智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。
进一步需要说明的是,贡献度是基于计算终端完成并验证通过任务小块的数据量来确定。
进一步需要说明的是,计算请求任务的内容包括任务截止时间、任务所需要的存储空间、任务的报酬和任务的类别。
本发明还提供一种基于面向区块链网络的计算任务分配方法,方法包括:
任务发起终端获取发起人触发的计算请求任务;
智能合约模块实时收集网络中任务发起终端发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;
对拆分后任务小块的属性和难易程度匹配到计算终端;
接收到任务小块的计算终端进行计算,并输出计算结果;
验证终端验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;
如果未达到阈值,则削减计算终端的信誉积分;
智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。
进一步需要说明的是,任务发起终端获取发起人触发的计算请求任务的任务用元组mi=<om,dm,dsm,Qm,i>表示,其中om是任务mi的发布时间,任务的截止时间用dm表示,dsm表示该任务所需的存储空间,Qm表示完成该任务的计算终端们所获得的报酬,i代表任务的类别;
系统中发起人的计算请求任务集合为{m1,m2,...,mI},计算请求任务集合服从泊松分布,发起人本地队列也服从泊松分布;
在系统中,一个宏基站MBS覆盖了K个小基站SBS,记为K={0,1,2,…,K},其中0表示MBS;
使用元组<Ck,Sk,Pk>描述SBSk,其中Ck表示SBSk的CPU计算频率,Sk表示它的可用存储容量,Pk代表它的传输发射功率;
使用元组<Ck,Sk,Pk>共同服务N个发起人,标记为U={1,2,3,…,N},每个发起人都连接到了一个小基站,发起人共同维护区块链网络。
进一步需要说明的是,发起人使用元组<cn,sn,dn,pn,pcn>表示;
其中cn代表发起人n的CPU计算频率,cn={cn,1,cn,2,...,cn,I}表示不同种类的CPU计算频率,sn代表发起人的可储存容量,dn表示发起人n可提供的本地交互数据量,pn表示发起人n的传输发射功率,pcn表示成功率;
计算终端匹配对mp=<m,Cm>,表示任务m和计算终端Cm的组合;
计算终端为选中的发起人,有Cm∈U;
分配效用Qm×pcn,Qm任务回报值与pcn发起人成功率的乘积;其中Qm∈(0,1),pcn∈(0,1),则有Qm×pcn∈(0,1)
任务差旅时间,即计算终端发现任务且获取任务所用的时间:
其中rn(t)为下载传输速率。
进一步需要说明的是,发起人训练时间,即计算终端训练模型所用的时间:
其中σi代表执行i类单位量任务所需的CPU周期数;
发起人返回时间,即计算终端传回模型所用的时间:
其中λ是模型参数所占空间,rn′(t)为上传传输速率;
发起人机会成本,发起人下载、执行并返回任务所消耗的成本;
等待分配的时间,即任务发布时刻om到任务分配时刻Ta的差值:
其中,X为xi组成的集合,min(X)为集合X中值最小的元素,max(X)为值最大的元素;
任务分配的目标是保证QoS限制下,最小化能耗和时延,即优化目标是:
s.t.cn,t>0
(8)
任务m在截止时间之前分配,否则无法取得报酬;任务mi只能选择支持i类训练的发起人,并且任务一旦分配完成,则分配结果不能改变。
进一步需要说明的是,智能合约模块管理和协调计算请求任务;收集计算请求任务信息,并且为每一个计算请求任务分配到计算终端;
智能合约模块基于DQN算法的状态空间,动作空间和回报函数进行管理和协调;
1)状态向量:在每个决策时间T中,智能合约监控并且收集的系统信息为:
om和dm:任务的发布时间和截止时间;
dsm:计算终端需要的存储空间;
Qm:报酬;
i:任务的类别;
cn:CPU或GPU对不同种类任务的效率;
sn:计算终端的可用存储空间;
dan:本地交互数据量;
pn:传输发射功率;
Vn:信用积分;
Bn:可用的信道数;
状态向量表示为:
状态向量不光记录了任务的难易程度和分类,还记录了计算终端的属性。
进一步需要说明的是,智能合约模块通过选择能够执行拆分后任务小块的计算终端,权衡任务的难易程度以及计算终端的硬件性能和通信环境,进行任务分配;
从计算终端中选出计算终端训练模型,并为其分配合适的信道;
被选中的计算终端执行拆分后任务小块,并且认为计算终端使用全部的计算能力进行模型训练;
动作向量定义为:
at=(Δt,bt) (10).
假设所有计算终端都是诚实的,并且被分配任务之后直到执行完毕前不会从网络中掉线;
根据计算终端的算力贡献量分发报酬。
进一步需要说明的是,在选择计算终端时,计算终端需要满足以下两个约束条件:
对于分布式系统中的每个计算终端,在被分配任务之后在完成上一个任务后立刻执行,并且在任务截止时间前完成模型提交,因此预计的响应时间应小于QoS,基于时间约束公式,可知:
若计算终端不支持执行该类型的任务则不参与分布式训练,即
cn,i>0 (13)
在任务到达的每一个决策周期中,从状态s执行动作a,即选择计算终端并且为他们分配资源,系统就会转移到下一个状态s′;
智能合约模块得到一个瞬时回报Rt作为评价;基于综合收益公式,定义系统执行完某一个任务的回报函数为:
瞬时回报包含三部分:第一部分代表了执行任务获得的报酬,并且信用积分越高第一部分对应的值相对越大;
第二部分与贡献本地交互数据成正比,代表贡献的数据量越多被选中的概率越大;
第三部分代表执行任务的能量消耗;
回报函数是针对计算终端而言的,δt=1时有回报;但是如果没有被选中δt=0,相应的回报也为0。
从以上技术方案可以看出,本发明具有以下优点:
本发明中通过区块链网络把用户发布的计算任务分配到各个边缘节点,通过区块链网络记录所有的任务分配过程,任务卸载节点,任务消耗的算力等信息。在任务分配方案中,设置了任务参与者的信誉评估机制,以减少系统被恶意攻击的可能;还基于数据并行思想的训练任务分片方案,以最小化不同类型的任务调度响应时间,保障整个任务分配流程的安全性;本发明通过智能合约模块基于强化学习方法的任务分配算法,结合用户选择和动态资源对训练任务进行分配,以降低能量消耗。
本发明为了提高分配到各个节点的任务能够被最高效完成,通过循环神经网络(Recurrent Neural Network,RNN)预测模型,为每一个任务进行针对所有节点的处理时间预测,由于整个网络节点数量众多,所以采用深度学习模型,将训练和预测分离,减少由于节点过多造成的时间损耗。
本发明中有效的将任务分配到相匹配的计算终端,避免或降低计算终端无法有效执行的计算任务,导致延误系统计算处理时效的问题。将任务进行分拆,分拆成任务小块;对拆分后任务小块的属性和难易程度匹配到计算终端。避免任务的整体计算量较大,耗费系统资源较大,造成计算处理时间长的问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于面向区块链网络的计算任务分配系统示意图;
图2为在区块链网络上发起并执行任务的的流程图;
图3为在区块链网络上发起并执行任务的流程图;
图4为基于面向区块链网络的计算任务分配方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种基于面向区块链网络的计算任务分配系统,如图1所示,包括:任务发起终端1、多个计算终端2、智能合约模块3和验证终端4;
任务发起终端1用于向智能合约模块3发起计算请求任务;每个计算终端2具有不同的计算训练模型;
智能合约模块3用于实时收集网络中任务发起终端1发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;对拆分后任务小块的属性和难易程度匹配到计算终端2,进行计算,并输出计算结果;
验证终端4用于验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;如果未达到阈值,则削减计算终端2的信誉积分;智能合约模块3根据计算终端2的贡献度给计算终端2分发相应的奖励。
本发明是面向区块链的计算任务分配方法,本发明使用区块链网络在移动终端之间建立信任和共识机制;使用循环神经网络对任务的到达数量和任务内容的流行度进行预测;使用深度强化学习对计算任务和缓存任务进行分配。
移动终端可以以各种形式来实施。例如,本发明实施例中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,PersonalDigital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable MediaPlayer)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
本发明中的任务发起终端1、多个计算终端2和验证终端4即为区块链中的节点终端。所有用户通过区块链网络,以点对点通信的方式在区块链网络中进行交互,来完成资源分配工作。
任务发起人是向系统提出训练任务请求的用户,任何加入区块链网络的用户都可以发起任务请求。任务由众多计算参与者也就是计算终端2执行,每个计算参与者也就是计算终端2会训练得到不同的模型,系统再将这些模型经过聚合算法处理之后得到最终模型结果,这是一种分布式训练模型的方式。在此过程中,验证参与者也就是验证终端4通过验证各个计算参与者提供模型的准确度来判断训练结果是否有效,进而决定在聚合时是否录入此模型参数,录入模型参数的准确度很大程度上影响着最终模型的准确性。因此验证参与者必须是从用户中推选出来的公信力高的角色。而发起人和计算参与者的角色大多数是由用户来充当。
智能合约模块3作为系统的管理模块,用于收集和实时监控用户的信息,在收到任务以后完成锁定代币、选择用户、分配资源和传回训练结果等操作。
本发明中,当用户需要向其他设备请求算力支持来执行深度学习时,经历的流程如图2所示:用户作为发起人委托区块链的智能合约模块3,将这个任务请求作为一个交易在区块链网络里广播,并锁定发起人账户的指定数量的代币最为报酬。任务内容包括截止时间、所需要的存储空间、报酬和任务的类别。另外,将任务的内容和数据例如训练的目标(准确率阈值)、数据集、默认模型、决策接口等是存储在IPFS(Inter-Planetary FileSystem)中的。
智能合约模块3实时收集网络中的在线用户上报的属性,例如CPU计算频率、可用存储容量和计算能力等。任务的数据集通过智能合约被拆分成小块,这与数据并行的分布式训练有关,具体过程可以通过tensorflow多GPU并行来实现。智能合约模块3根据系统中在线用户的属性和任务的难易程度,例如匹配用户是否可以执行此类任务等规则选择是否可担任计算参与者,并且发送任务信息给参与者。
计算终端2将通过任务地址链接访问IPFS来获取并执行小块任务。在此后每一轮训练过程中:
1)计算参与者独立完成前向计算和后向计算,并得到模型参数的更新量;
2)向周围节点广播更新的参数;
3)根据智能合约模块3的聚合结果将模型参数进行同步更新。
计算终端2将工作结果和数据证明(广播员和参与者的数字签名,证明数据来自于此深度学习任务)写在链上,并返回给智能合约模块3。
验证终端4验证计算终端2的工作结果的正确性。测试集在任务中提取。如果准确率达到阈值,则任务结束前会释放托管费用作为劳务。如果没有达到阈值,则计算终端2的信誉积分会被削减。在这里,因为测试集远小于训练集,验证模型准确率的难度和时延远远小于训练模型,所以不必进行分布式计算。
智能合约模块3根据联合平均算法再对验证过的模型进行优化。最后,根据贡献(是否完成任务和提供的数据量)的大小给计算终端2分发相应的奖励。
本发明涉及的基于面向区块链网络的计算任务分配系统可以实现在硬件,软件,固件或它们的任何组合。所述的各种特征为模块,单元或组件可以一起实现在集成逻辑装置或分开作为离散的但可互操作的逻辑器件或其他硬件设备。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路器件,诸如集成电路芯片或芯片组。
如果在硬件中实现,本发明涉及一种装置,例如可以作为处理器或者集成电路装置,诸如集成电路芯片或芯片组。可替换地或附加地,如果软件或固件中实现,所述技术可实现至少部分地由计算机可读的数据存储介质,包括指令,当执行时,使处理器执行一个或更多的上述方法。例如,计算机可读的数据存储介质可以存储诸如由处理器执行的指令。
所述代码或指令可以是软件和/或固件由处理电路包括一个或多个处理器执行,如一个或多个数字信号处理器(DSP),通用微处理器,特定应用集成电路(ASICs),现场可编程门阵列(FPGA),或者其它等价物把集成电路或离散逻辑电路。因此,术语“处理器,”由于在用于本文时可以指任何前述结构或任何其它的结构更适于实现的这里所描述的技术。另外,在一些方面,本公开中所描述的功能可以提供在软件模块和硬件模块。
作为本发明的一种实施例,任务分配分配过程是基于区块链的智能合约来实现的,具体架构设计如图3所示。
最底层是物理层,包含了移动设备、基站、区块链数据存储和IPFS文件存储服务,区块链数据存储了任务的元数据,IPFS文件存储服务存储了任务的完整数据。
然后向上是深度学习层,包含数据接口、训练集、测试集、模型训练四个模块,由数据接口获取深度学习的相关数据和参数,进行模型训练,最后返回给智能合约。
再上一层是网络传输层,包含了区块链的网络传输协议和IPFS的对等网络传输协议,区块链的网络传输协议负责传输任务的元数据,IPFS的传输协议负责传输任务的完整数据。
最上层是智能合约,智能合约是转换成了以太坊可用的Solidity语言,运行在以太坊虚拟机(EVM)上。它包含了三个部分:第一部分是监测用户属性,负责接收移动终端发来的属性等数据;第二部分是分布式训练调度层,负责协调各参与者之间的协作,负责聚合参与者们的模型并分发新模型。第三部分是发起任务时系统的预处理部分,负责接收和预处理发起人发出的任务请求选择参与者之后将任务元数据发送给参与者,最后将训练结果返回给发起人。
基于上述系统本发明还提供了一种基于面向区块链网络的计算任务分配方法,如图4所示,方法包括:
S101,任务发起终端获取发起人触发的计算请求任务;
S102,智能合约模块实时收集网络中任务发起终端发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;
S103,对拆分后任务小块的属性和难易程度匹配到计算终端;
S104,接收到任务小块的计算终端进行计算,并输出计算结果;
S105,验证终端验证计算结果的准确率;
S1051,如果准确率达到阈值,则计算任务结束;
S1052,如果未达到阈值,则削减计算终端的信誉积分;
这里可以将未达到阈值的任务小块由智能合约模块再分配给其他计算终端进行处理。
当然也可以由该计算终端继续处理,如果仍未达到阈值,再分配给其他计算终端进行处理,以满足准确率达到阈值。
S106,智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。
具体来讲,任务发起终端获取发起人触发的计算请求任务的任务用元组mi=<om,dm,dsm,Qm,i>表示,其中om是任务mi的发布时间,任务的截止时间用dm表示,dsm表示该任务所需的存储空间,Qm表示完成该任务的计算终端们所获得的报酬,i代表任务的类别;
系统中发起人的计算请求任务集合为{m1,m2,...,mI},计算请求任务集合服从泊松分布,发起人本地队列也服从泊松分布;
在系统中,一个宏基站MBS覆盖了K个小基站SBS,记为K={0,1,2,...,K},其中0表示MBS;
使用元组<Ck,Sk,Pk>描述SBSk,其中Ck表示SBSk的CPU计算频率,Sk表示它的可用存储容量,Pk代表它的传输发射功率;
使用元组<Ck,Sk,Pk>共同服务N个发起人,标记为U={1,2,3,...,N},每个发起人都连接到了一个小基站,发起人共同维护区块链网络。
发起人使用元组<cn,sn,dn,pn,pcn>表示;
其中cn代表发起人n的CPU计算频率,cn={cn,1,cn,2,...,cn,I}表示不同种类的CPU计算频率,sn代表发起人的可储存容量,dn表示发起人n可提供的本地交互数据量,pn表示发起人n的传输发射功率,pcn表示成功率;
计算终端匹配对mp=<m,Cm>,表示任务m和计算终端Cm的组合;
计算终端为选中的发起人,有Cm∈U;
分配效用Qm×pcn,Qm任务回报值与pcn发起人成功率的乘积;其中Qm∈(0,1),pcn∈(0,1),则有Qm×pcn∈(0,1)
任务差旅时间,即计算终端发现任务且获取任务所用的时间:
其中rn(t)为下载传输速率。
发起人训练时间,即计算终端训练模型所用的时间:
其中σi代表执行i类单位量任务所需的CPU周期数;
发起人返回时间,即计算终端传回模型所用的时间:
其中λ是模型参数所占空间,rn′(t)为上传传输速率;
发起人机会成本,发起人下载、执行并返回任务所消耗的成本;
等待分配的时间,即任务发布时刻om到任务分配时刻Ta的差值:
其中,X为xi组成的集合,min(X)为集合X中值最小的元素,max(X)为值最大的元素;
任务分配的目标是保证QoS限制下,最小化能耗和时延,即优化目标是:
s.t.cn,t>0
(8)
任务m在截止时间之前分配,否则无法取得报酬;任务mi只能选择支持i类训练的发起人,并且任务一旦分配完成,则分配结果不能改变。
本发明的方法中涉及的任务分配算法是多用户训练任务调度问题,通常认为任务是随机到达智能合约的。那么对于整个分布式训练系统而言,需要等待所有任务到达或者预知任务到达后进行任务分配,否则无法找到全局最优的分配方案。即当前任务的分配与后续到达任务的分配相关。当前任务最短响应时间的分配可能会延长后续任务的响应时间,进而使系统的平均响应时间增大。当前任务最大收益的分配可能会影响后续任务的收益,进而系统单位时间内的总收益变小。
本发明中,多用户分布式训练任务的调度成为一个动态规划问题。先前任务分配对后续任务的分配具有一定的影响,而当前任务的分配决策仅和当前任务的所需存储空间等任务属性有关,所以只需要明确当前任务的属性和用户的属性,就能根据优化目标确定将任务分配给哪些用户集合执行。实际上,把每一次任务分配看成是一个任务决策,在完整的调度方案中包含多个决策过程。通过上述讨论,认为任务到达的概率服从泊松分布,把任务调度过程看成一个马尔可夫决策过程(Markov Decision Process,MDP)。
在这个场景中,智能合约作为智能体,负责管理和协调任务和用户之间的关系。具体工作职责是收集系统状态信息,并且为每一个请求做决策。基于DQN算法的状态空间,动作空间和回报函数如下所示:
智能合约模块管理和协调计算请求任务;收集计算请求任务信息,并且为每一个计算请求任务分配到计算终端;
智能合约模块基于DQN算法的状态空间,动作空间和回报函数进行管理和协调;
1)状态向量:在每个决策时间T中,智能合约监控并且收集的系统信息为:
om和dm:任务的发布时间和截止时间;
dsm:计算终端需要的存储空间;
Qm:报酬;
i:任务的类别;
cn:CPU或GPU对不同种类任务的效率;
sn:计算终端的可用存储空间;
dan:本地交互数据量;
pn:传输发射功率;
Vn:信用积分;
Bn:可用的信道数;
状态向量表示为:
状态向量不光记录了任务的难易程度和分类,还记录了计算终端的属性。
智能合约模块通过选择能够执行拆分后任务小块的计算终端,权衡任务的难易程度以及计算终端的硬件性能和通信环境,进行任务分配;
从计算终端中选出计算终端训练模型,并为其分配合适的信道;
被选中的计算终端执行拆分后任务小块,并且认为计算终端使用全部的计算能力进行模型训练;
动作向量定义为:
at=(Δt,bt) (10).
假设所有计算终端都是诚实的,并且被分配任务之后直到执行完毕前不会从网络中掉线;
根据计算终端的算力贡献量分发报酬。
本发明的方法中,在选择计算终端时,计算终端需要满足以下两个约束条件:
对于分布式系统中的每个计算终端,在被分配任务之后在完成上一个任务后立刻执行,并且在任务截止时间前完成模型提交,因此预计的响应时间应小于QoS,基于时间约束公式,可知:
若计算终端不支持执行该类型的任务则不参与分布式训练,即
cn,i>0 (13)
在任务到达的每一个决策周期中,从状态s执行动作a,即选择计算终端并且为他们分配资源,系统就会转移到下一个状态s′;
智能合约模块得到一个瞬时回报Rt作为评价;基于综合收益公式,定义系统执行完某一个任务的回报函数为:
瞬时回报包含三部分:第一部分代表了执行任务获得的报酬,并且信用积分越高第一部分对应的值相对越大;
第二部分与贡献本地交互数据成正比,代表贡献的数据量越多被选中的概率越大;
第三部分代表执行任务的能量消耗;
回报函数是针对计算终端而言的,δt=1时有回报;但是如果没有被选中δt=0,相应的回报也为0。
本发明中通过区块链网络把用户发布的计算任务分配到各个边缘节点,通过区块链网络记录所有的任务分配过程,任务卸载节点,任务消耗的算力等信息。在任务分配方案中,设置了任务参与者的信誉评估机制,以减少系统被恶意攻击的可能;还基于数据并行思想的训练任务分片方案,以最小化不同类型的任务调度响应时间,保障整个任务分配流程的安全性;本发明通过智能合约模块基于强化学习方法的任务分配算法,结合用户选择和动态资源对训练任务进行分配,以降低能量消耗。
本发明为了提高分配到各个节点的任务能够被最高效完成,通过循环神经网络(Recurrent Neural Network,RNN)预测模型,为每一个任务进行针对所有节点的处理时间预测,由于整个网络节点数量众多,所以采用深度学习模型,将训练和预测分离,减少由于节点过多造成的时间损耗。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于面向区块链网络的计算任务分配系统,其特征在于,包括:任务发起终端、多个计算终端、智能合约模块和验证终端;
任务发起终端用于向智能合约模块发起计算请求任务;
每个计算终端具有不同的计算训练模型;
智能合约模块用于实时收集网络中任务发起终端发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;对拆分后任务小块的属性和难易程度匹配到计算终端,进行计算,并输出计算结果;
验证终端用于验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;
如果未达到阈值,则削减计算终端的信誉积分;
智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。
2.根据权利要求1所述的基于面向区块链网络的计算任务分配系统,其特征在于,
贡献度是基于计算终端完成并验证通过任务小块的数据量来确定。
3.根据权利要求1所述的基于面向区块链网络的计算任务分配系统,其特征在于,
计算请求任务的内容包括任务截止时间、任务所需要的存储空间、任务的报酬和任务的类别。
4.一种基于面向区块链网络的计算任务分配方法,其特征在于,方法包括:
任务发起终端获取发起人触发的计算请求任务;
智能合约模块实时收集网络中任务发起终端发起的计算请求任务,将计算请求任务进行分拆,分拆成任务小块;
对拆分后任务小块的属性和难易程度匹配到计算终端;
接收到任务小块的计算终端进行计算,并输出计算结果;
验证终端验证计算结果的准确率,如果准确率达到阈值,则计算任务结束;
如果未达到阈值,则削减计算终端的信誉积分;
智能合约模块根据计算终端的贡献度给计算终端分发相应的奖励。
5.根据权利要求4所述的基于面向区块链网络的计算任务分配方法,其特征在于,
任务发起终端获取发起人触发的计算请求任务的任务用元组mi=<om,dm,dsm,Qm,i>表示,其中om是任务mi的发布时间,任务的截止时间用dm表示,dsm表示该任务所需的存储空间,Qm表示完成该任务的计算终端们所获得的报酬,i代表任务的类别;
系统中发起人的计算请求任务集合为{m1,m2,...,mI},计算请求任务集合服从泊松分布,发起人本地队列也服从泊松分布;
在系统中,一个宏基站MBS覆盖了K个小基站SBS,记为K={0,1,2,...,K},其中0表示MBS;
使用元组<Ck,Sk,Pk>描述SBSk,其中Ck表示SBSk的CPU计算频率,Sk表示它的可用存储容量,Pk代表它的传输发射功率;
使用元组<Ck,Sk,Pk>共同服务N个发起人,标记为U={1,2,3,...,N},每个发起人都连接到了一个小基站,发起人共同维护区块链网络。
6.根据权利要求5所述的基于面向区块链网络的计算任务分配方法,其特征在于,
发起人使用元组<cn,sn,dn,pn,pcn>表示;
其中cn代表发起人n的CPU计算频率,cn={cn,1,cn,2,...,cn,I}表示不同种类的CPU计算频率,sn代表发起人的可储存容量,dn表示发起人n可提供的本地交互数据量,pn表示发起人n的传输发射功率,pcn表示成功率;
计算终端匹配对mp=<m,Cm>,表示任务m和计算终端Cm的组合;
计算终端为选中的发起人,有Cm∈U;
分配效用Qm×pcn,Qm任务回报值与pcn发起人成功率的乘积;其中Qm∈(0,1),pcn∈(0,1),则有Qm×pcn∈(0,1)
任务差旅时间,即计算终端发现任务且获取任务所用的时间:
其中rn(t)为下载传输速率。
7.根据权利要求6所述的基于面向区块链网络的计算任务分配方法,其特征在于,
发起人训练时间,即计算终端训练模型所用的时间:
其中σi代表执行i类单位量任务所需的CPU周期数;
发起人返回时间,即计算终端传回模型所用的时间:
其中λ是模型参数所占空间,rn′(t)为上传传输速率;
发起人机会成本,发起人下载、执行并返回任务所消耗的成本;
等待分配的时间,即任务发布时刻om到任务分配时刻Ta的差值:
其中,X为xi组成的集合,min(X)为集合X中值最小的元素,max(X)为值最大的元素;
任务分配的目标是保证QoS限制下,最小化能耗和时延,即优化目标是:
任务m在截止时间之前分配,否则无法取得报酬;任务mi只能选择支持i类训练的发起人,并且任务一旦分配完成,则分配结果不能改变。
8.根据权利要求4所述的基于面向区块链网络的计算任务分配方法,其特征在于,
智能合约模块管理和协调计算请求任务;收集计算请求任务信息,并且为每一个计算请求任务分配到计算终端;
智能合约模块基于DQN算法的状态空间,动作空间和回报函数进行管理和协调;
1)状态向量:在每个决策时间T中,智能合约监控并且收集的系统信息为:
om和dm:任务的发布时间和截止时间;
dsm:计算终端需要的存储空间;
Qm:报酬;
i:任务的类别;
cn:CPU或GPU对不同种类任务的效率;
sn:计算终端的可用存储空间;
dan:本地交互数据量;
pn:传输发射功率;
Vn:信用积分;
Bn:可用的信道数;
状态向量表示为:
状态向量不光记录了任务的难易程度和分类,还记录了计算终端的属性。
9.根据权利要求8所述的基于面向区块链网络的计算任务分配方法,其特征在于,
智能合约模块通过选择能够执行拆分后任务小块的计算终端,权衡任务的难易程度以及计算终端的硬件性能和通信环境,进行任务分配;
从计算终端中选出计算终端训练模型,并为其分配合适的信道;
被选中的计算终端执行拆分后任务小块,并且认为计算终端使用全部的计算能力进行模型训练;
动作向量定义为:
at=(Δt,bt) (10).
假设所有计算终端都是诚实的,并且被分配任务之后直到执行完毕前不会从网络中掉线;
根据计算终端的算力贡献量分发报酬。
10.根据权利要求9所述的基于面向区块链网络的计算任务分配方法,其特征在于,
在选择计算终端时,计算终端需要满足以下两个约束条件:
对于分布式系统中的每个计算终端,在被分配任务之后在完成上一个任务后立刻执行,并且在任务截止时间前完成模型提交,因此预计的响应时间应小于QoS,基于时间约束公式,可知:
若计算终端不支持执行该类型的任务则不参与分布式训练,即
cn,i>0 (13)
在任务到达的每一个决策周期中,从状态s执行动作a,即选择计算终端并且为他们分配资源,系统就会转移到下一个状态s′;
智能合约模块得到一个瞬时回报Rt作为评价;基于综合收益公式,定义系统执行完某一个任务的回报函数为:
瞬时回报包含三部分:第一部分代表了执行任务获得的报酬,并且信用积分越高第一部分对应的值相对越大;
第二部分与贡献本地交互数据成正比,代表贡献的数据量越多被选中的概率越大;
第三部分代表执行任务的能量消耗;
回报函数是针对计算终端而言的,δt=1时有回报;但是如果没有被选中δt=0,相应的回报也为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111024482.0A CN113778675A (zh) | 2021-09-02 | 2021-09-02 | 一种基于面向区块链网络的计算任务分配系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111024482.0A CN113778675A (zh) | 2021-09-02 | 2021-09-02 | 一种基于面向区块链网络的计算任务分配系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113778675A true CN113778675A (zh) | 2021-12-10 |
Family
ID=78840685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111024482.0A Withdrawn CN113778675A (zh) | 2021-09-02 | 2021-09-02 | 一种基于面向区块链网络的计算任务分配系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778675A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114140033A (zh) * | 2022-01-29 | 2022-03-04 | 北京新唐思创教育科技有限公司 | 一种服务人员的分配方法、装置、电子设备及存储介质 |
CN116506444A (zh) * | 2023-06-28 | 2023-07-28 | 北京科技大学 | 一种基于深度强化学习与信誉机制的区块链稳定分片方法 |
-
2021
- 2021-09-02 CN CN202111024482.0A patent/CN113778675A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114140033A (zh) * | 2022-01-29 | 2022-03-04 | 北京新唐思创教育科技有限公司 | 一种服务人员的分配方法、装置、电子设备及存储介质 |
CN114140033B (zh) * | 2022-01-29 | 2022-04-12 | 北京新唐思创教育科技有限公司 | 一种服务人员的分配方法、装置、电子设备及存储介质 |
CN116506444A (zh) * | 2023-06-28 | 2023-07-28 | 北京科技大学 | 一种基于深度强化学习与信誉机制的区块链稳定分片方法 |
CN116506444B (zh) * | 2023-06-28 | 2023-10-17 | 北京科技大学 | 一种基于深度强化学习与信誉机制的区块链稳定分片方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lu et al. | Optimization of lightweight task offloading strategy for mobile edge computing based on deep reinforcement learning | |
Li et al. | An online incentive mechanism for collaborative task offloading in mobile edge computing | |
CN111010434B (zh) | 一种基于网络时延和资源管理的优化任务卸载方法 | |
CN110941667A (zh) | 一种移动边缘计算网络中的计算卸载方法及系统 | |
CN107734558A (zh) | 一种基于多服务器的移动边缘计算控制及资源调度方法 | |
WO2023116460A1 (zh) | 移动边缘计算环境下多用户多任务计算卸载方法及系统 | |
CN113037877B (zh) | 云边端架构下时空数据及资源调度的优化方法 | |
CN107295109A (zh) | 自组织网络云计算中的任务卸载与功率分配联合决策方法 | |
CN111163519A (zh) | 系统收益最大化的无线体域网资源分配与任务卸载算法 | |
CN102662764B (zh) | 一种基于smdp的动态云计算资源优化分配方法 | |
CN110519370B (zh) | 一种基于设施选址问题的边缘计算资源分配方法 | |
CN109474681A (zh) | 移动边缘计算服务器的资源分配方法、系统及服务器系统 | |
Chen et al. | Latency minimization for mobile edge computing networks | |
CN111614754B (zh) | 面向雾计算的成本效率优化的动态自适应任务调度方法 | |
Huang et al. | Enabling DNN acceleration with data and model parallelization over ubiquitous end devices | |
CN102857548A (zh) | 一种移动云计算资源优化配置方法 | |
CN113778675A (zh) | 一种基于面向区块链网络的计算任务分配系统及方法 | |
CN111949409A (zh) | 一种电力无线异构网中计算任务卸载方法及系统 | |
CN107566535B (zh) | 基于Web地图服务并发访问时序规则的自适应负载均衡方法 | |
CN117135131A (zh) | 一种面向云边协同场景的任务资源需求感知方法 | |
CN114449490A (zh) | 基于d2d通信的多任务联合计算卸载与资源分配方法 | |
Tianze et al. | Consumption considered optimal scheme for task offloading in mobile edge computing | |
Zhang et al. | Service pricing and selection for IoT applications offloading in the multi-mobile edge computing systems | |
Li | Optimization of task offloading problem based on simulated annealing algorithm in MEC | |
CN110956500A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211210 |
|
WW01 | Invention patent application withdrawn after publication |