本发明涉及区块链技术领域,更具体地,涉及一种区块链使能的分布式计算任务卸载方法及系统。
背景技术:
随着移动设备的爆炸式增长,视频流服务和应用已经变得非常流行,在线视频显示出爆炸性的增长趋势,到2019年将占所有消费者互联网流量的80%。为了满足各种用户设备(智能电话、笔记本电脑和台式计算机、电视等)的需求,需要将源视频文件转换为不同格式(比特率、格式、分辨率、编解码器等)的视频文件,这个过程的计算量非常大且耗时。为了解决这个问题,基于云的视频转码平台(集中式视频转码平台)被认为是一种有效的解决方案,并且已经被很多知名公司如Netflix、AmazonPrime、Vimeo、Youtube等采用。目前,基于云的视频转码平台虽然能够提供高质量的视频转码服务,但是仍然存在一些问题:1)由于一般用户到云服务器的距离都比较远,所以视频发送和接收的往返时间比较长。2)上传和下载视频文件对回程链路造成很大的负担。3)视频转码服务的透明度和安全性都比较低。
为了克服基于云的集中式视频转码平台的缺点,许多技术团队(如Transcodium等)尝试利用区块链技术实现“众包”式的计算卸载方式,并设计灵活的货币化机制。同时,随着终端设备存储和计算能力的不断增长,区块链可以通过D2D网络实现,从而构建一个分布式平台。与传统的基于云的视频转码平台相比,区块链使能的计算平台可以通过将较大的视频文件分割成小块并将它们分配给一组计算节点来提供更有效的视频转码服务,整个过程不需要任何中介。内容发布者通过D2D网络与计算节点直接进行交易,这可以减轻回程链路的负担。此外,加密的智能合约可以进一步确保视频转码任务(例如文件大小、文件时长、任务酬劳)的透明性和安全性。
视频转码任务可以看成是计算任务卸载的一个例子,目前,基于区块链使能的计算任务卸载仍处于初级阶段。大多数区块链使能的计算平台随机地选择计算节点,或者只根据股权比例来选择计算节点(例如Theta,Livepeer)。并且目前区块链使能的协同计算的效率和可信度问题还没有得到很好的解决。
技术实现要素:
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的区块链使能的分布式计算任务卸载方法及系统。
第一方面,本发明实施例提供一种区块链使能的分布式计算任务卸载方法,包括:
若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;
基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;
将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;
其中,所述计算节点选择结果为一组被选中的计算候选节点。
第二方面,本发明实施例提供一种区块链使能的分布式计算任务卸载装置,包括:
任务获取模块,用于若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;
任务分配模块,用于基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;
任务发布模块,用于将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;
其中,所述计算节点选择结果为一组被选中的计算候选节点。
第三方面,本发明实施例提供一种区块链使能的分布式计算任务卸载系统,包括:区块链使能的分布式计算任务卸载装置、具有计算需求的节点和计算候选节点;
其中,所述区块链使能的分布式计算任务卸载装置、具有计算需求的节点和计算候选节点处于同一区块链网络中;
所述具有计算需求的节点用于对原始计算任务进行分块,并创建计算任务交易,将所述计算任务交易发布至区块链中,并抵押一部分代币在区块链中用于支付计算任务;
所述计算候选节点用于根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案从所述具有计算需求的节点处下载原始计算任务分块后执行计算任务,在计算任务完成后向区块链提交计算任务完成声明并将计算后的结果发至所述具有计算需求的节点。
第四方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的区块链使能的分布式计算任务卸载方法的步骤。
第五方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的区块链使能的分布式计算任务卸载方法的步骤。
本发明实施例提供的区块链使能的分布式计算任务卸载方法及系统,设计了一个计算节点的评估机制,以便于计算节点选择,该机制不仅考虑了候选节点的股权和信誉,而且考虑了它们的通信和计算能力;采用了两步决策方法,首先选择出一组计算节点,然后设计相关的计算任务调度、功率控制和资源分配方案;能够有效地实现计算收益的最大化、计算工作量的调度同时满足计算任务的QoS需求,提升计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链使能的分布式计算任务卸载方法的流程示意图;
图2为本发明实施例提供的区块链使能的D2D视频转码场景示意图;
图3为本发明实施例提供的区块链使能的分布式计算任务卸载装置的结构示意图;
图4为本发明实施例提供的区块链使能的分布式计算任务卸载系统的结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
计算任务卸载对终端设备的计算和存储资源都提出了很高的要求,终端用户很难单独完成计算任务。为了解决这个问题,区块链技术可以提供一种行之有效的解决方案,利用其去中心化的特性可以实现设备到设备(Device to Device,D2D)网络中分布式的协同计算。在区块链使能的D2D计算系统中,每个计算节点的计算能力和通信能力对计算效率有很大影响,这些都是应该考虑的因素。同时,为了提高计算节点的可信度,计算节点的选择需要引入信誉评价机制。此外,计算任务卸载任务的调度以及通信和计算资源的分配策略也会影响计算任务卸载效率。因此,为了提供可靠高效的计算服务,计算节点的选择、任务调度和资源分配方案的联合设计是一个很重要的问题。有鉴于此,本发明实施例提出了区块链使能的分布式计算任务卸载方法。
如图1所示,为本发明实施例提供的一种区块链使能的分布式计算任务卸载方法的流程示意图,包括:
步骤100、若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;
具体地,本发明实施例所提供的区块链使能的分布式计算任务卸载方法是基于一个分布式计算架构实现的,其中,分布式计算架构包括三个组成部分:节点、加密代币和支持技术,每个组成部分在系统中都起着至关重要的作用。
网络中任意设备都可以作为节点,节点具有多种类型,包括:具有计算需求的节点、计算候选节点和协调节点。其中,具有计算需求的节点可以理解为视频内容发布终端;计算候选节点可以理解为网络上提交了可进行计算交易的空闲设备,等待处理计算任务;被选中的计算候选节点即为挑选出来合作执行计算任务的节点;协调节点主要负责节点间资源分配和信息交换,因此,协调节点必须保持中立且拥有强大的计算和存储能力,基于这种考虑,本发明实施例中将基站或者小区基站(Small Base Station,SBS)作为协调节点。
加密代币是区块链使能系统中的本地交换媒介,是促进大量高频交易的关键。代币的引入为所有节点提供了对系统的访问、发送请求的功率和反映对系统的贡献的状态。当代币在系统中流通时,可以通过直接购买或者通过完成特定的任务(例如执行计算任务)来获得代币。
支持技术包括:区块链、智能合约和验证协议。其中,代币分类账和交易由底层的区块链担保。具体而言,代币或系统中的任何转移都通过PoW、PoS或DPoS等共识机制来批准;新创建的代币的分发由各种参与者(验证者、法官、裁判等)的智能合约规定,以确保系统的良性运行;验证协议保证了高效率正确地执行计算工作,这有助于有效地减少违反规则的情况。
考虑无线网络中一个简单具体的区块链使能D2D计算场景——区块链使能D2D视频转码场景,如图2所示,为本发明实施例提供的区块链使能的D2D视频转码场景示意图,其中包括SBS,一个内容发布者(具体计算需求的节点)和M个计算候选节点,为了执行视频转码操作,原始视频流文件将被分割成一系列视频分块。当具有转码需求的节点发送将原始视频流转码为不同版本的请求时,它需要向区块链提交一个计算任务交易和一定数量的代币。
值得说明的是,所述计算任务交易中携带的信息包括计算任务分块数量(例如,原始视频流文件被分割为N个视频分块)、计算任务QoS要求(比特率v,单位为比特/秒,超时时间τ,单位为秒)、计算任务分块长度L和计算报酬Q(代币/块)。其中,计算任务分块数量反映了计算作业的工作量。
若协调节点从区块链中获取到具有计算需求的节点所创建的计算任务交易,则开始获取当前网络链路状态和各计算候选节点的特征,其中,当前网络链路状态是指当前下载/上传链路的信道增益。
每个计算节点的计算能力和通信能力对计算效率也有很大影响,这些都是应该考虑的因素。同时,为了提高计算节点的可信度,计算节点的选择需要引入信誉评价机制。
因此,在本发明实施例中采用一个四重元组来描述所述计算候选节点的特征,其中,Sm为累计股份,单位为代币,Vm为信誉值,信誉值是一个分数,为最大发射功率,Fm为可用计算资源,单位为GHz。
累积股份:计算候选节点的累积股权包括自己的股份和其他股东的股份。这更有利于计算候选节点积累更多的股份,并且意味着其他节点将对它的计算能力给予更多的支持,或者计算候选节点在计算生态系统中将扮演更重要的角色。
信誉值:信誉值通过测量节点的历史贡献获得,信誉值可以反映候选节点的资历、成功计算任务的经验、可信度等重要特征,为计算节点的选择提供了很好的参考。
当计算任务完成后,被选中的计算候选节点需要将计算任务完成后的结果上传,为了节省能耗同时保证时延需求,需要根据信道统计量调整被选中的计算候选节点的发射功率,因此,需要知道每个计算候选节点的最大发射功率。
被选中的计算候选节点完成计算任务的能耗是其通信和计算能力的综合反映,如果其具有更好的可用计算资源,则说明其具有较好的通信和计算能力,则能以较少的能量成本完成计算任务。
本发明实施例采用上述四重元组来描述计算候选节点的特征不仅考虑了计算候选节点的股权和信誉,而且考虑了它们的通信和计算能力。
步骤101、基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;
其中,所述计算节点选择结果为一组被选中的计算候选节点;
可以理解的是,计算节点选择结果与所述计算任务交易、当前网络链路状态和各计算候选节点的特征有关。协调节点在获取到当前网络链路状态和各计算候选节点的特征后,基于计算任务交易中携带的信息、当前网络链路状态和各计算候选节点的特征从所有提交了可计算交易的计算候选节点中选中一组计算候选节点作为计算节点去执行计算任务,因此,计算节点选择结果包括一组被选中的计算候选节点。
具体地,基于计算任务交易中携带的计算任务分块数量、计算任务QoS要求和计算任务分块长度,当前下载和上传链路的信道增益,以及各计算候选节点的累计股份、信誉值、最大发射功率和可用计算资源,进行计算节点的选择,计算节点选择的目标是最大化计算总收入,同时满足QoS要求。
计算任务调度策略用计算任务调度矢量表示,将nj个原始计算任务分块分配给被选中的计算候选节点使用n={nj}表示计算任务调度矢量。
功率控制方案用功率控制矢量表示,确定每个被选中的计算候选节点的发射功率使用表示功率控制矢量,其中,表示计算节点选择结果。
计算资源分配方案用计算资源分配矢量表示,确定每个被选中的计算候选节点的计算资源分配,使用表示计算资源分配矢量。
协调节点在获得计算节点选择结果的基础上,以最小化被选中的计算候选节点的总能耗为目标,从而获取最优的计算任务调度策略、功率控制方案和计算资源分配方案。
步骤102、将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;
可以理解的是,协调节点在获得计算节点选择结果,以及最优的计算任务调度策略、功率控制方案和计算资源分配方案之后,需要将所述计算节点选择结果、最优的计算任务调度策略、功率控制方案和计算资源分配方案分布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略从具有计算需求的节点处下载计算任务分块,然后根据所述计算资源分配方案开始执行计算操作,并在计算完成后,根据所述功率控制方案将计算任务完成后的结果发回所述具有计算需求的节点。
值得说明的是,所述协调节点、计算候选节点以及具有计算需求的节点处于同一区块链中。
本发明实施例提供的区块链使能的分布式计算任务卸载方法,设计了一个计算节点的评估机制,以便于计算节点选择,该机制不仅考虑了候选节点的股权和信誉,而且考虑了它们的通信和计算能力;采用了两步决策方法,首先选择出一组计算节点,然后设计相关的计算任务调度、功率控制和资源分配方案;能够有效地实现计算收益的最大化、计算工作量的调度同时满足计算任务的QoS需求,有效提升计算效率。
基于上述实施例的内容,所述基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案的步骤,具体为:
采用两步决策方案:
在第一阶段,基于所述计算任务交易、当前网络链路状态和计算候选节点的特征,利用基于DRL技术的计算节点选择算法选择一组计算节点,并在整个时段保持不变;
在第二阶段,基于第一阶段的计算节点选择结果,DRL代理通过利用CSSCA算法求解随机优化问题来获得最优的计算任务调度策略、功率控制方案和计算资源分配方案。
具体地,DRL(Deep reinforcement learning,深度增强学习)技术被广泛认为是解决高维状态空间中复杂控制问题的有效方法,它由一个离线DNN(Deep neural network,深度神经网络)结构组成。DNN可以用相应的状态和动作逼近动作值函数,以及在线动态深度Q学习相来用于动作选择、系统控制和动态网络更新。
为了实现基于DRL技术的计算节点选择算法,首先,让协调节点作为DRL代理,并识别DRL代理的状态空间、动作空间和报酬函数。具体如下:
状态空间:在决策阶段Tk(k=1,2,...)定义系统状态Sk,联合计算任务分块数量(计算作业的工作量Nk)、QoS要求(比特率vk、超时τk)、下载/上传链路的信道增益(gk/hk)以及计算候选节点的累计股份信誉值最大发射功率和可用计算资源给出如下公式:
可以理解的是,基于所述计算任务交易中携带的计算任务分块数量、计算任务QoS要求和计算任务分块长度、当前网络链路状态(gk/hk)和计算候选节点的特征可以确定状态空间Sk。
动作空间:在计算作业被释放后,DRL代理必须从计算候选节点中选择一组计算节点,同时进行计算任务调度、功率控制和计算资源分配方案以完成计算任务。用Ak={ak,nk,Pk,fk}来表示DRL代理在决策时间Tk内的行为。其中当意味着选择作为计算节点,否则在执行动作ak之后,DRL代理从候选节点集合ΦC中选择一组计算节点。为了清楚起见,使用来表示被选中的计算候选节点集合。此外,是计算任务调度矢量,是功率控制矢量,是计算资源分配矢量,其中,为被选中的计算候选节点,为分配给的原始计算任务分块数量,为的发射功率,为的可用计算资源。
报酬函数:计算节点选择的目标是最大化计算收入,同时满足QoS要求。因此,本发明实施例定义即时报酬作为计算节点可以通过协同完成计算任务得到的总收入。具体而言,即时报酬包括两个部分:一是奖励部分,作为股权持有者得到的块奖励(与累积股份相关)和完成计算任务的收入(与信誉值相关),另一个是为了完成计算作业而消耗的能量成本。将报酬函数定义为:
其中,(a)由计算集合得到,即Q(代币/块)是计算节点能够通过成功的计算获得的收入,是归一化后的声誉,其中最大信誉值Vmax来保证ηS和ηE分别是累积股权和单位能耗价格的权重,为在Tk(k=1,2,...)内完成计算工作的总能耗,为在Tk(k=1,2,...)内完成计算工作的总能耗。
值得注意的是,计算任务的完整性通过“转换证明”来维持。被选中的计算候选节点必须将事务提交到区块链上,以声明在指定的超时之前完成了计算作业,否则区块链会将作业标记为中止。为了获得计算奖励,延迟约束即其中,为被选中的计算候选节点完成计算的总延迟,即延迟约束可以用如下式子计算:
其中,为用期望形式表示的下载每个原始计算任务分块的延迟,是每个原始计算任务分块的大小,为从具有计算需求的节点处检索原始计算任务分块的下载速率,为计算延迟,X(CPU周期每bit)表示工作量/强度,为用期望形式表示的将计算后的结果发送给具有计算需求的节点的延迟,v为QoS要求中的比特率,L为计算任务分块长度,为将计算后的结果发送给具有计算需求的节点的传输速率。
其中,下载链路中即从具有计算需求的节点到计算候选节点假设在t时间的信道增益gj(t)具有尺度参数μ的瑞利衰落gj(t)~exp(μ)。并且假设以具有计算需求的节点恒定的功率Γ(以W为单位)发送,并且每个下载链路分配具有带宽Bd的正交子信道。计算候选节点从具有计算需求的节点检索原始计算任务分块的下载速率可以表示为σ2是噪音功率。
其中,设hj(t)为上传链路的信道增益,其也被假定为具有尺度参数μ(即hj(t)~exp(μ))的瑞利衰落。注意g={gj(t)}和h={hj(t)}是独立同分布的(i.i.d.)。假设给每个计算节点分配一个具有带宽Bu的正交子信道,没有来自其他计算节点的干扰。因此,将计算后的结果发送给具有计算需求的节点的传输速率可以由计算,Pj为计算候选节点的发射功率,
因此,可以将报酬函数重写为
其中,κ为能量效率系数。
已知了状态空间,定义了动作空间和报酬函数,利用DRL技术求解使报酬函数最大时的动作空间。
观察动作空间Ak以及奖励函数Rk(Sk,Ak),发现求解使报酬函数最大时的Ak这个问题很难处理,主要面临两个挑战:一,它同时包含了动作空间Ak中的离散变量(ak,nk)和连续变量(Pk,fk)。如果直接解决问题,将导致极大的空间尺寸;二,报酬函数Rk(Sk,Ak)受延迟约束,由于时变的下载/上传链路的信道增益的因素,它涉及随机过程(以期望形式)。为了解决上述两个挑战,本发明实施例提出了一个两步决策方案:在第一阶段,利用基于DRL技术的计算节点选择算法选择一组计算节点,并在整个时段保持不变;在第二阶段,基于第一阶段的计算节点选择结果,DRL代理通过利用CSSCA算法(Constrained stochastic successive convex approximation,约束随机逐次凸逼近)求解随机优化问题来获得最优的计算任务调度策略、功率控制方案和计算资源分配方案。本发明实施例以这种方式,基于两阶段DRL提出的框架得到的操作空间相对较小同时计算复杂度较低。
基于DRL技术的计算节点选择算法的具体流程如下:
步骤a,构造离线DNN:
a1,使用特定策略对控制过程进行足够长的时间仿真,获得相应的状态转移简况profile和Q(S,A)估计值;
其中,Q(S,A)等同于上述实施例中所述的报酬函数。
a2,将状态转移简况和Q(S,A)估计值存储在经验存储器D中;
a3,预训练DNN(主Q网络),输入Q(S,A)和目标Q值;
步骤b,在线学习:
b1,每个执行序列,每个决策时期Tk进行计算节点的选择:
b11,DRL代理选择一个概率为ε随机动作,否则ak=argmaxaQ(Sk,ak),其中,Q(·)由主Q网络估计;
可以理解为DRL代理以概率ε随机选择一个动作,以概率1-ε选择使Q(Sk,ak)最大的那个动作。
b12,执行ak得到计算节点集合
到b12获得了当前观测状态下(当前时刻)的计算节点选择结果。可以理解为针对当前的观测状态(状态空间里的那些参数),已经获得了计算节点选择结果,但是当前观测状态下的计算节点选择结果不一定能解决其它观测状态下的问题。
b2,根据计算节点集合求解最优的计算任务调度策略、功率控制方案和计算资源分配方案:
b21,通过使用CSSCA算法求解随机优化问题P0,获得最优的计算任务调度策略、功率控制方案和计算资源分配方案;
b22,计算每个计算节点的总能量消耗和即时奖励Rk;
步骤c,更新:
c1,观察下一决策时期Tk+1新的状态Sk+1的状态变迁;
c2,存储经历(Sk,Ak,Rk,Sk+1)到经历内存D中;
c3,随机地从内存D中选择一个样本小批量(Si,Ai,Ri,Si+1);
c4,计算目标Q网络中的目标Q值:yi=Ri+γmaxa'Q(Si+1,a');
c5,每G步骤用损失函数更新目标Q网络:L(θ)=[yi-Q(Si,a';θ)]2;
更新神经网络的过程是为了解决未来的时刻,也就是观测状态发生改变时应该做出什么动作,可以说后续的更新会影响用于判断的Q(Sk,ak)值。G一般取几百,也就是每隔几百步更新目标Q网络。
结束。
在第二阶段,基于第一阶段的计算节点选择结果,DRL代理通过利用CSSCA算法求解随机优化问题来获得最优的计算任务调度策略、功率控制方案和计算资源分配方案。
具体地,协调节点在获得计算节点选择结果的基础上,以最小化被选中的计算候选节点的总能耗为目标,采用CSSCA算法获取最优的计算任务调度策略、功率控制方案和计算资源分配方案。
首先构造随机优化问题,如下:
其中,C1保证了任务调度的有效性,C2保证了QoS需求(延迟约束)得到满足,为了保证每个计算节点的发射功率不超过最大功率,提出了约束C3,提出C4来表示计算资源分配约束。
值得注意的是,如果对P0没有可行的解决方案,就意味着所选的计算候选节点不能成功地完成计算任务。在这种情况下,本发明实施例假设总能量消耗是无穷大的。
显然,在变量放宽之后,也即P0可以转化为关于n的凸问题,这可以通过许多现有方法解决。然而,p和f在目标函数和约束C2中均耦合。此外,由于目标函数和约束C2都涉及对非凸/凸函数的期望,因此这是一个用P表示的非凸约束随机优化问题(NCSOP),它面临着两个主要挑战,即非凸性和随机性,以及用随机次梯度和随机截断平面等常用的随机优化技术无法求解,因此,本发明实施例采用CSSCA算法求解上述随机优化问题P0。
使用CSSCA算法求解上述随机优化问题P0的步骤具体为:
输入:ρt,vt,ε,这三个参数是在执行CSSCA算法过程中更新变量用的步长参数,取值均在0-1之间;输出:X*={n*,P*,f*}
步骤1,初始化:n0∈χ;迭代q=0
步骤2,当||nq+1-nq||>ε时执行:
当||Pt+1-Pt||>ε或者||ft+1-ft||>ε时执行:
初始化:
P0∈χ;时刻t=0;
更新代理函数;
解决P0在所给nq条件下得到和f;
更新Pt+1;
t=t+1;
值得说明的是,代理函数是优化问题P0的目标函数的凸近似函数。
步骤3,在迭代q中得到最优值P和f;
步骤4,基于最优值P和f,解决P0得到最优计算任务调度方案nq+1;
步骤5,q=q+1
步骤6,结束。
如图3所示,为本发明实施例提供的区块链使能的分布式计算任务卸载装置的结构示意图,包括:任务获取模块301、任务分配模块302和任务发布模块303,其中,
任务获取模块301,用于若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;
具体地,若任务获取模块301从区块链中获取到具有计算需求的节点所创建的计算任务交易,则开始获取当前网络链路状态和各计算候选节点的特征,其中,当前网络链路状态是指当前下载/上传链路的信道增益。
每个计算节点的计算能力和通信能力对计算效率也有很大影响,这些都是应该考虑的因素。同时,为了提高计算节点的可信度,计算节点的选择需要引入信誉评价机制。
因此,在本发明实施例中采用一个四重元组来描述所述计算候选节点的特征,其中,Sm为累计股份,单位为代币,Vm为信誉值,信誉值是一个分数,为最大发射功率,Fm为可用计算资源,单位为GHz。
累积股份:计算候选节点的累积股权包括自己的股份和其他股东的股份。这更有利于计算候选节点积累更多的股份,并且意味着其他节点将对它的计算能力给予更多的支持,或者计算候选节点在计算生态系统中将扮演更重要的角色。
信誉值:信誉值通过测量节点的相对正贡献获得,信誉值可以反映候选节点的资历、成功计算的历史、可信度等重要特征,为计算节点的选择提供了很好的参考。
当计算任务完成后,被选中的计算候选节点需要将计算任务完成后的结果上传,为了节省能耗同时保证时延需求,需要根据信道统计量调整被选中的计算候选节点的发射功率,因此,需要知道每个计算候选节点的最大发射功率。
被选中的计算候选节点完成计算任务的能耗是其通信和计算能力的综合反映,如果其具有更好的可用计算资源,则说明其具有较好的通信和计算能力,则能以较少的能量成本完成计算任务。
本发明实施例采用上述四重元组来描述计算候选节点的特征不仅考虑了计算候选节点的股权和信誉,而且考虑了它们的通信和计算能力。
任务分配模块302,用于基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;
其中,所述计算节点选择结果为一组被选中的计算候选节点;
可以理解的是,计算节点选择结果与所述计算任务交易、当前网络链路状态和各计算候选节点的特征有关。任务分配模块302在获取到当前网络链路状态和各计算候选节点的特征后,基于计算任务交易中携带的信息、当前网络链路状态和各计算候选节点的特征从所有提交了可计算交易的计算候选节点中选中一组计算候选节点作为计算节点去执行计算任务,因此,计算节点选择结果包括一组被选中的计算候选节点。
具体地,任务分配模块302基于计算任务交易中携带的计算任务分块数量、计算任务QoS要求和计算任务分块长度,当前下载和上传链路的信道增益,以及各计算候选节点的累计股份、信誉值、最大发射功率和可用计算资源,进行计算节点的选择,计算节点选择的目标是最大化计算总收入,同时满足QoS要求。
计算任务调度策略用计算任务调度矢量表示,将nj个原始计算任务分块分配给被选中的计算候选节点使用n={nj}表示计算任务调度矢量。
功率控制方案用功率控制矢量表示,确定每个被选中的计算候选节点的发射功率使用表示功率控制矢量,其中,表示计算节点选择结果。
计算资源分配方案用计算资源分配矢量表示,确定每个被选中的计算候选节点的计算资源分配,使用表示计算资源分配矢量。
任务分配模块302在获得计算节点选择结果的基础上,以最小化被选中的计算候选节点的总能耗为目标,从而获取最优的计算任务调度策略、功率控制方案和计算资源分配方案。
其中,所述任务分配模块302具体用于:
采用两步决策方案:
在第一阶段,基于所述计算任务交易、当前网络链路状态和计算候选节点的特征,利用基于DRL技术的计算节点选择算法选择一组计算节点,并在整个时段保持不变;
在第二阶段,基于第一阶段的计算节点选择结果,DRL代理通过利用CSSCA算法求解随机优化问题来获得最优的计算任务调度策略、功率控制方案和计算资源分配方案。
任务发布模块303,用于将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;
可以理解的是,任务发布模块303在获得计算节点选择结果,以及最优的计算任务调度策略、功率控制方案和计算资源分配方案之后,需要将所述计算节点选择结果、最优的计算任务调度策略、功率控制方案和计算资源分配方案分布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略从具有计算需求的节点处下载计算任务分块,然后根据所述计算资源分配方案开始执行计算操作,并在计算完成后,根据所述功率控制方案将计算任务完成后的结果发回所述具有计算需求的节点。
本发明实施例提供的区块链使能的分布式计算任务卸载装置,设计了一个计算节点的评估机制,以便于计算节点选择,该机制不仅考虑了候选节点的股权和信誉,而且考虑了它们的通信和计算能力;采用了两步决策方法,首先选择出一组计算节点,然后设计相关的计算任务调度、功率控制和资源分配方案;能够有效地实现计算收益的最大化、计算工作量的调度同时满足计算任务的QoS需求,有效提升计算效率。
如图4所示,为本发明实施例提供的区块链使能的分布式计算任务卸载系统的结构示意图,包括:
如上述各实施例所述的区块链使能的分布式计算任务卸载装置402、具有计算需求的节点401和计算候选节点403;
其中,所述区块链使能的分布式计算任务卸载装置402、具有计算需求的节点401和计算候选节点403处于同一区块链网络中;
所述具有计算需求的节点401用于对原始计算任务进行分块,并创建计算任务交易,将所述计算任务交易发布至区块链中,并抵押一部分代币在区块链中用于支付计算任务;
所述计算候选节点403用于根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案从所述具有计算需求的节点处下载原始计算任务分块后执行计算任务,在计算任务完成后向区块链提交计算任务完成声明并将计算后的结果发至所述具有计算需求的节点。
具体地,区块链中的任一节点均可以作为具有计算需求的节点401。
所述具有计算需求的节点401用于对原始计算任务进行分块,并创建计算任务交易,所述计算任务交易中携带原始计算任务分块数量(例如,原始视频流文件被分割为N个视频分块)、计算任务QoS要求(比特率v,单位为比特/秒,超时时间τ,单位为秒)、计算任务分块长度L和计算报酬Q(代币/块)。其中,计算任务分块数量反映了计算作业的工作量。然后所述具有计算需求的节点401将所述计算任务交易发布至区块链中,并抵押一部分代币在区块链中用于支付计算任务。
区块链使能的分布式计算任务卸载装置402用于若获取到所述具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征,并基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果;根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中;
区块链使能的分布式计算任务卸载装置402在前述区块链使能的分布式计算任务卸载装置的实施例中进行了描述,在此不再赘述。
所述计算候选节点403用于根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案从所述具有计算需求的节点处下载原始视频流分块后执行计算任务,在计算任务完成后向区块链提交计算任务完成声明并将计算后的结果发至所述具有计算需求的节点。
具体地,计算候选节点403根据所述计算节点选择结果确定是否为被选中的计算候选节点。然后,被选中的计算候选节点根据所述最优的计算任务调度策略从具有计算需求的节点处下载计算任务分块,然后根据所述计算资源分配方案开始执行计算操作,并在计算完成后,根据所述功率控制方案将计算后的结果发回所述具有计算需求的节点。
本发明实施例提供的区块链使能的分布式计算任务卸载系统,设计了一个计算节点的评估机制,以便于计算节点选择,该机制不仅考虑了候选节点的股权和信誉,而且考虑了它们的通信和计算能力;采用了两步决策方法,首先选择出一组计算节点,然后设计相关的计算任务卸载任务调度、功率控制和资源分配方案;能够有效地实现计算收益的最大化、计算工作量的调度同时满足计算任务卸载任务的QoS需求,有效提升计算效率。
图5为本发明实施例提供的电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储在存储器530上并可在处理器510上运行的计算机程序,以执行上述各方法实施例所提供的区块链使能的分布式计算任务卸载方法,例如包括:若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;其中,所述计算节点选择结果为一组被选中的计算候选节点。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例提供的区块链使能的分布式计算任务卸载方法,例如包括:若获取到具有计算需求的节点所创建的计算任务交易,获取当前网络链路状态和各计算候选节点的特征;基于所述计算任务交易、当前网络链路状态和各计算候选节点的特征确定计算节点选择结果,并根据所述计算节点选择结果获取最优的计算任务调度策略、功率控制方案和计算资源分配方案;将所述最优的计算任务调度策略、功率控制方案和计算资源分配方案以及计算节点选择结果发布到区块链中,以供被选中的计算候选节点根据所述最优的计算任务调度策略、功率控制方案和计算资源分配方案执行计算任务;其中,所述计算节点选择结果为一组被选中的计算候选节点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。