CN116643873A - 算力资源的调度方法、装置、系统、设备及存储介质 - Google Patents

算力资源的调度方法、装置、系统、设备及存储介质 Download PDF

Info

Publication number
CN116643873A
CN116643873A CN202211678038.5A CN202211678038A CN116643873A CN 116643873 A CN116643873 A CN 116643873A CN 202211678038 A CN202211678038 A CN 202211678038A CN 116643873 A CN116643873 A CN 116643873A
Authority
CN
China
Prior art keywords
node
execution
task
information
demand
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.)
Pending
Application number
CN202211678038.5A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202211678038.5A priority Critical patent/CN116643873A/zh
Publication of CN116643873A publication Critical patent/CN116643873A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开实施例公开了一种算力资源的调度方法、装置、系统、设备及存储介质,其中,所述方法包括:响应于区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。

Description

算力资源的调度方法、装置、系统、设备及存储介质
技术领域
本公开涉及但不限于信息技术领域,尤其涉及一种算力资源的调度方法、装置、系统、设备及存储介质。
背景技术
随着信息技术的推进和发展,越来越多的工业和生活物品朝着智能化方向发展,也出现了越来越多的计算设备,如包含图形处理器(Graphics processing unit,GPU)设备或现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)设备等的服务器集群、中小型企业的服务器及个人计算机终端等。每台计算机设备均具有一定的算力,算力是指计算机设备的计算能力,其包括支撑计算的资源以及所呈现出的能力,如存储能力、数据输入/输出能力等。然而,在各种计算机设备中,算力的闲置和算力使用浪费的现象较为严重。
发明内容
有鉴于此,本公开实施例至少提供一种算力资源的调度方法、装置、系统、设备及存储介质。
本公开实施例的技术方案是这样实现的:
本公开实施例提供一种算力资源的调度方法,应用于区块链网络中的合约服务器,所述方法包括:
响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;
确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;
基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
本公开实施例提供一种算力资源的调度方法,应用于区块链网络中的代理节点群,所述方法包括:
接收所述区块链网络中的第一需求节点提交的算力需求请求;
将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
本公开实施例提供一种算力资源的调度系统,包括位于区块链网络中的合约服务器、至少一个需求节点、至少一个执行节点;其中,
所述需求节点用于向所述合约服务器提交算力需求请求;
所述合约服务器用于:响应于所述至少一个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述至少一个执行节点中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务;
所述执行节点用于:在接收到任务响应指令的情况下,响应所述算力任务;并响应于所述合约服务器的调度,执行所述算力任务。
本公开实施例提供一种算力资源的调度装置,应用于区块链网络中的合约服务器,所述装置包括:
发布模块,用于响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;
第一确定模块,用于确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;
第一调度模块,用于基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
本公开实施例提供一种算力资源的调度装置,应用于区块链网络中的代理节点群,所述装置包括:
第一接收模块,用于接收所述区块链网络中的第一需求节点提交的算力需求请求;
第一发送模块,用于将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述算力资源的调度方法中的部分或全部步骤。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述算力资源的调度方法中的部分或全部步骤。
本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述算力资源的调度方法中的部分或全部步骤。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述算力资源的调度方法中的部分或全部步骤。
本公开实施例中,区块链网络中的合约服务器首先响应于该区块链网络中的第一需求节点提交的算力需求请求,基于算力需求请求,在区块链网络中发布算力任务;其次,确定该区块链网络中响应该算力任务的至少一个候选执行节点,并确定每一候选执行节点执行该算力任务的预期收支信息;然后,基于每一候选执行节点的预期收支信息,从各候选执行节点中选取并调度至少一个目标执行节点执行该算力任务。这样,一方面,可以整合区块链网络中至少一个执行节点中的闲散算力为需求节点提供服务,从而实现合理的算力资源配置,提高闲散算力的利用率;另一方面,基于每一候选执行节点的预期收支信息,可以更加合理地从各候选执行节点中选取并调度至少一个目标执行节点执行算力任务,进而可以进一步提高算力资源调度的合理性;又一方面,由于合约服务器、算力需求节点和执行节点均部署在区块链网络中,而区块链网络为具有隐私保护的可信网络,因而可以在需求节点和执行节点之间实现可信且匿名的算力资源调度,从而可以更好地保护算力需求方和算力提供方的隐私以及算力资源调度的安全性,并且由于区块链网络具有去中心化的特性,需求节点和执行节点均可以根据需求灵活自由地接入区块链网络,从而可以更好地满足用户的算力需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1A为本公开实施例提供的一种区块链网络的组成结构示意图;
图1B为本公开实施例提供的一种算力资源的调度方法的实现流程示意图;
图2为本公开实施例提供的一种算力资源的调度方法的实现流程示意图;
图3为本公开实施例提供的一种算力资源的调度系统的实现架构示意图;
图4为本公开实施例提供的一种算力资源的调度方法的实现流程示意图;
图5A为本公开实施例提供的一种区块链网络的组成结构示意图;
图5B为本公开实施例提供的一种算力资源的调度方法的实现流程示意图;
图6A为本公开实施例提供的一种算力资源的调度系统的组成结构示意图;
图6B为本公开实施例提供的一种算力资源的调度系统的组成结构示意图;
图6C为本公开实施例提供的一种算力资源的调度系统的组成结构示意图;
图6D为本公开实施例提供的一种算力资源的调度系统的组成结构示意图;
图7A为本公开实施例提供的一种算力资源的调度系统的组成结构示意图;
图7B为本公开实施例提供的一种算力资源的调度方法的实现流程示意图;
图8A为本公开实施例提供的一种算力资源的调度装置的组成结构示意图;
图8B为本公开实施例提供的一种算力资源的调度装置的组成结构示意图;
图9为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
相关技术中的算力资源的调度方法中,主要是以公有云厂商售卖算力资源或租赁厂商租赁算力资源的方式进行算力资源的调度,属于以算力运营商为中心的电子商务模式,无法很好地整合不同计算设备中的闲散算力资源。
本公开实施例提供一种算力资源的调度方法,该方法可以应用于区块链网络中,由区块链网络中的合约服务器执行。区块链网络中的合约服务器首先响应于该区块链网络中的第一需求节点提交的算力需求请求,基于算力需求请求,在区块链网络中发布算力任务;其次,确定该区块链网络中响应该算力任务的至少一个候选执行节点,并确定每一候选执行节点执行该算力任务的预期收支信息;然后,基于每一候选执行节点的预期收支信息,从各候选执行节点中选取并调度至少一个目标执行节点执行该算力任务。这样,可以整合区块链网络中至少一个执行节点中的闲散算力为需求节点提供服务,从而实现合理的算力资源配置,提高闲散算力的利用率,并能基于区块链网络更好地保护算力需求方与算力提供方的隐私以及算力资源调度的安全性,而且需求节点和执行节点均可以根据需求灵活自由地接入区块链网络,从而可以更好地满足用户的算力需求。
在本公开实施例中,该区块链网络可以是任意合适的基于区块链技术建立的去中心化的分布式网络,该分布式网络可以是由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)形成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在区块链网络中,任何机器如服务器、用户终端都可以加入而成为节点,节点之间可以通过无线网络或有线网络互联互通。例如,区块链网络中的节点可以包括多种类型的计算机设备,如大小型计算机,各类工业设备,各类生活电子设备等,其中,生活电子设备可以是用户设备(UserEquipment,UE)、具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等等。
图1A为本公开实施例提供的一种区块链网络的组成结构示意图,如图1A所示,本公开实施例提供的区块链网络100中的节点可以包括合约服务器110、至少一个需求节点120和至少一个执行节点130,其中,
需求节点120,用于向合约服务器110提交算力需求请求;
合约服务器110,用于:响应于至少一个需求节点120中的第一需求节点121提交的算力需求请求,基于该算力需求请求,在区块链网络100中发布算力任务;确定至少一个执行节点130中响应该算力任务的至少一个候选执行节点131,并确定每一候选执行节点131执行该算力任务的预期收支信息;基于每一候选执行节点131的预期收支信息,从各候选执行节点131中选取并调度至少一个目标执行节点131a执行该算力任务;
执行节点130,用于:在接收到任务响应指令的情况下,响应区块链网络100中发布的算力任务;并响应于合约服务器110的调度,执行该算力任务。
其中,合约服务器110、需求节点120和执行节点130均可以是在区块链网络中注册的任意合适的计算机设备,例如服务器、笔记本电脑、平板电脑、台式计算机、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。可以理解的是,合约服务器110、需求节点120和执行节点130均可以是物理服务器、虚拟机、云服务器等中的至少一种。在实施时,合约服务器110、需求节点120和执行节点130均可以仅包括单个的节点,也可以包括分布式部署的多个节点,这里并不限定。例如,合约服务器可以是分布式部署的服务器集群或大型数据中心,需求节点和执行节点均可以是个人终端或企业小型数据中心。可以理解的是,个人终端或企业小型数据中心等计算机设备可以以需求节点或执行节点的角色接入区块链网络,也可以在区块链网络中既作为需求节点也作为执行节点,本公开实施例对此并不限定。
图1B为本公开实施例提供的一种算力资源的调度方法的实现流程示意图,如图1B所示,该方法包括如下步骤S101至步骤S103:
步骤S101,响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务。
这里,第一需求节点可以是区块链网络中的各需求节点中有算力需求的节点。算力需求请求可以是待使用算力进行数据计算和/或存储等处理的需求,第一需求节点可以根据实际业务需求向合约服务器提交算力需求请求。在实施时,算力需求请求中可以包括但不限于预期算力需求量、待执行的算力任务、待处理的数据、待处理的数据大小、数据处理类型、报酬金额、需求节点标识、需求节点的公钥、需求节点的信用等级等信息中的至少一种。其中,预期算力需求量指的是预期的对数据进行处理所需要的算力资源量,可以是用户设定的,也可以是第一需求节点根据实际待执行的算力任务、待处理的数据大小和/或数据处理类型等预估得到的。
合约服务器在接收到第一需求节点提交的算力需求请求后,基于该算力需求请求,确定算力任务,并在区块链网络中发布该至少一个算力任务。在实施时,可以根据算力需求请求中实际携带的信息,采用合适的方式基于算力需求请求确定算力任务。例如,在算力需求请求中包括算力任务的情况下,可以对算力需求请求进行解析,得到该算力需求任务,并在区块链网络中发布该算力任务。又如,在算力需求请求中包括待处理的数据和数据处理类型的情况下,可以基于待处理的数据和数据处理类型,生成相应的算力任务。
在一些实施方式中,合约服务器可以基于第一需求节点提交的算力需求请求,在区块链网络中发布一个算力任务。通过执行该算力任务可以实现该算力需求请求所对应的数据处理需求。
在一些实施方式中,合约服务器可以基于第一需求节点提交的算力需求请求,在区块链网络中发布两个以上的算力任务。通过执行该两个以上的算力任务,可以共同实现该算力需求请求所对应的数据处理需求,从而可以在算力需求请求的预期算力需求量较大的情况下,将相应的数据处理需求拆分至多个预期算力需求量较小的算力任务中来实现,进而可以更好地整合各执行节点中的闲散算力为需求节点提供服务。
步骤S102,确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息。
这里,合约服务器在区块链网络中发布算力任务后,区块链网络中的各节点均可以接收到该算力任务,并能通过区块链网络中的共识机制使得各节点接收到的算力任务一致。
区块链网络中的执行节点可以在接收到合约服务器发布的算力任务后,对该算力任务进行响应或者不响应。在实施时,执行节点可以在接收到特定的任务响应指令的情况下,响应该算力任务。例如,在执行节点为用户终端的情况下,该终端接收到合约服务器发布的算力任务后,可以在终端的交互界面中显示该算力任务,使用该终端的用户可以通过在该交互界面中执行的任务响应操作,向该终端发送任务响应指令,终端可以在接收到该任务响应指令之后,响应该算力任务。又如,执行节点在接收到合约服务器发布的算力任务后,可以基于执行节点自身的负荷状态信息、算力任务的预期算力需求量、和/或待处理的数据大小等,确定自身是否具备执行该算力任务的能力,在确定具备执行该算力任务的能力的情况下,响应该算力任务。
在一些实施方式中,执行节点可以通过在区块链网络中上报该执行节点自身的负荷状态信息来响应该算力任务,合约服务器接收到该执行节点上报的负荷状态信息后,可以将该执行节点确定为候选执行节点。
在一些实施方式中,执行节点可以通过在区块链网络中广播任务响应消息的方式来响应该算力任务,合约服务器接收到该任务响应消息后,可以将该执行节点确定为候选执行节点。
在一些实施方式中,合约服务器可以将在算力任务发布后的第一响应时长内响应该算力任务的执行节点确定为候选执行节点。其中,第一响应时长可以是预先设定的,也可以是合约服务器中默认的,本公开实施例对此并不限定。
在一些实施方式中,合约服务器可以将响应该算力任务的多个执行节点中满足预设条件的至少一个执行节点确定为候选执行节点。预设条件可以是本领域技术人员根据实际情况设定的,本公开实施例对此并不限定。例如,预设条件可以包括但不限定于执行节点中空闲算力超过设定的算力阈值、执行节点的信用等级达到设定的等级阈值、执行节点为空闲状态等中的至少之一。
合约服务器在确定至少一个候选执行节点后,可以确定每一候选执行节点执行该算力任务的预期收支信息。候选执行节点执行该算力任务的预期收支信息可以包括但不限于预期成本、预期收益等中的至少之一。其中,预期成本可以包括但不限于设备成本、预期时间成本、交易成本、预期网络流量成本;设备成本可以包括但不限于硬件购买成本、电力消耗成本等中的至少之一;交易成本可以包括但不限于在单次算力资源的调度过程中作为交易佣金支付给合约服务器的激励成本。在实施时,本领域技术人员可以根据实际情况采用合适的方式确定候选执行节点执行算力任务的预期收支信息,本公开实施例对此并不限定。
在一些实施方式中,合约服务器可以直接对每一候选执行节点执行该算力任务的预期收支信息进行计算。
在一些实施方式中,合约服务器可以调度区块链网络中的其他节点计算每一候选执行节点执行该算力任务的预期收支信息。例如,区块链网络中还可以包括至少一个计算节点,合约服务器可以调度该至少一个计算节点计算每一候选执行节点执行该算力任务的预期收支信息,并从该至少一个计算节点中获取每一候选执行节点执行该算力任务的预期收支信息。
步骤S103,基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
这里,执行节点的预期收支信息可以反映执行节点执行该算力任务预期获得的收益和/或耗费的成本。在实施时,合约服务器可以基于每一候选执行节点的预期收支信息,从收支合理性、任务执行的可靠性和/或算力的充分利用等方面出发,根据实际情况采用合适的方式从各候选执行节点中选取至少一个目标执行节点,并调度该至少一个目标执行节点执行该算力任务本,公开实施例对此并不限定。
在一些实施方式中,可以将各候选执行节点中预期收益最高的第一数量的候选执行节点确定为目标执行节点。在一些实施方式中,可以将各候选执行节点中预期收益高于设定的收益阈值的候选执行节点确定为目标执行节点。
在一些实施方式中,可以将各候选执行节点中预期成本最低的第二数量的候选执行节点确定为目标执行节点。在一些实施方式中,可以将各候选执行节点中预期成本低于设定的收益阈值的候选执行节点确定为目标执行节点。
本公开实施例中,区块链网络中的合约服务器首先响应于该区块链网络中的第一需求节点提交的算力需求请求,基于算力需求请求,在区块链网络中发布算力任务;其次,确定该区块链网络中响应该算力任务的至少一个候选执行节点,并确定每一候选执行节点执行该算力任务的预期收支信息;然后,基于每一候选执行节点的预期收支信息,从各候选执行节点中选取并调度至少一个目标执行节点执行该算力任务。这样,一方面,可以整合区块链网络中至少一个执行节点中的闲散算力为需求节点提供服务,从而实现合理的算力资源配置,提高闲散算力的利用率;另一方面,基于每一候选执行节点的预期收支信息,可以更加合理地从各候选执行节点中选取并调度至少一个目标执行节点执行算力任务,进而可以进一步提高算力资源调度的合理性;又一方面,由于合约服务器、算力需求节点和执行节点均部署在区块链网络中,而区块链网络为具有隐私保护的可信网络,因而可以在需求节点和执行节点之间实现可信且匿名的算力资源调度,从而可以更好地保护算力需求方和算力提供方的隐私以及算力资源调度的安全性,并且由于区块链网络具有去中心化的特性,需求节点和执行节点均可以根据需求灵活自由地接入区块链网络,从而可以更好地满足用户的算力需求。
在一些实施例中,该算力资源的调度方法还可以包括如下步骤S104:
步骤S104,基于每一所述目标执行节点分别执行所述算力任务的执行信息,向每一所述目标执行节点分配激励。
这里,目标执行节点执行算力任务的执行信息可以包括但不限于执行结果的质量指标、执行速率指标、执行成本指标等中的至少之一。执行结果的质量指标可以包括但不限于执行结果是否准确、多个执行结果的准确率、执行过程是否出错、多次执行过程中的错误次数等中的至少之一。执行速率指标可以包括但不限定于提交任务的时间在各目标执行节点中的顺序、处理任务消耗的时长、数据处理速率等中的至少之一。执行成本指标可以包括但不限于设备成本、时间成本、交易成本、网络流量成本等中的至少之一。
在实施时,合约服务器可以按照设定的激励分配机制,基于每一目标执行节点分别执行算力任务的执行信息,向每一目标执行节点分配激励。其中,激励分配机制可以是本领域技术人员根据实际情况预先设定的,也可以是合约服务器基于历史算力任务中各目标执行节点的历史激励分配结果确定的,本公开实施例并不限定。例如,可以为质量指标表征执行结果的执行质量更高的目标执行节点分配更多的激励。又如,可以为执行速率指标表征任务执行速度更快的目标执行节点分配更多的激励。再如,可以为执行成本指标表征执行算力任务的成本更高的目标执行节点分配更多的激励。
本公开实施例中,区块链网络中的合约服务器基于每一目标执行节点分别执行算力任务的执行信息,向每一目标执行节点分配激励。这样,可以通过激励提高各执行节点响应算力任务的积极性,并实现算力的交易,进而可以进一步提高闲散算力的利用率;并且根据各目标执行节点分别执行算力任务的执行信息进行激励分配,可以进一步提高算力交易的合理性。此外,由于合约服务器、算力需求节点和执行节点均部署在区块链网络中,而区块链网络为具有隐私保护的可信网络,因而可以在需求节点和执行节点之间实现可信的匿名算力交易,从而可以更好地保护交易双方的隐私以及交易的安全性。
在一些实施例中,所述执行信息包括执行结果的质量指标和执行速率指标;上述步骤S104可以包括如下步骤S111至步骤S112:
步骤S111,针对每一所述目标执行节点,基于所述目标执行节点执行所述算力任务的执行结果的质量指标和执行速率指标,确定所述目标执行节点的任务贡献度,并基于所述目标执行节点的任务贡献度和信用信息,确定所述目标执行节点的激励数量;
步骤S112,基于每一所述目标执行节点的激励数量,向每一所述目标执行节点分配激励。
这里,目标执行节点的任务贡献度可以表征该目标执行节点在满足第一需求节点的算力需求的过程中的贡献程度。在实施时,本领域技术人员可以根据实际情况采用合适的方式确定目标执行节点的任务贡献度,本公开实施例对此并不限定。
例如,在执行结果的质量指标越高表征执行结果的质量越好的情况下,各目标执行节点的任务贡献度可以与该目标执行节点执行该算力任务的执行结果的质量指标成正比;在执行结果的质量指标越高表征执行结果的质量越差的情况下,各目标执行节点的任务贡献度可以与该目标执行节点执行该算力任务的执行结果的质量指标成反比。又如,在执行结果的执行速率指标越高表征执行结果的速率越高的情况下,各目标执行节点的任务贡献度可以与该目标执行节点执行该算力任务的执行结果的执行速率指标成正比;在执行结果的执行速率指标越高表征执行结果的速率越低的情况下,各目标执行节点的任务贡献度可以与该目标执行节点执行该算力任务的执行结果的执行速率指标成反比。
目标执行节点的信用信息可以反映目标执行节点在算力资源调度过程中的信用。例如,目标执行节点的信用信息可以包括但不限于信用系数、信用等级、信用积分等中的至少之一。执行节点的信用信息可以是用户根据实际情况设定的,也可以是根据该执行节点在历史的算力资源调度过程中执行算力任务的执行结果的质量指标和/或执行速率指标等确定的,本公开实施例对此并不限定。
在实施时,目标执行节点的激励数量可以与该目标执行节点的任务贡献度和信用信息均成正比。例如,目标执行节点的任务贡献度越高,该目标执行节点的激励数量越多;目标执行节点的信用信息表征该目标执行节点的信用越好,该目标执行节点的激励数量也越多。
在一些实施方式中,可以基于目标执行节点执行算力任务的执行结果的质量指标和执行速率指标的乘积,确定该目标执行节点的任务贡献度;并基于该目标执行节点的任务贡献度、信用系数和设定的基础报酬,确定该目标执行节点的激励数量。
例如,可以采用如下公式1-1所示的方式计算目标执行节点的任务贡献度,以及如下公式1-2所示的方式计算目标执行节点的激励数量:
αi=αsi·αqi (1-1);
Pi=αi·V0·βi (1-2);
其中,第i个提交执行结果的目标执行节点的任务贡献度αi为该目标执行节点的执行速率指标αsi和该目标执行节点的质量指标αqi的乘积,第i个提交执行结果的目标执行节点的激励数量Pi为该目标执行节点的任务贡献度αi、基础报酬V0和该目标执行节点的信用系数βi的乘积,i为正整数,基础报酬V0可以是合约服务器中预先设定的。
各目标执行节点的执行速率指标可以是基于各目标执行节点提交执行结果的顺序依次从设定的取值范围内由小至大选取的。例如,可以根据目标执行节点的数量,从该取值范围内均匀采样与该数量匹配的多个取值,将该多个取值由小至大依次分配给每一提交执行结果的目标执行节点,作为相应的目标执行节点的执行速率指标,也即第i个提交执行结果的目标执行节点的执行速率指标为由小至大排序后的各取值中的第i个取值。在实施时,设定的取值范围可以根据实际情况确定。例如,该取值范围可以为[0.8,1],或者[0.9,1]等。
合约服务器可以直接对各目标执行节点执行算力任务的执行结果进行验证,或者调度区块链网络中的其他节点对各目标执行节点执行算力任务的执行结果进行验证,以确定各目标执行节点的执行结果是否有效。在目标执行节点的执行结果有效的情况下,该目标执行节点的质量指标αqi可以取1;在目标执行节点的执行结果无效的情况下,该目标执行节点的质量指标αqi可以取0。在实施时,可以基于区块链网络中的共识机制,对各目标执行节点执行算力任务的执行结果进行验证。例如,对于同一算力任务,在执行该算力任务的各目标执行节点的执行结果均一致的情况下,可以确定各目标执行节点的执行结果均有效;在执行该算力任务的各目标执行节点的执行结果存在不一致的情况下,对各执行结果的数量进行统计,在某一执行结果的数量最多、且该数量与目标执行节点的总数之比超过设定的比例阈值的情况下,可以确定该执行结果有效,与该执行结果不同的其他执行结果均无效;设定的比例阈值可以例如2/3、3/4、或3/5等。
目标执行节点的信用系数可以是基于该目标执行节点的信用积分确定的。在实施时,目标执行节点的信用积分可以是根据该目标执行节点在历史的算力资源调度过程中执行算力任务的执行结果有效性确定的。例如,可以为每一执行节点设置一个初始的信用积分,在目标执行节点提交一次有效的执行结果后将该目标执行节点的信用积分加1,在目标执行节点提交一次无效的执行结果后将该目标执行节点的信用积分减1。
在一些实施方式中,可以基于目标执行节点的信用积分,确定该目标执行节点的信用等级,并为每一信用等级设置一个相应的信用系数。例如,可以采用如下公式1-3所示的方式,确定目标执行节点的信用系数:
其中,根据第i个目标执行节点的信用积分xi的取值,可以确定该目标执行节点的信用等级为四个等级中的一种,该目标执行节点的信用系数βi与该信用等级对应。例如,在0≤xi<60的情况下,该目标执行节点的信用等级为第一等级(例如差),该第一等级对应的信用系数βi为0,也即该目标执行节点的信用系数βi为0;在60≤xi<75的情况下,该目标执行节点的信用等级为第二等级(例如及格),该第二等级对应的信用系数βi为0.5,也即该目标执行节点的信用系数βi为0.5;在75≤xi<90的情况下,该目标执行节点的信用等级为第三等级(例如良好),该第三等级对应的信用系数βi为0.75,也即该目标执行节点的信用系数βi为0.75;在xi≥90的情况下,该目标执行节点的信用等级为第四等级(例如优秀),该第四等级对应的信用系数βi为1,也即该目标执行节点的信用系数βi为1。
上述实施例中,针对每一目标执行节点,基于目标执行节点执行算力任务的执行结果的质量指标和执行速率指标,确定目标执行节点的任务贡献度,并基于目标执行节点的任务贡献度和信用信息,确定目标执行节点的激励数量;然后基于每一目标执行节点的激励数量,向每一目标执行节点分配激励。这样,可以为每一目标执行节点确定更加合适的激励数量,从而使得算力交易更加合理。
在一些实施例中,所述区块链网络中还包括记录节点。上述算力资源的调度方法还可以包括:步骤S121,调度记录节点确定每一所述目标执行节点分别执行所述算力任务的执行信息。这样,通过合约服务器调度记录节点来确定每一目标执行节点分别执行算力任务的执行信息,可以减少合约服务器的部分计算工作量,从而可以减小合约服务器的计算压力,提高合约服务器在算力资源的调度过程中的可靠性以及系统性能。
本公开实施例提供一种算力资源的调度方法,该方法可以应用于区块链网络中,由区块链网络中的合约服务器执行。如图2所示,该方法包括如下步骤S201至步骤S205:
步骤S201,响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务。
步骤S202,确定所述区块链网络中响应所述算力任务的至少一个候选执行节点。
这里,上述步骤S201至步骤S202分别对应于前述实施例中的步骤S101至步骤S102,在实施时可以参照前述步骤S101至步骤S102的实施方式。
步骤S203,获取执行所述算力任务的预期需求资源、以及每一所述候选执行节点的负荷状态信息和节点配置信息。
这里,预期需求资源可以包括但不限于执行算力任务的预期算力需求量、预期数据流量、预期处理的数据量等中的至少之一。
在一些实施方式中,第一需求节点可以在提交的算力需求请求中携带执行相应的算力任务的预期需求资源;合约服务器可以通过对该算力需求请求中的信息进行解析,得到该预期需求资源。
在一些实施方式中,合约服务器可以通过对算力任务的任务内容进行分析,得到该算力任务的预期需求资源。例如,可以根据算力任务中待处理的数据的大小、数据处理类型等中的至少一种,进行计算量分析,得到该算力任务的预期算力需求量。又如,可以根据算力任务中待处理的数据的大小,进行数据流量分析,得到该算力任务的预期数据流量等。
候选执行节点的负荷状态信息可以包括但不限于候选执行节点中处理器的使用率、内存的使用率等中的至少之一,例如,中央处理器(Central Processing Unit,CPU)使用率和/或图形处理器(Graphics Processing Unit,GPU)使用率。在实施时,候选执行节点可以在响应算力任务的同时或者在响应算力任务之后,将自身的负荷状态信息上报至区块链网络中,从而区块链网络中的合约服务器可以获取该候选执行节点的负荷状态信息;合约服务器也可以在确定某一执行节点为候选执行节点后,从该候选执行节点中获取负荷状态信息。
候选执行节点的节点配置信息可以包括但不限于节点算力、节点中处理器的配置信息、节点满载时的单位时间能耗、节点空载时的单位时间能耗、节点空载与满载时的能耗比等中的至少之一。在实施时,各候选执行节点的节点配置信息可以是候选执行节点自身上报的,也可以是合约服务器中预先配置的,这里并不限定。例如,候选执行节点可以在接入区块链网络时、在响应算力任务的同时或者在响应算力任务之后,将自身的节点配置信息上报至区块链网络中,从而区块链网络中的合约服务器可以获取该节点配置信息。
步骤S204,针对每一所述候选执行节点,基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息。
在一些实施方式中,可以按照设定的成本估计规则,基于预期需求资源、候选执行节点的负荷状态信息和节点配置信息,对候选执行节点执行该算力任务的成本和/或收益进行估计,得到该候选执行节点执行该算力任务的预期收支信息。在实施时,成本估计规则可以是本领域技术人员根据实际情况预先设定的,本公开实施例对此并不限定。
在一些实施方式中,可以对历史的至少一组预期需求资源、负荷状态信息、节点配置信息和预期收支信息进行学习,得到预期需求资源、负荷状态信息、节点配置信息与预期收支信息之间的关联关系;利用该关联关系,可以对基于当前的预期需求资源、候选执行节点的负荷状态信息和节点配置信息对应的预期收支信息进行估计,得到该候选执行节点执行该算力任务的预期收支信息。
步骤S205,基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
这里,上述步骤S205对应于前述实施例中的步骤S103,在实施时可以参照前述步骤S103的实施方式。
本公开实施例中,获取执行算力任务的预期需求资源、以及每一候选执行节点的负荷状态信息和节点配置信息,并针对每一候选执行节点,基于该预期需求资源、该候选执行节点的负荷状态信息和节点配置信息,确定该候选执行节点执行该算力任务的预期收支信息。这样,在确定预期收支信息时综合考虑了算力任务的预期需求资源、候选执行节点的负荷状态信息和节点配置信息,从而可以提高确定的预期收支信息的准确性,进而可以提升算力任务执行的可靠性,并能提高算力资源调度的合理性。
在一些实施例中,所述预期收支信息包括预期成本,所述预期需求资源包括预期算力需求量和预期数据流量。上述步骤S204中所述的基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息,可以包括如下步骤S211至步骤S214:
步骤S211,基于所述预期算力需求量和所述候选执行节点的节点配置信息,确定所述候选执行节点执行所述算力任务的预期执行时长。
这里,在一些实施方式中,在节点配置信息中包括候选执行节点的节点算力的情况下,可以基于预期算力需求量和候选执行节点的节点算力之间的比值,确定候选执行节点执行该算力任务的预期执行时长。例如,可以直接将预期算力需求量和候选执行节点的节点算力之间的比值确定为该候选执行节点对应的预期执行时长;也可以对预期算力需求量和候选执行节点的节点算力之间的比值与设定的基础时长之和,确定为该候选执行节点对应的预期执行时长。
此外,由于节点中处理器的配置信息可以反映节点的算力能力,因而在一些实施方式中,在节点配置信息中包括节点中处理器的配置信息的情况下,可以基于该处理器的配置信息,确定该候选执行节点的节点算力,并基于预期算力需求量和候选执行节点的节点算力之间的比值,确定候选执行节点执行该算力任务的预期执行时长。
步骤S212,基于所述预期算力需求量、所述候选执行节点的负荷状态信息和所述预期执行时长,确定所述候选执行节点执行所述算力任务的电力消耗成本。
这里,由于执行节点的算力提供主要来自于CPU/GPU等处理器,执行算力任务增加了CPU/GPU等处理器的负荷,从而提升执行节点的耗电量,因此电力消耗成本是候选执行节点执行该算力任务的主要成本之一。
在实施时,可以基于算力任务的预期算力需求量和候选执行节点的负荷状态信息,对该候选执行节点执行该算力任务过程中的负荷状态进行预估,得到负荷状态估计值。基于该负荷状态估计值可以确定该候选执行节点执行该算力任务过程中的预期单位时间能耗。基于该预期单位时间能耗和预期执行时长,可以确定该候选执行节点执行该算力任务的电力消耗量,基于该电力消耗量和设定的电费单价,可以得到该候选执行节点执行该算力任务的电力消耗成本。其中,电费单价可以是各候选执行节点上传至区块链网络中的,也可以是在合约服务器中预先配置的,这里并不限定。
在一些实施方式中,可以基于节点满载时的单位时间能耗、节点空载时的单位时间能耗和节点空载与满载时的能耗比中三者之二,以及负荷状态估计值,按照预设的计算模型,对该候选执行节点执行该算力任务过程中的单位时间能耗进行计算,得到预期单位时间能耗。在实施时,由于执行节点的电力使用情况与该执行节点中的CPU/GPU使用率呈近似线性的关系,因此,可以基于该关系建立任意合适的计算模型用于对候选执行节点执行算力任务过程中的单位时间能耗进行计算,本公开实施例对此并不限定。
例如,如下公式2-1示出了本公开实施例提供的一种用于对候选执行节点执行算力任务过程中的单位时间能耗进行计算的计算模型的实现过程:
P(η)=Pmax·μ+(1-μ)·Pmax·η(2-1);
其中,P(η)为执行节点执行算力任务过程中的单位时间能耗;η为执行节点在执行该算力任务过程中的负荷状态信息,例如CPU/GPU使用率,η∈[0,1];Pmax为节点满载时的单位时间能耗,为节点空载与满载时的能耗比,Pidle为节点空载时的单位时间能耗。/>
又如,如下公式2-2示出了本公开实施例提供的一种用于对候选执行节点执行算力任务过程中的单位时间能耗进行计算的计算模型的实现过程:
P(η)=Pidle+(Pmax-Pidle)·η (2-2)。
由于执行节点在执行该算力任务过程中的负荷状态信息是随时间变化的,例如,CPU/GPU使用率会时高时低。因此,在上述公式2-1和2-2中,η为时变函数,记为η(t)。计算在时间范围[t1,t2]内执行节点的电力消耗量e的数学模型如下公式2-3所示:
将上述公式2-1代入公式2-3,则计算在时间范围[t1,t2]内执行节点的电力消耗量e的数学模型如下公式2-4所示:
或者,将上述公式2-2代入公式2-3,则计算在时间范围[t1,t2]内执行节点的电力消耗量e的数学模型如下公式2-5所示:
在一些实施方式中,在利用上述公式2-4或公式2-5对执行节点的电力消耗量e进行预估计算的情况下,可以基于算力任务的预期算力需求量和候选执行节点的负荷状态信息,对该候选执行节点执行该算力任务过程中的负荷状态进行预估,得到负荷状态估计值,也即预估的η(t)。这里,预估的η(t)可以是随着时间变化的值,也可以是不随时间变化的常数。此外,在对执行节点的电力消耗量e进行预估计算的过程中,时间范围[t1,t2]可以由预期执行时长tf确定,例如,时间范围可以为[0,tf]。利用上述公式2-4或公式2-5,基于该预估的η(t)和时间范围[[0,tf],即可对执行节点的电力消耗量e进行预估计算,从而得到预估的执行节点执行算力任务的电力消耗成本。在实施时,本领域技术人员可以根据实际情况采用合适的方式基于算力任务的预期算力需求量和候选执行节点的负荷状态信息,对该候选执行节点执行该算力任务过程中的负荷状态进行预估,得到负荷状态估计值,本公开实施例并不限定。例如,在负荷状态信息包括CPU/GPU使用率的情况下,可以基于算力任务的预期算力需求量,预估候选执行节点执行该算力任务所需增加的CPU/GPU消耗量,从而基于该CPU/GPU消耗量和候选执行节点当前的CPU/GPU使用率,可以确定该候选执行节点执行该算力任务过程中的CPU/GPU使用率的估计值。
在负荷状态估计值为常数η的情况下,利用上述公式2-4或公式2-5,基于该预估的η(t)和时间范围[0,tf],对执行节点的电力消耗量e进行预估计算的数学模型可以如下公式2-6所示:
其中,eif为第i个候选执行节点的预估的电力消耗量,tf为预期执行时长,CPf为预期算力需求量,CPi为第i个候选执行节点的节点算力。
步骤S213,基于所述预期数据流量,确定执行所述算力任务的网络流量成本。
在实施时,可以基于预期数据流量和设定的网络流量单价,确定执行所述算力任务的网络流量成本。网络流量单价可以是各候选执行节点上传至区块链网络中的,也可以是在合约服务器中预先配置的,这里并不限定。
步骤S214,基于所述电力消耗成本和所述网络流量成本,确定所述候选执行节点执行所述算力任务的预期成本。
这里,可以基于电路消耗成本与网络流量成本之和,确定候选执行节点执行该算力任务的预期成本。
在一些实施方式中,候选执行节点执行所述算力任务的预期成本中除了包括电力消耗成本和网络流量成本之外,还可以包括但不限于候选执行节点的硬件配置成本、交易成本等中的至少之一。
硬件配置成本可以包括但不限于硬件购置成本、硬件运维成本等中的至少之一。在实施时,各候选执行节点的硬件配置成本可以是各候选执行节点分别上传至区块链网络中的,也可以是在合约服务器中预先配置的,也可以是合约服务器基于候选执行节点的配置信息和硬件购置费用确定的,这里并不限定。
例如,某个候选执行节点中包括分布式配置的n硬件节点设备的情况下,该候选执行节点的硬件配置成本Csb可以采用如下公式2-7所示的方式确定:
其中,第i个节点的购置费用为csbi,N为候选执行节点中各硬件节点设备使用的平均年限,M为候选执行节点中各硬件节点设备的年平均使用次数;n个节点使用一次的总配置成本(费用),n为正整数,i为不超过n的正整数;N和M可以是预先设定的固定值,也可以是基于各硬件节点设备的使用情况动态确定的。
交易成本可以包括预先设定的执行算力任务的执行节点在单次算力资源调度过程中需要支付给合约服务器的单次交易费用,以作为合约服务器的运营管理费。在实施时,单次交易费可以是在合约服务器中配置后同步至区块链网络全网的。
上述实施例中,基于预期算力需求量和候选执行节点的节点配置信息,确定候选执行节点执行算力任务的预期执行时长;基于预期算力需求量、候选执行节点的负荷状态信息和预期执行时长,确定候选执行节点执行算力任务的电力消耗成本;基于预期数据流量,确定执行算力任务的网络流量成本;基于电力消耗成本和网络流量成本,确定候选执行节点执行算力任务的预期成本。这样,综合考虑执行节点的电力消耗成本和网络流量成本,可以确定更加合理的预期成本,从而可以更加合理地进行算力资源配置。
在一些实施例中,所述预期收支信息还可以包括预期收益;上述步骤S204中所述的基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息,还可以包括如下步骤S221至步骤S222:
步骤S221,基于所述候选执行节点的信用信息,确定所述候选执行节点的预期报酬。
这里,候选执行节点的信用信息表征该候选执行节点的信用越好,该候选执行节点的预期报酬越多。在实施时,本领域技术人员可以根据实际情况采用任意合适的方式基于候选执行节点的信用信息确定候选执行节点的预期报酬,本公开实施例对此并不限定。
在一些实施方式中,候选执行节点的预期报酬与候选执行节点的信用系数之间满足设定的正比例关系;在信用信息中包括信用系数的情况下,可以利用该正比例关系,基于候选执行节点的信用信息确定该候选执行节点的预期报酬。在实施时,该正比例关系可以是本领域技术人员根据实际情况预先设定的,也可以是基于至少一组历史预期报酬与历史信用系数之间的对应关系计算得到,这里并不限定。
例如,候选执行节点的预期报酬与候选执行节点的信用系数之间可以满足如下公式2-8所示的关系,也即第j个候选执行节点的预期报酬Pjf为该候选执行节点的预期任务贡献度αjf、基础报酬V0和该候选执行节点的信用系数βj之间的乘积,可以采用如下公式2-8所示的方式确定候选执行节点的预期报酬:
Pjf=αjf·V0·βj(2-8);
其中,j为正整数,信用系数βj的计算方式可以参照前述公式1-3中计算βi的方式;预期任务贡献度αjf可以是预先设定的固定值,也可以是设定的任务贡献度的取值范围中的平均值,还可以是基于第j个候选执行节点历史的任务贡献度确定的,这里并不限定。
步骤S222,基于所述预期报酬和所述预期成本,确定所述预期收益。
在实施时,可以基于预期报酬和预期成本,采用任意合适的方式确定预期收益,本公开实施例对此并不限定。例如,可以将预期报酬与预期成本之间的差值确定为预期收益。
上述实施例中,基于候选执行节点的信用信息,可以更加合理地确定候选执行节点的预期报酬,从而可以得到更加合理的预期收益,进而可以使得算力资源的配置更加合理化。
在一些实施例中,在算力任务执行结束后,还可以计算并记录各目标执行节点的实际成本、实际收益,以及合约服务器的实际收益。在后续的算力资源配置过程中,可以结合记录的至少一次历史算力资源配置过程中各目标执行节点的实际成本、实际收益,以及合约服务器的实际收益,对各执行节点的预期收支信息进行预估,以提高预期收支信息的准确性。
在一些实施方式中,目标执行节点的实际成本中可以包括但不限于硬件配置成本Csb、交易成本cTXi、以及执行该算力任务消耗的实际电力消耗成本cei、消耗的实际网络流量成本cneti等中的至少一种。
在一些实施方式中,可以确定目标执行节点实际执行算力任务的时间区间为[t1,t2],以及在该时间区间内执行节点的实际负荷状态信息η(t)。利用上述公式2-4或公式2-5,基于该实际负荷状态信息η(t)和时间区间[t1,t2],即可对执行节点执行该算力任务实际的电力消耗量e进行计算,得到实际电力消耗量ei;进而根据电费单价和该实际电力消耗量ei,可以确定目标执行节点实际执行算力任务的实际电力消耗成本cei
在一些实施方式中,可以基于执行算力任务的过程中实际消耗的数据流量和设定的网络流量单价,确定执行所述算力任务的实际网络流量成本。实际消耗的数据流量可以是算力任务实际处理的数据大小。
在一些实施方式中,目标执行节点执行该算力任务的实际收益是该目标执行节点接收到的激励减去该目标执行节点的实际成本之后得到的。
在一些实施方式中,合约服务器的实际收益可以包括需求节点支付的报酬(即激励)减去分配给各节点的激励之后的剩余报酬、以及各目标执行节点支付给合约服务器的交易成本cTXi。例如,可以采用如下公式2-9所示的方式确定合约服务器的实际收益Ps
Ps=Pr+nt·cTXi(2-9);
其中,Ps为合约服务器的实际收益,Pr为需求节点支付的报酬减去分配给各节点的激励之后的剩余报酬,nt为目标执行节点的数量,cTXi为每个目标执行节点支付给合约服务器的交易成本cTXi
本公开实施例提供一种算力资源的调度方法,该方法可以应用于区块链网络中,由区块链网络中的合约服务器执行。如图3所示,该方法包括如下步骤S301至步骤S304:
步骤S301,响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务。
步骤S302,确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息。
这里,上述步骤S301至步骤S302分别对应于前述实施例中的步骤S101至步骤S102,在实施时可以参照前述步骤S101至步骤S102的实施方式。
步骤S303,针对每一所述候选执行节点,基于所述候选执行节点的预期收支信息,确定所述候选执行节点的状态评估信息。
这里,状态评估信息可以包括但不限于执行状态、执行优先级等中的至少之一。候选执行节点的执行状态可以表征该候选执行节点当前是否可以执行算力任务。候选执行节点的执行优先级可以表征该候选执行节点在各候选执行节点中执行算力任务的优先级。
在实施时,可以基于候选执行节点的预期收支信息,从候选执行节点执行算力任务的收支合理化的角度考虑,采用任意合适的方式确定候选执行节点的状态评估信息,本公开实施例对此并不限定。
在一些实施方式中,可以在候选执行节点的预期收益和/或预期成本满足设定的收支条件的情况下,确定候选执行节点的执行状态为表征该候选执行节点当前可以执行算力任务的可执行状态;在候选执行节点的预期收益和/或预期成本不满足该收支条件的情况下,确定候选执行节点的执行状态为表征该候选执行节点当前不可以执行算力任务的不可执行状态。其中,收支条件可以是本领域技术人员根据实际情况确定的,这里并不限定。例如,收支条件可以包括但不限于预期收益大于预设收益、预期收益大于各候选执行节点的预期收益的平均值、预期成本小于预设成本、预期成本小于各候选执行节点的预期成本的平均值等中的至少之一。
在一些实施方式中,可以预先设定预期收支信息与执行优先级之间的对应关系,基于候选执行节点的预期收支信息查询该对应关系,可以确定该候选执行节点的执行优先级。
步骤S304,基于各所述候选执行节点的状态评估信息,从各所述候选执行节点中选取至少一个目标执行节点,并调度每一所述目标执行节点执行所述算力任务。
在一些实施方式中,在状态评估信息中包括执行状态的情况下,可以将各候选执行节点中执行状态为可执行状态的候选执行节点确定为目标执行节点。
在一些实施方式中,在状态评估信息中包括执行优先级的情况下,可以将各候选执行节点中执行优先级最高的第三数量的候选执行节点确定为目标执行节点。
本公开实施例中,针对每一候选执行节点,基于候选执行节点的预期收支信息,确定各候选执行节点的状态评估信息,基于各候选执行节点的状态评估信息,从各候选执行节点中选取至少一个目标执行节点,并调度每一目标执行节点执行该算力任务。这样,可以简单快捷地从各候选执行节点中选取并调度执行一个目标执行节点执行算力任务。
在一些实施例中,各候选执行节点的状态评估信息可以存储在合约服务器中设定的状态信息表中,在每次进行算力资源分配的过程中,可以将确定的各候选执行节点的状态评估信息记录至该状态信息表中。例如,各候选执行节点的状态评估信息可以是以状态标识的形式存储在合约服务器中设定的状态信息表中。状态标识的设置方式可以例如但不限于以下至少之一:0为不可执行状态的标识,1为可执行状态的标识,1_1至1_K为优先级由高至低的多个执行优先级的标识;其中,K为大于1的整数。
在一些实施例中,所述方法还包括如下步骤S311:
步骤S311,获取每一所述候选执行节点的负荷状态信息和信用信息。
上述步骤S303中所述的基于所述候选执行节点的预期收支信息,确定所述候选执行节点的状态评估信息,可以包括如下步骤S312:
步骤S312,基于所述候选执行节点的预期收支信息、负荷状态信息和信用信息,确定所述候选执行节点的状态评估信息。
这里,通过综合候选执行节点的预期收支信息、负荷状态信息和信用信息,可以更加合理地对候选执行节点的执行状态和/或执行优先级等进行评估,得到更合理的状态评估信息。
在一些实施例中,所述状态评估信息包括执行状态和执行优先级,所述预期收支信息包括预期成本和预期收益;上述步骤S312可以包括如下步骤S321:
步骤S321,在所述候选执行节点的负荷状态信息表征所述候选执行节点为空闲状态、且所述预期收益大于预设收益的情况下,确定所述候选执行节点的执行状态为可执行状态,并基于所述预期成本和所述信用信息,确定所候选执行节点的执行优先级。
在一些实施方式中,可以在候选执行节点的负荷状态信息表征候选执行节点不为空闲状态、或者预期收益不超过预设收益的情况下,确定候选执行节点的执行状态为不可执行状态。
在实施时,可以根据候选执行节点的负荷状态信息和预期收益确定候选执行节点的执行状态,在负荷状态信息表征候选执行节点为忙碌状态、或者预期收益不超过预设收益的情况下,可以确定候选执行节点的执行状态为不可执行状态;在候选执行节点的负荷状态信息表征候选执行节点为空闲状态、且预期收益大于预设收益的情况下,可以确定候选执行节点的执行状态为可执行状态,并基于预期成本和信用信息,为该候选执行节点设置执行优先级。例如,对于执行状态为可执行状态的各候选执行节点,可以将信用等级为第一等级且预期成本不超过预设成本的候选执行节点的执行优先级设置为第一优先级(记为标识1_1);将信用等级为第一等级且预期成本超过预设成本的候选执行节点的执行优先级设置为第二优先级(记为标识1_2);将信用等级为第二等级且预期成本不超过预设成本的候选执行节点的执行优先级设置为第三优先级(记为标识1_3);将信用等级为第二等级且预期成本超过预设成本的候选执行节点的执行优先级设置为第四优先级(记为标识1_4);以此类推。其中,第一等级和第二等级表征的信用等级依次降低;第一优先级、第二优先级、第三优先级和第四优先级依次降低。
在一些实施例中,所述区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络。上述步骤S304可以包括如下步骤S331至步骤S332:
步骤S331,所述多个服务节点中的第一服务节点从所述多个服务节点中确定设定数量的第二服务节点。
步骤S332,每一所述第二服务节点分别从自身对应的至少一个子网络中的各候选执行节点中基于各候选执行节点的状态评估信息选取至少一个目标执行节点,并分别调度选取的每一所述目标执行节点执行所述算力任务。
这里,多个服务节点可以是采用分布式方式部署的。第一服务节点可以是分布式部署的多个服务节点中的控制节点。
在一些实施方式中,第一服务节点可以是固定不变的。
在一些实施方式中,第一服务节点可以是合约服务器中的各服务节点按照预设的轮值规则轮值确定的,从而可以以去中心化的方式实现合约服务器的整体功能。
第一服务节点可以采用任意合适的方式从多个服务节点中选取设定数量的第二服务节点,本公开实施例对此并不限定。其中,该设定数量可以是本领域技术人员根据实际情况预先设定的。
在一些实施方式中,可以确定历史的多次算力资源调度过程中各服务节点分别作为第二服务节点的选中次数,将该选中次数最少的设定数量的服务节点分别确定为第二服务节点。
在一些实施方式中,可以采用随机选取的方式,从多个服务节点中确定设定数量的第二服务节点。例如,可以以随机生成的一个随机数R1作为随机因子,采用各服务节点在区块链网络中的公钥的哈希值分别对该随机数R1进行取余计算,得到各服务节点分别对应的一个余数,将对应的余数最小的设定数量的服务节点分别确定为第二服务节点。又如,可以以算力任务的任务内容作为随机因子,基于该任务内容确定每一服务节点的选取指标,并根据各服务节点的选取指标确定设定数量的第二服务节点。
在实施时,可以预先配置各服务节点、各执行节点、以及各子网络之间的对应关系,通过查询该对应关系,可以确定每一第二服务节点分别对应的至少一个子网络、以及每一子网络中的候选执行节点,进而基于各候选执行节点的状态评估信息选取至少一个目标执行节点。
上述实施例中,多个服务节点中的第一服务节点从多个服务节点中确定设定数量的第二服务节点,每一第二服务节点分别从自身对应的至少一个子网络中的各候选执行节点中基于各候选执行节点的状态评估信息选取至少一个目标执行节点,并分别调度选取的每一目标执行节点执行算力任务。这样,可以基于各服务节点、各执行节点、以及各子网络之间的对应关系,实现算力任务的分区发放,从而可以进一步增强需求节点和执行节点之间的匿名性,进而可以更好地保护算力需求方与算力提供方的隐私以及算力资源调度的安全性。
在一些实施例中,上述步骤S331可以包括如下步骤S341至步骤S343:
步骤S341,所述第一服务节点获取所述算力任务的任务内容、每一服务节点的标识信息以及每一服务节点分别在所述区块链网络中的公钥信息。
这里,算力任务的任务内容可以是算力需求请求中携带的、也可以是合约服务器基于算力需求请求确定的。任务内容中可以包括但不限于预期算力需求量、待执行的算力任务、待处理的数据、待处理的数据大小、数据处理类型、报酬金额、需求节点标识、需求节点的公钥、需求节点的信用等级等信息中的至少一种。
可以理解的是,区块链网络中的每一节点均具有用于进行身份验证以及安全通信的公钥信息和私钥信息,各节点之间基于各自的公钥信息和私钥信息进行安全通信和身份验证。各节点的公钥信息可以是在区块链网络中全网同步的。
步骤S342,所述第一服务节点针对每一所述服务节点,基于所述任务内容、所述服务节点的标识信息和所述服务节点的公钥信息,确定所述服务节点对应的选取指标。
这里,可以以任务内容作为随机因子、以服务节点的标识信息和公钥信息作为区分不同服务节点的区别因子,采用任意合适的方式确定各服务节点对应的选取指标。其中,各服务节点对应的选取指标可以是一个用于作为节点选取凭据的数值,本公开实施例中对于该数值的计算方法并不限定。
例如,可以将任务内容、服务节点的标识信息和服务节点的公钥信息进行组合后再进行哈希运算,得到该服务节点对应的选取指标。
又如,可以将任务内容、服务节点的标识信息进行组合后再进行哈希运算,得到第一参数;对服务节点的公钥信息进行哈希运算,得到第二参数;将第一参数按照第二参数进行取模,得到该服务节点对应的选取指标。
步骤S343,所述第一服务节点基于每一所述服务节点对应的选取指标,从各所述服务节点中选取所述设定数量的第二服务节点。
在一些实施方式中,可以将各服务节点中对应的选取指标最小的设定数量的服务节点均确定为第二服务节点。
在一些实施方式中,可以将各服务节点中对应的选取指标最大的设定数量的服务节点均确定为第二服务节点。
在一些实施方式中,可以将各服务节点中对应的选取指标大于设定的指标阈值的服务节点均确定为第二服务节点。
在一些实施方式中,可以将各服务基地中对应的选取指标为偶数的服务节点均确定为第二服务节点。
上述实施例中,以算力任务的任务内容作为随机因子、以服务节点的标识信息和公钥信息作为区分不同服务节点的区别因子,基于该随机因子和各服务节点的区别因子分别确定每一服务节点的选取指标,并根据各服务节点的选取指标确定设定数量的第二服务节点。这样,在确定第二服务节点的过程中不需要引入额外的第三方随机源,从而可以提高算力资源调度过程中的安全性,并且对于每一算力任务,其任务内容是确定的,不需要通过区块链网络中的共识机制进行共识确认,从而可以减少共识过程中作弊的可能性,并能减少进行共识确认的时间成本,进而可以进一步提高算力资源调度的安全性和效率。此外,由于在区块链网络中共识时间的减少,还可以提高对各候选执行节点的预期收支信息进行估计的准确性,进而可以进一步提高算力资源调度的合理性。
在一些实施例中,上述步骤S342中所述的基于所述任务内容、所述服务节点的标识信息和所述服务节点的公钥信息,确定所述服务节点对应的选取指标,可以包括如下步骤S351至步骤S354:
步骤S351,对所述任务内容、以及所述服务节点的标识信息进行组合,得到组合信息。
这里,可以采用任意合适的方式对任务内容和服务节点的标识信息进行组合,本公开实施例对此并不限定。例如,可以将任务内容+服务节点的标识信息作为组合信息。又如,可以将服务节点的标识信息+任务内容作为组合信息。
步骤S352,基于设定的分段数对所述组合信息的哈希值进行分段,得到至少一个分段信息;每一所述分段信息分别对应一个分段号。
步骤S353,对所述组合信息的哈希值进行哈希处理后按所述分段数进行取模,得到目标分段号。
步骤S354,对所述服务节点的公钥信息的哈希值按照目标分段信息的哈希值进行取模,得到所述服务节点对应的选取指标;其中,所述目标分段信息为所述至少一个分段信息中与所述目标分段号对应的分段信息。
例如,可以将任务内容+服务节点的标识信息作为组合信息;将该组合信息进行哈希得到内容Con,即组合信息的哈希值;将内容Con的字节长度len(Con)除以预设的单段字节长度L,得到分段数s;对内容Con进行哈希处理后按分段数s进行取模,得到目标分段号k=hash(Con)mod s;采用服务节点的公钥信息Ksj的哈希值hash(Ksj)对内容Con的第k段的哈希值取模,得到服务节点对应的选取指标d=hash(Ksj)mod hash(Conk)。
本公开实施例提供一种算力资源的调度方法,该方法可以应用于区块链网络中,由区块链网络中的合约服务器执行。所述区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络。如图4所示,该方法包括如下步骤S401至步骤S403:
步骤S401,所述多个服务节点中的第三服务节点响应于所述多个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第三服务节点为所述第一需求节点所在的第一子网络所对应的服务节点。
步骤S402,确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息。
步骤S403,基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
这里,上述步骤S402至步骤S403分别对应于前述实施例中的步骤S102至步骤S103,在实施时可以参照前述步骤S102至步骤S103的实施方式。
本公开实施例中,多个服务节点中的第三服务节点响应于多个需求节点中的第一需求节点提交的算力需求请求,基于算力需求请求,在区块链网络中发布算力任务。由于第三服务节点为第一需求节点所在的第一子网络所对应的服务节点,这样,可以各需求节点可以向该需求节点所在的子网络对应的服务节点提交算力需求请求,从而可以实现算力需求请求的分区响应,进而可以均衡合约服务器中各服务节点的请求处理压力,以提高合约服务器整体的响应时间和请求处理能力。
在一些实施例中,所述区块链网络中还包括代理节点群,所述代理节点群中的每一代理节点分别对应所述多个子网络中的至少一个子网络。上述步骤S401可以包括如下步骤S411:
步骤S411,所述第三服务节点响应于所述第一需求节点通过所述代理节点群中的第一代理节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第一代理节点为所述第一子网络所对应的代理节点。
代理节点群中可以包括多个代理节点。在实施时,可以预先设定各代理节点与各子网络之间的对应关系,第一需求节点可以通过查询该对应关系确定与第一子网络对应的第一代理节点,从而将该算力需求请求通过该第一代理节点提交至与第一子网络对应的第三服务节点。
上述实施例中,第一需求节点通过与第一子网络对应的第一代理节点,向与第一子网络对应的第三服务节点提交算力需求请求,这样,可以进一步增加算力需求节点与执行节点之间相互的匿名性,从而更好地保护各需求节点与各执行节点。
在一些实施例中,可以通过周期性更新需求节点、代理节点、服务节点和执行节点分别与子网络之间的对应关系,进一步降低需求节点和执行节点暴露的可能性。在实施时,该对应关系可以存储在合约服务器中的至少一个服务节点中,并由合约服务器进行维护。
在一些实施例中,代理节点群中包括引导节点和多个代理节点。引导节点用于:接收第一需求节点提交的算力需求请求;基于算力需求请求,确定所述第一需求节点所在的目标子网络;确定各代理节点中与目标子网络对应的目标代理节点,并将算力需求请求转发至目标代理节点。目标代理节点用于将算力需求请求转发至与目标子网络对应的目标服务节点。
例如,假设合约服务器中有3个服务节点SV1、SV2、SV3;代理节点有3个,分别为D1、D2、D3;多个需求节点和多个执行节点分布在5个子网络N1、N2、N3、N4和N5中;服务节点SV1与子网络N1、N2对应,服务节点SV2与子网络N3、N4对应,服务节点SV3与子网络N5对应;代理节点D1与子网络N1、N2对应,代理节点D2与子网络N3、N4对应,代理节点D3与子网络N5对应;代理节点D1与服务节点SV1对应,代理节点D2与服务节点SV2对应,代理节点D3与服务节点SV3对应;若子网络N1中的需求节点A存在算力需求,需求节点A向代理节点群中的引导节点发送算力需求请求,引导节点验证需求节点A所在的子网络后,根据上述的对应关系把算力需求请求转发给代理节点D1,由代理节点D1将算力需求请求发给服务节点SV1,服务节点SV1向区块链网络全网发布算力任务。
在一些实施例中,所述区块链网络中还包括多个计算节点,每一所述计算节点分别对应所述多个子网络中的至少一个子网络。上述步骤S402中所述的确定每一所述候选执行节点执行所述算力任务的预期收支信息,可以包括如下步骤S421:
步骤S421,所述多个服务节点中的第一服务节点分别调度每一所述计算节点,计算与所述计算节点对应的至少一个子网络中的每一所述候选执行节点执行所述算力任务的预期收支信息。
在实施时,可以预先设定各计算节点与各子网络之间的对应关系,每一计算节点可以通过查询该对应关系确定该计算节点对应的至少一个子网络中的每一候选执行节点,并计算每一候选执行节点执行算力任务的预期收支信息。
在一些实施方式中,可以周期性更新计算节点与子网络之间的对应关系。该对应关系可以存储在合约服务器中的至少一个服务节点中,并由合约服务器进行维护。
上述实施例中,通过第一服务节点调度多个计算节点来分区计算各子网络中的各候选执行节点执行算力任务的预期收支信息,可以减少合约服务器中各服务节点的部分计算工作量,从而可以减小合约服务器整体的计算压力,提高合约服务器在算力资源调度过程中的可靠性以及系统性能。此外,通过多个计算节点分区计算各候选执行节点执行算力任务的预期收支信息可以进一步提高算力资源调度的效率,从而更好地满足需求节点的算力需求。
本公开实施例提供一种算力资源的调度方法,该方法可以应用于区块链网络中,由区块链网络中的代理节点群执行。区块链网络中的代理节点群接收区块链网络中的第一需求节点提交的算力需求请求,并将算力需求请求发送至区块链网络中的合约服务器;其中,合约服务器用于:基于算力需求请求,在区块链网络中发布算力任务;确定区块链网络中响应算力任务的至少一个候选执行节点,并确定每一候选执行节点执行算力任务的预期收支信息;基于每一候选执行节点的预期收支信息,从各候选执行节点中选取并调度至少一个目标执行节点执行算力任务。这样,可以整合区块链网络中至少一个执行节点中的闲散算力为需求节点提供服务,从而实现合理的算力资源配置,提高闲散算力的利用率,并能基于区块链网络更好地保护算力需求方和算力提供方的隐私以及算力资源调度的安全性,而且需求节点和执行节点均可以根据需求灵活自由地接入区块链网络,从而可以更好地满足用户的算力需求。
图5A为本公开实施例提供的一种区块链网络的组成结构示意图,如图5A所示,本公开实施例提供的区块链网络100中的节点可以包括合约服务器110、至少一个需求节点120、至少一个执行节点130和代理节点群140,其中,
需求节点120,用于通过代理节点群140向合约服务器110提交算力需求请求;
代理节点群140,用于:接收至少一个需求节点120中的第一需求节点121提交的算力需求请求;将该算力需求请求发送至合约服务器110;
合约服务器110,用于:响应于代理节点群140发送的算力需求请求,基于该算力需求请求,在区块链网络100中发布算力任务;确定至少一个执行节点130中响应该算力任务的至少一个候选执行节点131,并确定每一候选执行节点131执行该算力任务的预期收支信息;基于每一候选执行节点131的预期收支信息,从各候选执行节点131中选取并调度至少一个目标执行节点131a执行该算力任务;
执行节点130,用于:在接收到任务响应指令的情况下,响应区块链网络100中发布的算力任务;并响应于合约服务器110的调度,执行该算力任务。
图5B为本公开实施例提供的一种算力资源的调度方法的实现流程示意图,如图5B所示,该方法包括如下步骤S501至步骤S502:
步骤S501,接收所述区块链网络中的第一需求节点提交的算力需求请求。
步骤S502,将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
本公开实施例中,一方面,整合了区块链网络中至少一个执行节点中的闲散算力为需求节点提供服务,从而实现合理的算力资源配置,提高闲散算力的利用率;另一方面,基于每一候选执行节点的预期收支信息,可以更加合理地从各候选执行节点中选取并调度至少一个目标执行节点执行算力任务,进而可以进一步提高算力资源的调度的合理性;又一方面,由于合约服务器、算力需求节点和执行节点均部署在区块链网络中,而区块链网络为具有隐私保护的可信网络,因而可以在需求节点和执行节点之间实现可信且匿名的算力资源调度,从而可以更好地保护算力需求方和算力提供方的隐私以及算力资源调度的安全性,并且由于区块链网络具有去中心化的特性,需求节点和执行节点均可以根据需求灵活自由地接入区块链网络,从而可以更好地满足用户的算力需求。
在一些实施例中,所述区块链网络中包括多个需求节点、多个执行节点、所述代理节点群和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络,所述代理节点群中包括引导节点和多个代理节点,每一所述代理节点分别对应所述多个子网络中的至少一个子网络。
上述步骤S501可以包括如下步骤S511:
步骤S511,所述引导节点接收所述第一需求节点提交的算力需求请求。
上述步骤S502可以包括如下步骤S512至步骤S514:
步骤S512,所述引导节点基于所述算力需求请求,确定所述第一需求节点所在的目标子网络。
这里,可以在算力需求请求中携带目标子网络的网络标识,引导节点可以对接收到的算力需求请求进行解析,得到该网络标识。
在一些实施方式中,引导节点还可以通过对接收到的算力需求请求的来源地址进行分析,该来源地址与算力需求请求中携带的目标子网络的网络标识是否匹配,若匹配则进行下一步骤,若不匹配则不对该算力需求请求进行继续处理。
步骤S513,所述引导节点确定各所述代理节点中与所述目标子网络对应的目标代理节点,并将所述算力需求请求转发至所述目标代理节点。
步骤S514,所述目标代理节点将所述算力需求请求转发至与所述目标子网络对应的目标服务节点。
上述实施例中,代理节点群中包括引导节点和多个代理节点,每一代理节点分别对应多个子网络中的至少一个子网络,引导节点将接收到的算力需求请求转发至与第一需求节点所在的目标子网络对应的目标代理节点中,并通过该目标代理节点将该算力需求请求转发至与该目标子网络对应的目标服务节点。这样,可以进一步增加算力需求节点与执行节点之间相互的匿名性,从而更好地保护各需求节点与各执行节点。
本公开实施例提供一种算力资源的调度系统,如图6A所示,该算力资源的调度系统600包括位于区块链网络100中的合约服务器110、至少一个需求节点120、至少一个执行节点130;其中,
需求节点120,用于向合约服务器110提交算力需求请求;
合约服务器110,用于:响应于至少一个需求节点120中的第一需求节点121提交的算力需求请求,基于该算力需求请求,在区块链网络100中发布算力任务;确定至少一个执行节点130中响应该算力任务的至少一个候选执行节点131,并确定每一候选执行节点131执行该算力任务的预期收支信息;基于每一候选执行节点131的预期收支信息,从各候选执行节点131中选取并调度至少一个目标执行节点131a执行该算力任务;
执行节点130,用于:在接收到任务响应指令的情况下,响应区块链网络100中发布的算力任务;并响应于合约服务器110的调度,执行该算力任务。
在一些实施例中,如图6B所示,该算力资源的调度系统600还包括位于区块链网络100中的代理节点群140,其中,代理节点群140用于:接收区块链网络100中的第一需求节点121提交的算力需求请求;将算力需求请求发送至区块链网络100中的合约服务器110。
在一些实施例中,如图6C所示,该算力资源的调度系统600还包括位于区块链网络100中的至少一个计算节点150,其中,计算节点150用于:响应于合约服务器110的调度,计算至少一个候选执行节点131执行算力任务的预期成本。
在一些实施例中,合约服务器110还用于:基于每一目标执行节点131a分别执行该算力任务的执行信息,向每一目标执行节点131a分配激励。
在一些实施例中,如图6D所示,该算力资源的调度系统600还包括位于区块链网络100中的记录节点160;其中,记录节点160用于:确定每一目标执行节点131a分别执行算力任务的执行信息,并将每一目标执行节点131a分别执行算力任务的执行信息发送至合约服务器110。
下面说明本公开实施例提供的算力资源的调度系统以及算力资源的调度方法在实际场景中的应用。例如,在实际场景中,算力资源的调度系统可以是包含大型GPU设备或FPGA服务器集群、中小型企业闲散的空余服务器及个人闲置的计算节点等算力设备组成的大规模交易网络(即算力交易系统)。图7A为本公开实施例提供的一种算力资源的调度系统的组成结构示意图,如图7A所示,该算力资源的调度系统700包括算力卖家710、合约服务器720和算力买家730;算力卖家710可以包括但不限于中小型数据中心711、终端设备712、超算数据中心713等中的至少一种,终端设备712可以例如手机终端、台式计算机、笔记本电脑、游戏机等;算力买家730可以包括但不限于人工智能(Artificial Intelligence,AI)计算服务731、存储服务732、通用计算服务733等中的至少一种;在算力资源的调度过程中,算力卖家710向算力买家730贡献闲散算力,并通过注册或更新的方式告知合约服务器720,算力卖家710可以通过贡献算力来获得激励、和/或抵消使用算力的花费等。
可以理解的是,在实际场景中,算力买家可以对应于前述实施例中的需求节点,算力卖家可以对应于前述实施例中的执行节点。
在此基础上,本公开实施例提供一种算力资源的调度系统,如图6D所示,该算力资源的调度系统600包括位于区块链网络100中的合约服务器110、需求节点120、执行节点130、代理节点群140、计算节点150和记录节点160。
在实施时,算力资源的调度系统可以基于区块链网络和云计算进行构建。合约服务器、代理节点群、计算节点、记录节点可以由算力资源的调度系统的运营方部署。合约服务器是分布式部署的服务器。代理节点群、计算节点和记录节点需要在算力资源的调度过程中进行部分数据的计算,因而需要一定的算力,可以是数据中心或者计算机集群。用户的终端设备可以作为需求节点、和/或执行节点参与算力交易,运营方可以通过交易费用等形式向用户收取一定的维护运营服务费用。例如,某区域部署区域内算力资源的调度系统,面向终端设备和企业小型数据中心组成的闲散算力资源,使终端设备或企业小型数据中心作为需求节点、和/或执行节点加入到算力资源的调度系统,终端设备或企业小型数据中心在发布需求时作为需求节点、而在接受算力任务时则作为执行节点,算力资源的调度系统则通过运营商进行搭建。假设上述的区域内算力资源的调度系统中的合约服务器包括部署在云端或大型数据中心的服务节点S1、服务节点S2和服务节点S3等。计算节点由于需要快速响应可以采用边缘计算数据中心,部署于一些计算机产业园区或居民区附近以达到快速响应的目的。假设上述区域内算力资源的调度系统有三个计算节点C1、C2和C3,则这三个计算节点可以是部署在该区域内的三个科技园中的数据中心。记录节点则可以是云端的服务器R,为所有的算力任务提供执行结果的验证服务,得到执行信息。这样,由云服务器S1、S2、S3、R,边缘计算数据中心C1、C2和C3,以及用户的终端设备或企业小型数据中心,可以构建出该算力资源的调度系统平台的基本框架。此外,还可以设定相关代理转发机制设置对应的代理节点群以保证需求节点的隐私性。
基于上述算力资源的调度系统,本公开实施例提供一种算力资源的调度方法,如图7B所示,该方法包括如下步骤S701至步骤S709:
步骤S701,第一需求节点通过代理节点群中的第一代理节点向合约服务器中的第三服务节点提交算力需求请求;
步骤S702,第三服务节点基于接收的算力需求请求,在区块链网络中发布算力任务;
步骤S703,欲响应该算力任务的执行节点,根据自身负荷情况上传自身的负荷状态信息至区块链网络,以响应该算力任务;
步骤S704,合约服务器中的第一服务节点将在算力任务发布后的第一响应时长内响应该算力任务的执行节点确定为候选执行节点;
步骤S705,第一服务节点基于各计算节点与子网络之间的对应关系调度各个计算节点分区估算对应的子网络中的各候选执行节点的预期成本和预期收益,第一服务节点根据各候选执行节点的预期成本、预期收益、负荷状态信息和信用积分,确定各候选执行节点的状态评估信息;
步骤S706,第一服务节点从合约服务器中的多个服务节点中确定设定数量的第二服务节点,且各第二服务节点分别从自身对应的至少一个子网络中的各候选执行节点中,基于各候选执行节点的状态评估信息选取并调度至少一个目标执行节点执行该算力任务;
步骤S707,各目标执行节点执行算力任务并上传执行结果;
步骤S708,记录节点基于各目标执行节点上传的任务数据,判断各目标执行节点执行该算力任务的执行信息,将各目标执行节点执行该算力任务的执行信息发送至第一服务节点;
步骤S709,第一服务节点基于记录节点发送的所有目标执行节点的执行信息,向每一目标执行节点分配激励。
其中,记录节点发送给第一服务节点的所有目标执行节点的执行信息中具有验证身份的数字签名,第一服务节点可以基于记录节点的公钥对该数字签名进行验证,从而可以减少冒名顶替领取激励的情况。
本公开实施例提供的算力资源的调度方法,符合分布式的安全环境的要求,例如,在算力资源的调度系统实施为算力交易系统的情况下,合约服务器和需求节点、执行节点作为区块链网络中的节点进行算力资源的交易任务,其交易关系被记录在可信的区块链网络中并会经过验证,可以在有效保障算力资源的调度系统信息安全的情况下提高算力交易的效率,从而可以在基于分布式的区块链网络构建公开的和可信的去中心化算力交易系统,以完全分布式的形式为承载海量计算产品的底层算力需求问题提供支持,实现高并发和可信安全的算力交易服务。
本公开实施例中,通过区块链技术结合算力调度和算网管理编排手段构建可以对闲散算力进行整合的算力资源的调度系统,将区块链网络全网的各个闲散算力资源作为系统中的执行节点为需求方提供算力服务获得酬劳,采用了一种算力资源的调度的全新流程,重点保护了各需求节点和执行节点的隐私信息,并通过分区对应的方式进步增加算力资源的调度的安全性,同时增加算力资源的调度系统整体的数据处理能力。此外还通过设置激励机制,以激励各执行节点提供正确的算力数据。
基于前述的实施例,本公开实施例提供一种算力资源的调度装置,该装置可以应用于区块链网络中的合约服务器中,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为CPU、微处理器(Microprocessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或FPGA等。
图8A为本公开实施例提供的一种算力资源的调度装置的组成结构示意图,如图8A所示,算力资源的调度装置810包括:发布模块811、第一确定模块812和第一调度模块813,其中:
发布模块811,用于响应于区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;
第一确定模块812,用于确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;
第一调度模块813,用于基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
在一些实施例中,所述算力资源的调度装置还包括:第一获取模块,用于获取执行所述算力任务的预期需求资源、以及每一所述候选执行节点的负荷状态信息和节点配置信息;第一确定模块还用于:针对每一所述候选执行节点,基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息。
在一些实施例中,预期收支信息包括预期成本,预期需求资源包括预期算力需求量和预期数据流量;第一确定模块还用于:基于所述预期算力需求量和所述候选执行节点的节点配置信息,确定所述候选执行节点执行所述算力任务的预期执行时长;基于所述预期算力需求量、所述候选执行节点的负荷状态信息和所述预期执行时长,确定所述候选执行节点执行所述算力任务的电力消耗成本;基于所述预期数据流量,确定执行所述算力任务的网络流量成本;基于所述电力消耗成本和所述网络流量成本,确定所述候选执行节点执行所述算力任务的预期成本。
在一些实施例中,预期收支信息还包括预期收益;第一确定模块还用于:基于所述候选执行节点的信用信息,确定所述候选执行节点的预期报酬;基于所述预期报酬和所述预期成本,确定所述预期收益。
在一些实施例中,第一调度模块还用于:针对每一所述候选执行节点,基于所述候选执行节点的预期收支信息,确定所述候选执行节点的状态评估信息;基于各所述候选执行节点的状态评估信息,从各所述候选执行节点中选取至少一个目标执行节点,并调度每一所述目标执行节点执行所述算力任务。
在一些实施例中,所述算力资源的调度装置还包括:第二获取模块,用于获取每一所述候选执行节点的负荷状态信息和信用信息;第一调度模块还用于:基于所述候选执行节点的预期收支信息、负荷状态信息和信用信息,确定所述候选执行节点的状态评估信息。
在一些实施例中,状态评估信息包括执行状态和执行优先级,预期收支信息包括预期成本和预期收益;第一调度模块还用于:在所述候选执行节点的负荷状态信息表征所述候选执行节点为空闲状态、且所述预期收益大于预设收益的情况下,确定所述候选执行节点的执行状态为可执行状态,并基于所述预期成本和所述信用信息,确定所候选执行节点的执行优先级。
在一些实施例中,所述区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络;第一调度模块还用于:控制多个服务节点中的第一服务节点从所述多个服务节点中确定设定数量的第二服务节点;控制每一所述第二服务节点分别从自身对应的至少一个子网络中的各候选执行节点中基于各候选执行节点的状态评估信息选取至少一个目标执行节点,并分别调度选取的每一所述目标执行节点执行所述算力任务。
在一些实施例中,第一调度模块还用于:控制所述第一服务节点获取所述算力任务的任务内容、每一服务节点的标识信息以及每一服务节点分别在所述区块链网络中的公钥信息;控制所述第一服务节点针对每一所述服务节点,基于所述任务内容、所述服务节点的标识信息和所述服务节点的公钥信息,确定所述服务节点对应的选取指标;控制所述第一服务节点基于每一所述服务节点对应的选取指标,从各所述服务节点中选取所述设定数量的第二服务节点。
在一些实施例中,第一调度模块还用于:对所述任务内容、以及所述服务节点的标识信息进行组合,得到组合信息;基于设定的分段数对所述组合信息的哈希值进行分段,得到至少一个分段信息;每一所述分段信息分别对应一个分段号;对所述组合信息的哈希值进行哈希处理后按所述分段数进行取模,得到目标分段号;对所述服务节点的公钥信息的哈希值按照目标分段信息的哈希值进行取模,得到所述服务节点对应的选取指标;其中,所述目标分段信息为所述至少一个分段信息中与所述目标分段号对应的分段信息。
在一些实施例中,算力资源的调度装置还包括:分配模块,用于基于每一所述目标执行节点分别执行所述算力任务的执行信息,向每一所述目标执行节点分配激励。
在一些实施例中,执行信息包括执行结果的质量指标和执行速率指标;分配模块还用于:针对每一所述目标执行节点,基于所述目标执行节点执行所述算力任务的执行结果的质量指标和执行速率指标,确定所述目标执行节点的任务贡献度,并基于所述目标执行节点的任务贡献度和信用信息,确定所述目标执行节点的激励数量;基于每一所述目标执行节点的激励数量,向每一所述目标执行节点分配激励。
在一些实施例中,区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络;发布模块还用于:控制所述多个服务节点中的第三服务节点响应于所述多个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第三服务节点为所述第一需求节点所在的第一子网络所对应的服务节点。
在一些实施例中,区块链网络中还包括代理节点群,代理节点群中的每一代理节点分别对应所述多个子网络中的至少一个子网络;发布模块还用于:控制所述第三服务节点响应于所述第一需求节点通过所述代理节点群中的第一代理节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第一代理节点为所述第一子网络所对应的代理节点。
在一些实施例中,区块链网络中还包括多个计算节点,每一所述计算节点分别对应所述多个子网络中的至少一个子网络;第一确定模块还用于:所述多个服务节点中的第一服务节点分别调度每一所述计算节点,计算与所述计算节点对应的至少一个子网络中的每一所述候选执行节点执行所述算力任务的预期收支信息。
本公开实施例提供一种算力资源的调度装置,该装置可以应用于区块链网络中的代理节点群中,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为CPU、MPU、DSP或FPGA等。
图8B为本公开实施例提供的一种算力资源的调度装置的组成结构示意图,如图8B所示,算力资源的调度装置820包括:第一接收模块821和第一发送模块822,其中:
第一接收模块821,用于接收区块链网络中的第一需求节点提交的算力需求请求;
第一发送模块822,用于将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
在一些实施例中,区块链网络中包括多个需求节点、多个执行节点、代理节点群和合约服务器,多个需求节点和多个执行节点分布在多个子网络中,合约服务器包括多个服务节点,每一服务节点分别对应多个子网络中的至少一个子网络,代理节点群中包括引导节点和多个代理节点,每一代理节点分别对应多个子网络中的至少一个子网络;第一接收模块还用于:控制引导节点接收所述第一需求节点提交的算力需求请求;第一发送模块还用于:控制引导节点基于所述算力需求请求,确定所述第一需求节点所在的目标子网络;控制引导节点确定各所述代理节点中与所述目标子网络对应的目标代理节点,并将所述算力需求请求转发至所述目标代理节点;控制目标代理节点将所述算力需求请求转发至与所述目标子网络对应的目标服务节点。
以上系统实施例以及装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的集群部署方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,图9为本公开实施例中计算机设备的一种硬件实体示意图,如图9所示,该计算机设备900的硬件实体包括:处理器901、通信接口902和存储器903,其中:处理器901通常控制计算机设备900的总体操作;通信接口902可以使计算机设备通过网络与其他终端或服务器通信;存储器903配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及计算机设备900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(RandomAccess Memory,RAM)实现。处理器901、通信接口902和存储器903之间可以通过总线904进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。

Claims (20)

1.一种算力资源的调度方法,其特征在于,应用于区块链网络中的合约服务器,所述方法包括:
响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;
确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;
基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取执行所述算力任务的预期需求资源、以及每一所述候选执行节点的负荷状态信息和节点配置信息;
所述确定每一所述候选执行节点执行所述算力任务的预期收支信息,包括:
针对每一所述候选执行节点,基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息。
3.根据权利要求2所述的方法,其特征在于,所述预期收支信息包括预期成本,所述预期需求资源包括预期算力需求量和预期数据流量;
所述基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息,包括:
基于所述预期算力需求量和所述候选执行节点的节点配置信息,确定所述候选执行节点执行所述算力任务的预期执行时长;
基于所述预期算力需求量、所述候选执行节点的负荷状态信息和所述预期执行时长,确定所述候选执行节点执行所述算力任务的电力消耗成本;
基于所述预期数据流量,确定执行所述算力任务的网络流量成本;
基于所述电力消耗成本和所述网络流量成本,确定所述候选执行节点执行所述算力任务的预期成本。
4.根据权利要求3所述的方法,其特征在于,所述预期收支信息还包括预期收益;
所述基于所述预期需求资源、所述候选执行节点的负荷状态信息和节点配置信息,确定所述候选执行节点执行所述算力任务的预期收支信息,还包括:
基于所述候选执行节点的信用信息,确定所述候选执行节点的预期报酬;
基于所述预期报酬和所述预期成本,确定所述预期收益。
5.根据权利要求1所述的方法,其特征在于,所述基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务,包括:
针对每一所述候选执行节点,基于所述候选执行节点的预期收支信息,确定所述候选执行节点的状态评估信息;
基于各所述候选执行节点的状态评估信息,从各所述候选执行节点中选取至少一个目标执行节点,并调度每一所述目标执行节点执行所述算力任务。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取每一所述候选执行节点的负荷状态信息和信用信息;
所述基于所述候选执行节点的预期收支信息,确定所述候选执行节点的状态评估信息,包括:
基于所述候选执行节点的预期收支信息、负荷状态信息和信用信息,确定所述候选执行节点的状态评估信息。
7.根据权利要求6所述的方法,其特征在于,所述状态评估信息包括执行状态和执行优先级,所述预期收支信息包括预期成本和预期收益;
所述基于所述候选执行节点的预期收支信息、负荷状态信息和信用信息,确定所述候选执行节点的状态评估信息,包括:
在所述候选执行节点的负荷状态信息表征所述候选执行节点为空闲状态、且所述预期收益大于预设收益的情况下,确定所述候选执行节点的执行状态为可执行状态,并基于所述预期成本和所述信用信息,确定所候选执行节点的执行优先级。
8.根据权利要求5所述的方法,其特征在于,所述区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络;
所述基于各所述候选执行节点的状态评估信息,从各所述候选执行节点中选取至少一个目标执行节点,并调度每一所述目标执行节点执行所述算力任务,包括:
所述多个服务节点中的第一服务节点从所述多个服务节点中确定设定数量的第二服务节点;
每一所述第二服务节点分别从自身对应的至少一个子网络中的各候选执行节点中基于各候选执行节点的状态评估信息选取至少一个目标执行节点,并分别调度选取的每一所述目标执行节点执行所述算力任务。
9.根据权利要求8所述的方法,其特征在于,所述多个服务节点中的第一服务节点从所述多个服务节点中确定设定数量的第二服务节点,包括:
所述第一服务节点获取所述算力任务的任务内容、每一服务节点的标识信息以及每一服务节点分别在所述区块链网络中的公钥信息;
所述第一服务节点针对每一所述服务节点,基于所述任务内容、所述服务节点的标识信息和所述服务节点的公钥信息,确定所述服务节点对应的选取指标;
所述第一服务节点基于每一所述服务节点对应的选取指标,从各所述服务节点中选取所述设定数量的第二服务节点。
10.根据权利要求9所述的方法,其特征在于,所述基于所述任务内容、所述服务节点的标识信息和所述服务节点的公钥信息,确定所述服务节点对应的选取指标,包括:
对所述任务内容、以及所述服务节点的标识信息进行组合,得到组合信息;
基于设定的分段数对所述组合信息的哈希值进行分段,得到至少一个分段信息;每一所述分段信息分别对应一个分段号;
对所述组合信息的哈希值进行哈希处理后按所述分段数进行取模,得到目标分段号;
对所述服务节点的公钥信息的哈希值按照目标分段信息的哈希值进行取模,得到所述服务节点对应的选取指标;其中,所述目标分段信息为所述至少一个分段信息中与所述目标分段号对应的分段信息。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于每一所述目标执行节点分别执行所述算力任务的执行信息,向每一所述目标执行节点分配激励。
12.根据权利要求11所述的方法,其特征在于,所述执行信息包括执行结果的质量指标和执行速率指标;
所述基于每一所述目标执行节点分别执行所述算力任务的执行信息,向每一所述目标执行节点分配激励,包括:
针对每一所述目标执行节点,基于所述目标执行节点执行所述算力任务的执行结果的质量指标和执行速率指标,确定所述目标执行节点的任务贡献度,并基于所述目标执行节点的任务贡献度和信用信息,确定所述目标执行节点的激励数量;
基于每一所述目标执行节点的激励数量,向每一所述目标执行节点分配激励。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述区块链网络中包括多个需求节点、多个执行节点和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络;
所述响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务,包括:
所述多个服务节点中的第三服务节点响应于所述多个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第三服务节点为所述第一需求节点所在的第一子网络所对应的服务节点。
14.根据权利要求13所述的方法,其特征在于,所述区块链网络中还包括以下至少之一:代理节点群、多个计算节点,所述代理节点群中的每一代理节点分别对应所述多个子网络中的至少一个子网络,每一所述计算节点分别对应所述多个子网络中的至少一个子网络;
在所述区块链网络中包括所述代理节点群的情况下,所述多个服务节点中的第三服务节点响应于所述多个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务,包括:
所述第三服务节点响应于所述第一需求节点通过所述代理节点群中的第一代理节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;其中,所述第一代理节点为所述第一子网络所对应的代理节点;
在所述区块链网络中包括多个所述计算节点的情况下,所述确定每一所述候选执行节点执行所述算力任务的预期收支信息,包括:
所述多个服务节点中的第一服务节点分别调度每一所述计算节点,计算与所述计算节点对应的至少一个子网络中的每一所述候选执行节点执行所述算力任务的预期收支信息。
15.一种算力资源的调度方法,其特征在于,应用于区块链网络中的代理节点群,所述方法包括:
接收所述区块链网络中的第一需求节点提交的算力需求请求;
将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
16.根据权利要求15所述的方法,其特征在于,所述区块链网络中包括多个需求节点、多个执行节点、所述代理节点群和所述合约服务器,所述多个需求节点和所述多个执行节点分布在多个子网络中,所述合约服务器包括多个服务节点,每一所述服务节点分别对应所述多个子网络中的至少一个子网络,所述代理节点群中包括引导节点和多个代理节点,每一所述代理节点分别对应所述多个子网络中的至少一个子网络;
所述接收所述区块链网络中的第一需求节点提交的算力需求请求,包括:
所述引导节点接收所述第一需求节点提交的算力需求请求;
所述将所述算力需求请求发送至所述区块链网络中的合约服务器,包括:
所述引导节点基于所述算力需求请求,确定所述第一需求节点所在的目标子网络;
所述引导节点确定各所述代理节点中与所述目标子网络对应的目标代理节点,并将所述算力需求请求转发至所述目标代理节点;
所述目标代理节点将所述算力需求请求转发至与所述目标子网络对应的目标服务节点。
17.一种算力资源的调度系统,其特征在于,包括位于区块链网络中的合约服务器、至少一个需求节点、至少一个执行节点;其中,
所述需求节点用于:向所述合约服务器提交算力需求请求;
所述合约服务器用于:响应于所述至少一个需求节点中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述至少一个执行节点中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务;
所述执行节点用于:在接收到任务响应指令的情况下,响应所述算力任务;并响应于所述合约服务器的调度,执行所述算力任务。
18.根据权利要求17所述的系统,其特征在于,所述系统还包括以下至少之一:位于所述区块链网络中的代理节点群、位于所述区块链网络中的至少一个计算节点、位于所述区块链网络中的记录节点,其中,
所述代理节点群用于:接收所述区块链网络中的第一需求节点提交的算力需求请求;将所述算力需求请求发送至所述区块链网络中的合约服务器;
所述计算节点用于:响应于所述合约服务器的调度,计算至少一个所述候选执行节点执行所述算力任务的预期成本;
所述记录节点用于:确定每一所述目标执行节点分别执行所述算力任务的执行信息,并将每一所述目标执行节点分别执行所述算力任务的执行信息发送至所述合约服务器。
19.一种算力资源的调度装置,其特征在于,应用于区块链网络中的合约服务器,所述装置包括:
发布模块,用于响应于所述区块链网络中的第一需求节点提交的算力需求请求,基于所述算力需求请求,在所述区块链网络中发布算力任务;
第一确定模块,用于确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;
第一调度模块,用于基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
20.一种算力资源的调度装置,其特征在于,应用于区块链网络中的代理节点群,所述装置包括:
第一接收模块,用于接收所述区块链网络中的第一需求节点提交的算力需求请求;
第一发送模块,用于将所述算力需求请求发送至所述区块链网络中的合约服务器;其中,所述合约服务器用于:基于所述算力需求请求,在所述区块链网络中发布算力任务;确定所述区块链网络中响应所述算力任务的至少一个候选执行节点,并确定每一所述候选执行节点执行所述算力任务的预期收支信息;基于每一所述候选执行节点的预期收支信息,从各所述候选执行节点中选取并调度至少一个目标执行节点执行所述算力任务。
CN202211678038.5A 2022-12-26 2022-12-26 算力资源的调度方法、装置、系统、设备及存储介质 Pending CN116643873A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211678038.5A CN116643873A (zh) 2022-12-26 2022-12-26 算力资源的调度方法、装置、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211678038.5A CN116643873A (zh) 2022-12-26 2022-12-26 算力资源的调度方法、装置、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116643873A true CN116643873A (zh) 2023-08-25

Family

ID=87619321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211678038.5A Pending CN116643873A (zh) 2022-12-26 2022-12-26 算力资源的调度方法、装置、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116643873A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348999A (zh) * 2023-12-06 2024-01-05 之江实验室 一种业务执行系统及业务执行方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348999A (zh) * 2023-12-06 2024-01-05 之江实验室 一种业务执行系统及业务执行方法
CN117348999B (zh) * 2023-12-06 2024-02-23 之江实验室 一种业务执行系统及业务执行方法

Similar Documents

Publication Publication Date Title
CN106453146B (zh) 私有云计算资源的分配方法、系统、设备和可读存储介质
Doulamis et al. Fair scheduling algorithms in grids
Rehman et al. Multi‐objective approach of energy efficient workflow scheduling in cloud environments
JP6247388B2 (ja) バーストモード制御
Jie et al. Online task scheduling for edge computing based on repeated Stackelberg game
CN109032800A (zh) 一种负载均衡调度方法、负载均衡器、服务器及系统
CN112600887A (zh) 算力管理方法和装置
CN116643873A (zh) 算力资源的调度方法、装置、系统、设备及存储介质
Li et al. A price-incentive resource auction mechanism balancing the interests between users and cloud service provider
Addya et al. A game theoretic approach to estimate fair cost of VM placement in cloud data center
Lu et al. Auction design for cross-edge task offloading in heterogeneous mobile edge clouds
Zhang et al. Service pricing and selection for IoT applications offloading in the multi-mobile edge computing systems
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
Kwantwi et al. Blockchain-based computing resource trading in autonomous multi-access edge network slicing: A dueling double deep Q-learning approach
US10547497B1 (en) Methods and systems for providing predictive rating using a buffer
CN114884900B (zh) 资源分配方法、装置、设备及存储介质
CN108279968B (zh) 一种虚拟机资源的调度方法及装置
US11950173B2 (en) Method of determining shared service index based on shared service of communication credential
Tang et al. A Blockchain-Empowered Incentive Mechanism for Cross-Silo Federated Learning
CN115048224B (zh) 一种基于多个云服务商的算力复用管理方法及其装置
CN116954927B (zh) 一种分布式异构数据采集方法、存储介质及电子设备
JP7235296B2 (ja) セッション管理方法、セッション管理装置、プログラム
CN113538117B (zh) 基于区块链的车联网资源分配拍卖方法
Sharma Block Chain Driven Marketing Resources in Mobile Edge Computing and System
Balajee Maram et al. Resource Allocation and Optimization Scheduling Scheme of Edge Resources in Fog Computing Access Network

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