CN116560841A - 志愿计算方法、装置、计算机设备和存储介质 - Google Patents

志愿计算方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116560841A
CN116560841A CN202310530735.4A CN202310530735A CN116560841A CN 116560841 A CN116560841 A CN 116560841A CN 202310530735 A CN202310530735 A CN 202310530735A CN 116560841 A CN116560841 A CN 116560841A
Authority
CN
China
Prior art keywords
task
volunteer computing
volunteer
cluster
computing
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
CN202310530735.4A
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310530735.4A priority Critical patent/CN116560841A/zh
Publication of CN116560841A publication Critical patent/CN116560841A/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
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种志愿计算方法、装置、计算机设备和存储介质。所述方法包括:获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。采用本方法能够提高志愿计算服务的算力。

Description

志愿计算方法、装置、计算机设备和存储介质
技术领域
本申请涉及广域协同技术领域,特别是涉及一种志愿计算方法、装置、计算机设备和存储介质。
背景技术
志愿计算旨在解决各领域对计算资源需求的日益增多和可用设备算力不足的矛盾日益突出的问题,由于采购设备和使用云服务器往往需要较高的成本,因此对于部分数据不敏感类型的科研相关计算,可以使用志愿计算模型来分担大部分计算任务,即用户通过在个人计算机或者移动终端设备中安装客户端,选择要参与的科学任务并执行计算,本地计算完成后,自动将结果上报到志愿计算中心。志愿计算服务实现了使普通用户参与科研计算,既激发了群众对科研的热情,也减少了对算力资源的投入。
传统的志愿计算模型,只允许普通用户使用个人计算机或移动终端参与任务。然而,对于部分计算量巨大且对结果时效要求高的任务,由于个人计算机或移动终端的算力有限,无法控制执行时长。
针对相关技术中参与志愿服务的个人计算机提供的算力资源有限的问题,尚未提出有效的解决办法。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高志愿计算服务的算力资源的志愿计算方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种志愿计算方法。所述方法包括:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
在其中的一个实施例中,所述基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器:所述状态信息包括集群资源使用率;获取预设阈值;若所述集群资源使用率低于预设阈值,则生成对应客户端容器和集群任务容器。
在其中的一个实施例中,所述将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算包括:将所述客户端容器和所述任务容器发送至所述志愿计算集群;获取所述客户端容器发送的设备注册请求;基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务,以使所述任务容器执行志愿计算任务。
在其中的一个实施例中,所述基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务包括:检测所述志愿计算集群是否首次执行志愿计算任务;若是,则获取所述志愿计算集群的算力数据,所述算力数据包括处理器频率数据、内存数据以及可用磁盘数据;基于所述算力数据分配志愿计算任务至所述任务容器。
在其中的一个实施例中,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:检测所述志愿计算集群是否首次执行志愿计算任务;若否,则获取所述志愿计算集群的历史任务完成数据,所述历史任务完成数据包括任务完成时长;根据所述历史任务完成数据分配志愿计算任务至所述任务容器。
在其中的一个实施例中,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:获取所述志愿计算集群的历史运行数据,所述历史运行数据包括预设周期内的处理器使用率、内存使用率、网络IO以及磁盘IO;基于所述历史运行数据分配志愿计算任务至所述任务容器。
第二方面,本申请还提供了一种志愿计算装置。所述装置包括:
检测模块,用于获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
处理模块,用于基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
分配模块,用于将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
上述志愿计算方法、装置、计算机设备和存储介质,通过获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。基于容器技术将计算服务器集群接入志愿计算服务中,相比于现有的基于个人计算机进行志愿计算,有效提高了志愿计算服务的算力。
附图说明
图1为一个实施例中志愿计算方法的应用环境图;
图2为一个实施例中志愿计算方法的流程示意图;
图3为一个实施例中的基于广域协同的志愿任务管理与调度系统的示意图;
图4为另一个实施例中志愿计算方法的时序图;
图5为另一个实施例中志愿计算服务的任务分配方法的流程示意图;
图6为一个实施例中志愿计算装置的结构示意图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的志愿计算方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备以及工作站等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种志愿计算方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S201,获取志愿计算集群的状态信息。
具体地,所述志愿计算集群包括至少一个志愿计算终端。志愿计算集群即参与到志愿计算服务中的计算机集群。计算机集群简称集群,是一种计算机系统,计算机集群通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。相较于一般的个人计算机,计算机集群无疑拥有更强的计算能力,可以执行更多、更复杂的计算任务,提供更短任务执行时间,保证任务执行的时效性。志愿计算终端是指参与到志愿计算服务中的终端设备,如个人计算机,如台式电脑、笔记本电脑、工作站、平板电脑、智能手机等。志愿计算终端可以组合形成志愿计算集群,也可以以离散形式直接参与到志愿计算服务中。状态信息用于确认当前志愿计算集群或志愿计算终端是否能够用于执行志愿计算任务。在其中的一个实施例中,状态信息可以是志愿计算集群的资源使用率或设备工作时长等。
步骤S202,基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器。
具体地,容器主要是指容器技术。现代软件开发的一大目的就是隔离,应用程序在运行时相互独立,互不干扰。实现程序独立运行的一种方案即虚拟机技术,但虚拟机技术对内存的占用较高。容器技术只隔离应用程序的运行环境,但容器之间可以共享同一个操作系统,因而容器具备轻量级高,占用资源少的优势。当检测到当前存在可利用的志愿计算集群和/或志愿计算终端,如计算机集群和个人计算机设备,且当前志愿计算集群和/或志愿计算终端的状态信息显示当前设备的资源使用率满足要求,可执行志愿计算任务,则服务器基于该状态信息生成对应的客户端容器和任务容器。其中,客户端容器内包括客户端,客户端用于向服务器注册当前设备信息,并申领志愿计算任务。任务容器用于在志愿计算集群和/或志愿计算终端上基于设备资源,执行志愿计算任务。
步骤S203,将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
具体地,在生成客户端容器和任务容器后,将客户端容器和任务容器下发至志愿计算集群,志愿计算集群通过客户端容器实现设备注册、任务领取以及任务完成后的数据上传;通过任务容器进行志愿计算任务的处理,并在志愿计算任务完成后将计算结果反馈至客户端容器,由客户端容器实现计算结果的上传。
上述志愿计算方法中,借助容器技术,将计算机集群引入到志愿计算服务中。传统的志愿计算模型,只允许普通用户使用个人计算机或移动终端参与任务,对于计算量巨大且对计算结果时效要求高的任务来说,这种计算方式无法控制计算市场,本申请提出的志愿计算方法,可以将计算机集群和离散终端同时参与到志愿计算之中,并且通过获取志愿计算集群的状态信息,在不影响计算机集群的正常使用的同时,充分利用资源完成更多的计算任务。
在其中的一个实施例中,可以将已知的计算资源添加为志愿服务模型中的计算资源池,其中,计算资源包括志愿计算集群和离散志愿计算终端。同时,为志愿计算模型设置设备扫描功能,通过设备扫描,将检测可接入的志愿计算集群和离散志愿终端,以实现计算资源池的扩展。
在其中的一个实施例中,所述基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器:所述状态信息包括集群资源使用率;获取预设阈值;若所述集群资源使用率低于预设阈值,则生成对应客户端容器和集群任务容器。
具体地,集群资源使用率是指集群当前资源的使用量与集群总资源的比值。例如,该集群资源使用率包括但不限于集群CPU资源的总使用率、集群内存资源的总使用率以及磁盘空间的总使用率。通过获取集群资源使用率,将集群资源使用率与预设阈值进行比对,可以判断当前集群的运行状态。若集群资源使用率大于或者等于预设阈值,则说明当前集群资源使用率较高,该计算机集群正处于工作状态,此时处理志愿计算任务可能为当前集群带来较高的性能负担,影响到计算机集群的使用者的使用体验,因此在这种情况下,停止将当前集群接入志愿计算服务中;若集群资源使用率低于预设阈值,则表明当前集群处于空闲状态,因而生成对应的客户端容器和集群任务容器,通过分配客户端容器和集群任务容器至集群中,使集群可以执行志愿任务计算,以提高集群的资源利用率。通过本实施例的志愿计算方法,通过获取集群资源使用率,将集群资源使用率与预设阈值进行比对,从而启动志愿计算过程,能够实现在不影响集群正常使用的前提下,充分提高资源利用率。
在其中的一个实施例中,所述状态信息还包括离散终端资源使用率,离散终端即离散志愿计算终端,包括但不限于个人计算机和移动智能设备。通过将离散终端的资源使用率与相应的资源使用率进行比对,若离散终端的资源使用率低于阈值,则对应生成该离散终端的客户端容器和离散任务容器,将该客户端容器和离散任务容器下发至离散终端进行志愿计算。通过本实施例的志愿计算方法,实现了在不影响离散终端正常使用的前提下,充分提高资源利用率的技术效果。
在其中的一个实施例中,所述将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算包括:将所述客户端容器和所述任务容器发送至所述志愿计算集群;获取所述客户端容器发送的设备注册请求;基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务,以使所述任务容器执行志愿计算任务。
具体地,客户端容器中包括集群客户端。客户端容器和任务容器发送至志愿计算集群后,集群客户端发送设备注册请求至志愿计算服务端,志愿计算服务端可设置于服务器,也可以设置于服务器连接的终端设备。志愿计算服务端的设备注册接口接收设备注册请求,即注册信息,然后从注册信息中解析该集群终端设备的唯一标志以及设备算力和负载情况以及个性化设置信息。设备注册完成后,集群客户端领取任务数据并开始执行志愿计算任务。
在其中的一个实施例中,所述基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务包括:检测所述志愿计算集群是否首次执行志愿计算任务;若是,则获取所述志愿计算集群的算力数据,所述算力数据包括处理器频率数据、内存数据以及可用磁盘数据;基于所述算力数据分配志愿计算任务至所述任务容器。
具体地,检测志愿计算集群是否首次执行志愿计算任务,若是,则根据设备算力数据决定下发到该设备的任务数据分片数量,计算方式为:
slicesNum=DeviceScore/JobPerf
其中,DeviceScore是设备的性能得分,JobPerf是通过任务的性能指标计算生成的常量,性能消耗越大,该值越高,DeviceScore计算方式为:
DeviceScore=Avg(totalCPU*C1,totalRam*C2,totalStorage*C3)
其中,totalCPU是集群内设备的总CPU频率数之和,totalRam是总内存,totalStorage是总可用磁盘空间;C1、C2和C3是常量,分别反映CPU,内存,磁盘空间的影响占比,C1、C2和C3的值可以动态调整。
在其中的一个实施例中,还可为志愿计算集群设置预设检测周期,检测该志愿计算集群近期是否执行过志愿计算任务,通过检测志愿计算集群近期是否执行过志愿计算任务,可进一步对获取该志愿计算集群的任务处理能力,便于在下发任务志愿计算任务时分配与该志愿计算集群的任务处理能力相适应的任务数量。该预设检测周期可以根据实际需要进行配置,例如,预设检测周期可以为1小时。
在其中的一个实施例中,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:检测所述志愿计算集群是否首次执行志愿计算任务;若否,则获取所述志愿计算集群的历史任务完成数据,所述历史任务完成数据包括任务完成时长;根据所述历史任务完成数据分配志愿计算任务至所述任务容器。
具体地,检测志愿计算集群是否首次执行志愿计算任务,若否,则获取该志愿计算集群的历史任务完成数据,基于历史任务完成数据综合判断该志愿计算集群的任务处理能力。其中,历史任务完成数据包括任务完成时长。通过将任务完成时长与任务下发时预计的任务完成时间进行比对,可以确定该志愿计算集群在实际任务处理中的用时情况。若历史任务完成时长超过预计的任务完成时长,则说明该志愿计算集群的实际处理能力可能弱于根据设备硬件信息预估的处理能力,此时则不考虑为该志愿计算计算集群分配对计算结果的时效性需求较高的志愿计算任务,或者基于历史任务完成时长对应的任务数据量,酌情减少此次下发的待计算的任务数据包的数量。基于历史人物完成数据,确定本次下发的数据分片数量,其中,数据分片数量是指一个志愿计算任务可能分解为多个子任务,该过程称为任务分片,在过程中,不同子任务可能交由集群中不同设备进行分布式处理,当判断集群的处理能力弱于预期时,则降低分配的数据分片数量。
在其中的一个实施例中,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:获取所述志愿计算集群的历史运行数据,所述历史运行数据包括预设周期内的处理器使用率、内存使用率、网络IO以及磁盘IO;基于所述历史运行数据分配志愿计算任务至所述任务容器。
具体地,在志愿计算任务的执行过程中,可以获取设备运行数据,包括CPU使用率、内存使用率、网络IO以及磁盘IO等,并在任务完成后将该设备运行数据存储为历史运行数据,为下次任务分配提供数据参考。
在其中的一个实施例中,可以根据最近一次志愿计算集群上报结果的数据包对应的历史任务分片数量以及任务上报结果时生成的任务执行监控信息综合判断下发的数据分片数据,计算方式为:
slicesNum=([Min((C4-CpuAvgUtils),(C5-RamAvgUtils)]+1)*N
其中,CPUAvgUtils是监控服务检测数据,表示上一次计算周期内,集群内CPU的平均使用率,RamAvgUtils是上一次计算周期内集群内存的平均使用率。C4,C5是为期望的使用率常量,该期望值可以根据实际需要或者用户配置进行配置,目的是尽可能让后续的CPU内存使用率趋向期望的水平。
在其中的一个具体实施例中,若志愿计算机器的设备上报结果包含N个单位的数据包,且平均计算时间小于预期,CPU平均使用率80%,内存平均使用率70%,则认为当前设备算力充足,下一次任务发1.2*N个单位的数据包。如果设备上报结果时,志愿计算服务端判断当前设备计算时间大于预期,则下一次下发数据的数据包大小持平。
在本实施例中,公开了一种基于广域协同的志愿任务管理与调度系统,如图3所示,该系统包含任务管理平台、志愿计算服务端,志愿计算终端设备,志愿计算集群等模块,这些模块共同参与志愿计算任务调度与执行。其中,任务管理平台用于提供任务管理服务,负责集群发现,集群接入,以及任务在集群间的动态调度,志愿计算服务端负责志愿计算任务分发,志愿计算终端设备和集群负责领取任务并执行。其中志愿计算集群包括Kubernetes集群,以及志愿计算集群客户端容器和任务容器,Kubernetes集群也称k8scluster。Kubernetes是开源的容器调度编排平台,由于Kubernetes适用服务抽象支持命名和负载均衡,并且通过标签组织多容器调度单元Pod,实现了较好的灵活性、可用性和负载均衡性。因此在云原生技术发展的浪潮之中,Kubernetes伴随着容器技术的发展,成为了目前云时代的操作系统。志愿计算集群客户端容器和任务容器通过Kubernetes Pod将他们封装在一起,Kubernetes Pod简称为Worker pod。进行资源共享,并且支持批量动态调度。当有新的志愿计算任务时,任务管理平台通过实时监控到的各集群使用信息,动态调度集群代理到合适的集群,领取并执行对应子任务。该系统支持集群与离散设备共同参与执行志愿计算,服务端动态分配任务,并且可以根据平台算力与负载自适应调整子任务规模,在不影响集群与终端本身使用的情况下,实现了更高效率的使用离散设备与集群算力执行志愿计算任务。
在本实施例中,提供了一种志愿计算方法,应用于如上述实施例的志愿任务管理与调度系统,如图4所示,Kubernetes集群向任务管理平台进行集群注册;在任务管理平台中生成Worker Pod yaml描述信息,并创建集群Worker Pod下发至Kubernetes集群。Kubernetes集群的集群worker向志愿计算服务端发起请求,进行客户端注册。志愿计算服务端对客户端可执行任务大小进行评估。集群worker计算客户端领取任务,得到客户端当前可执行任务分片数。数据层领取任务并通知任务容器执行任务,并上传数据结果。
在其中的一个实施例中,任务管理平台包括集群管理中心、镜像中心、数据中心以及任务调度中心,其中:
集群管理中心,用于提供集群发现功能,支持Kubernetes集群的动态加入和退出,维护Kubernetes集群的元信息,封装Kubernetes接口,支持发送集群资源操作请求到具体的Kubernetes集群,进行资源的创建、删除等操作。
镜像中心,用于管理镜像,主要包括志愿计算服务端镜像,志愿计算任务镜像。
数据中心,用于存储与管理任务的输入数据,并接受结果的上传与校验。
任务调度中心,用于获取监测的集群状态,并根据集群算力以及资源使用情况选择集群自动部署志愿计算服务端,以及志愿计算集群客户端。
在其中的一个实施例中,志愿计算服务端包括:使用Go语言实现的Web服务、关系型数据库。
使用Go语言实现的Web服务,用于接收客户端的注册请求,下发任务数据,任务结果校验,客户端心跳检测,客户端任务分发。
关系型数据库:基于任务元信息,客户端信息,子任务执行信息。
在其中的一个实施例中,志愿任务管理与调度系统还包括集群代理端,该集群代理端还包括集群代理服务容器和集群执行任务worker容器,其中:
集群代理服务容器,主要负责向志愿计算服务端注册任务,拉取任务数据,监控同Pod内运行的子任务worker容器,并上报任务结果数据。
集群执行任务worker容器,主要负责执行子任务。
在其中的一个实施例中,离散设备客户端包括离散设备客户端程序和docker服务,其中:
离散设备客户端主要负责提供可视化的任务参与执行页面,用户登录到志愿计算平台,向志愿计算服务端注册任务,拉取任务数据与镜像,使用容器的方式执行任务,检测并上报执行结果。
Docker服务,负责运行任务容器来执行子任务。
在其中的另一个实施例中,提供了一种基于广域协同的志愿计算任务调度方法,该方法包括:
集群发现阶段。在该阶段,用户在任务管理平台,集群管理模块,选择集群发现,可以添加集群到资源池,用于后续的资源调度;若没有新的集群加入,可以直接使用已纳管的资源进行任务调度。
Pod创建阶段。任务管理平台集群监控各集群负载信息,当集群整体使用率低于阈值时,自动生成集群客户端与Worker Pod yaml描述文件,用于在Kubernetes集群上创建资源。由任务管理平台封装的集群管理接口下发,在对应集群上创建执行任务的Worker Pod;
任务适配阶段。Worker Pod内部的集群客户端容器优先启动,启动后,发起注册请求到志愿计算服务端,注册并领取任务数据,任务领取成功过后,pod内的worker容器开始执行任务。
在其中的一个实施例中,提供了一种志愿计算服务的任务分配方法,如图5所示,该方法包括:
集群客户端发送设备注册请求到志愿计算服务端,服务端设备注册接口接收注册信息,从信息中解析设备的唯一标志以及设备算力和负载情况以及个性化设置信息。
集群客户端注册成功后,进入任务执行流程,首先请求志愿计算服务端获取任务。
志愿计算服务端接收领取任务请求后,检测该客户端近期是否有上报结果,其中:
若否,则获取客户端配置,根据客户端配置确定算力情况,进而根据设备算力情况计算可分配任务数量,计算方式为:slicesNum=DeviceScore/JobPerf。其中,DeviceScore是设备的性能得分,JobPerf是通过任务的性能指标计算生成的常量,性能消耗越大,该值越高,DeviceScore计算方式为:DeviceScore=Avg(totalCPU*C1,totalRam*C2,totalStorage*C3)。其中,totalCPU是集群内设备的总CPU频率数之和,totalRam是总内存,totalStorage是总可用磁盘空间;C1、C2和C3是常量,反映CPU,内存,磁盘空间的影响占比,C1、C2和C3的值可以动态调整。。计算完成后,生成对应的数据包并下发数据至志愿计算集群。
若是,则获取最近一次的运行报告以及客户端配置,根据运行报告和客户端配置计算可分配任务数量。例如:根据最近一次运行报告中上报结果的数据包对应的任务分片数量N以及任务上报结果时生成的任务执行监控信息综合判断下发的数据分片数量。计算方式为:
slicesNum=([Min((C4-CpuAvgUtils),(C5-RamAvgUtils)]+1)*N
其中,CPUAvgUtils是监控服务检测数据,表示上一次计算周期内,集群内CPU的平均使用率,RamAvgUtils是上一次计算周期内集群内存的平均使用率。C4,C5是为期望的使用率常量,该期望值可以根据实际需要或者用户配置进行配置,目的是尽可能让后续的CPU内存使用率趋向期望的水平。例如:设备上报结果包含N个单位的数据包,且平均计算时间小于预期,CPU平均使用率80%,内存平均使用率70%,则认为当前设备算力充足,下一次任务发1.2*N个单位的数据包。如果设备上报结果时,志愿计算服务端判断当前设备计算时间大于预期,则下一次下发数据的数据包大小持平。
执行过程中,进行运行状态监控,任务管理平台的监控服务检测上报的设备监控信息,包括CPU使用率,内存使用率,网络IO,磁盘IO。
当前子任务执行完成后,集群内的Worker pod中的客户端获取结果,并上传到数据层指定路径,然后请求支援计算服务端任务结果上报接口。
任务上报后,自动请求获取任务接口,领取新任务,重复上述过程,直到志愿计算任务端判断所有子任务计算完成。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的志愿计算方法的志愿计算装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个志愿计算装置实施例中的具体限定可以参见上文中对于志愿计算方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种志愿计算装置,包括:检测模块10、处理模块20和分配模块30,其中:
检测模块10,用于获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
处理模块20,用于基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
分配模块30,用于将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
处理模块20,还用于所述状态信息包括集群资源使用率;获取预设阈值;若所述集群资源使用率低于预设阈值,则生成对应客户端容器和集群任务容器。
分配模块30,还用于将所述客户端容器和所述任务容器发送至所述志愿计算集群;获取所述客户端容器发送的设备注册请求;基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务,以使所述任务容器执行志愿计算任务。
分配模块30,还用于检测所述志愿计算集群是否首次执行志愿计算任务;若是,则获取所述志愿计算集群的算力数据,所述算力数据包括处理器频率数据、内存数据以及可用磁盘数据;基于所述算力数据分配志愿计算任务至所述任务容器。
分配模块30,还用于检测所述志愿计算集群是否首次执行志愿计算任务;若否,则获取所述志愿计算集群的历史任务完成数据,所述历史任务完成数据包括任务完成时长;根据所述历史任务完成数据分配志愿计算任务至所述任务容器。
分配模块30,还用于获取所述志愿计算集群的历史运行数据,所述历史运行数据包括预设周期内的处理器使用率、内存使用率、网络IO以及磁盘IO;基于所述历史运行数据分配志愿计算任务至所述任务容器。
上述志愿计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种志愿计算方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种志愿计算方法,其特征在于,所述方法包括:
获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
2.根据权利要求1所述的志愿计算方法,其特征在于,所述基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器:所述状态信息包括集群资源使用率;
获取预设阈值;
若所述集群资源使用率低于预设阈值,则生成对应客户端容器和集群任务容器。
3.根据权利要求1所述的志愿计算方法,其特征在于,所述将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算包括:
将所述客户端容器和所述任务容器发送至所述志愿计算集群;
获取所述客户端容器发送的设备注册请求;
基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务,以使所述任务容器执行志愿计算任务。
4.根据权利要求3所述的志愿计算方法,其特征在于,所述基于所述设备注册请求为所述志愿计算集群对应的任务容器分配志愿计算任务包括:
检测所述志愿计算集群是否首次执行志愿计算任务;
若是,则获取所述志愿计算集群的算力数据,所述算力数据包括处理器频率数据、内存数据以及可用磁盘数据;
基于所述算力数据分配志愿计算任务至所述任务容器。
5.根据权利要求3所述的志愿计算方法,其特征在于,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:
检测所述志愿计算集群是否首次执行志愿计算任务;
若否,则获取所述志愿计算集群的历史任务完成数据,所述历史任务完成数据包括任务完成时长;
根据所述历史任务完成数据分配志愿计算任务至所述任务容器。
6.根据权利要求5所述的志愿计算方法,其特征在于,所述基于所述设备注册请求进行设备注册并分配志愿计算任务至所述任务容器还包括:
获取所述志愿计算集群的历史运行数据,所述历史运行数据包括预设周期内的处理器使用率、内存使用率、网络IO以及磁盘IO;
基于所述历史运行数据分配志愿计算任务至所述任务容器。
7.一种志愿计算装置,其特征在于,所述装置包括:
检测模块,用于获取志愿计算集群的状态信息;所述志愿计算集群包括至少一个志愿计算终端;
处理模块,用于基于所述状态信息生成对应志愿计算集群的客户端容器和任务容器;
分配模块,用于将所述客户端容器和所述任务容器发送至所述志愿计算集群进行志愿计算。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202310530735.4A 2023-05-09 2023-05-09 志愿计算方法、装置、计算机设备和存储介质 Pending CN116560841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310530735.4A CN116560841A (zh) 2023-05-09 2023-05-09 志愿计算方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310530735.4A CN116560841A (zh) 2023-05-09 2023-05-09 志愿计算方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116560841A true CN116560841A (zh) 2023-08-08

Family

ID=87501388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310530735.4A Pending CN116560841A (zh) 2023-05-09 2023-05-09 志愿计算方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116560841A (zh)

Similar Documents

Publication Publication Date Title
US10430218B2 (en) Management of demand for virtual computing resources
CN110383764B (zh) 无服务器系统中使用历史数据处理事件的系统和方法
CN109062658A (zh) 实现计算资源服务化的调度方法、装置、介质、设备及系统
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
US20070024898A1 (en) System and method for executing job step, and computer product
CN112114950A (zh) 任务调度方法和装置、以及集群管理系统
CN110162388A (zh) 一种任务调度方法、系统及终端设备
Delamare et al. SpeQuloS: a QoS service for BoT applications using best effort distributed computing infrastructures
CN105308553B (zh) 动态提供存储
CN106528288A (zh) 一种资源管理方法、装置和系统
CN107861796A (zh) 一种支持云数据中心能耗优化的虚拟机调度方法
CN105740085B (zh) 容错处理方法及装置
CN113485830A (zh) 一种电网监控系统微服务自动扩容方法
CN115421920A (zh) 金融产品的任务管理方法及装置、电子设备、存储介质
CN116401024A (zh) 基于云计算的集群扩缩容方法、装置、设备及介质
US11449777B1 (en) Serverless inference execution across a heterogeneous fleet of devices
CN109257256A (zh) 设备监控方法、装置、计算机设备及存储介质
CN117149382A (zh) 虚拟机调度方法、装置、计算机设备和存储介质
CN116560841A (zh) 志愿计算方法、装置、计算机设备和存储介质
CN110109758A (zh) 一种云计算资源分配方法
CN114924888A (zh) 资源配置方法、数据处理方法、装置、设备和存储介质
CN114489978A (zh) 资源调度方法、装置、设备及存储介质
CN113742059A (zh) 任务分配方法、装置、计算机设备和存储介质
CN115391042B (zh) 一种资源分配方法、装置、电子设备及存储介质
Lin et al. A multi-centric model of resource and capability management in cloud simulation

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