CN116107708A - 一种任务执行的方法、装置、存储介质及电子设备 - Google Patents
一种任务执行的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116107708A CN116107708A CN202310137025.5A CN202310137025A CN116107708A CN 116107708 A CN116107708 A CN 116107708A CN 202310137025 A CN202310137025 A CN 202310137025A CN 116107708 A CN116107708 A CN 116107708A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- calculation
- client
- clients
- 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
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/465—Distributed object oriented systems
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书公开了一种任务执行的方法、装置、存储介质及电子设备。该任务执行的方法包括:获取计算任务,并对计算任务进行划分,得到至少两个子任务,在各子任务中确定出目标任务,并将目标任务发送给至少两个客户端,针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对目标任务的计算结果作为候选结果,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断目标结果的数量是否大于预设数量,若是,将目标结果作为目标任务对应的计算结果,并根据各子任务对应的计算结果确定计算任务对应的计算结果,以根据计算任务对应的计算结果执行任务。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种任务执行的方法、装置、存储介质及电子设备。
背景技术
随着对诸如生物、天文、地理等基础科学的深入研究,在进行研究时所涉及的运算规模也逐渐增大,对计算资源的需求逐渐提高,因此,志愿计算的运算方式随之出现,志愿计算是一种分布式计算,通过在用户计算机上运行的客户端,使得用户可以将自己计算机中的空闲资源提供给部分研究任务进行计算,用户也可以通过客户端从任务发布平台请求计算任务,并及时反馈完成计算的任务结果。
然而,目前在志愿计算过程中,任务发布平台无法判断获取到的任务结果是否准确,尤其是在出现一些有意或者无意的被用户制造的错误时,无法对任务结果的准确性进行验证,甚至会对整个研究任务的结果造成影响。
因此,如何保证志愿计算任务计算结果的准确性,是一个亟待解决的问题。
发明内容
本说明书提供一种任务执行的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种任务执行的方法,包括:
获取计算任务,并对所述计算任务进行划分,得到至少两个子任务;
在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务;
针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果;
在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量;
若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行任务。
可选地,在各子任务中确定出目标任务,具体包括:
在获取所述至少两个客户端发送的任务获取请求后,在各子任务中确定出未完成计算,且未被所述至少两个客户端领取过的子任务,作为所述目标任务。
可选地,在各子任务中确定出未完成计算,且未被所述至少两个客户端领取过的子任务,作为所述目标任务,具体包括:
判断所述计算任务是否完成计算;
若否,确定未完成计算的子任务,作为待发放任务;
在各待发放任务中确定出未被所述至少两个客户端领取过的子任务,作为所述目标任务。
可选地,将所述目标结果作为所述目标任务对应的计算结果,具体包括:
将所述目标结果作为所述目标任务对应的计算结果,并向计算结果为目标结果的客户端发送奖励积分,其中,所述奖励积分用于兑换指定奖励。
可选地,将所述目标任务发送给至少两个客户端,具体包括:
针对每个客户端,当监测到该客户端接收到所述目标任务后,扣除所述计算任务的发布方的奖励积分。
可选地,所述方法还包括:
针对每个客户端,若该客户端完成所述目标任务所用的时间超过所述预设时间,则确定该客户端未完成所述目标任务的计算,并将所述目标任务重新发送给其他未领取过所述目标任务的客户端。
可选地,将所述目标结果作为所述目标任务对应的计算结果,具体包括:
针对每个客户端,若在接收到该客户端发送的候选结果之前,已经根据其他客户端对应的候选结果确定完成对所述目标任务的计算,则在该客户端确定出候选结果后向该客户端发送奖励积分。
可选地,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果之前,所述方法还包括:
确定所述目标任务对应的预设发送次数、以及预设置信度;
根据所述预设发送次数以及所述预设置信度,确定所述预设数量。
可选地,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,具体包括:
若接收到的候选结果的数量达到所述预设数量,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为所述目标结果。
可选地,所述方法还包括:
若所述目标结果的数量小于所述预设数量,判断是否所有领取所述目标任务的客户端均计算出所述候选结果;
若是,将所述目标任务发送给未领取过所述目标任务的其他客户端;
若否,待所有客户端均计算出所述候选结果后,判断所述目标结果的数量是否大于所述预设数量。
可选地,所述方法还包括:
若所述目标结果的数量小于所述预设数量,将对所述目标任务进行初始化;
将初始化的所述目标任务发送给未领取过所述目标任务的其他客户端。
可选地,所述方法还包括:
若所述发布方持有的奖励积分不够被扣除,则向所述发布方发送对所述奖励积分进行充值的通知。
本说明书提供了一种任务执行的装置,包括:
获取模块,获取计算任务,并对所述计算任务进行划分,得到至少两个子任务;
发送模块,在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务;
判断模块,针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果;
确定模块,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量;
执行模块,若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行所述计算任务。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的任务执行的方法中,服务器获取计算任务,并对计算任务进行划分,得到至少两个子任务,在各子任务中确定出目标任务,并将目标任务发送给至少两个客户端,针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对目标任务的计算结果作为候选结果,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断目标结果的数量是否大于预设数量,若是,将目标结果作为目标任务对应的计算结果,并根据各子任务对应的计算结果确定计算任务对应的计算结果,以根据计算任务对应的计算结果执行任务。
从上述方法可以看出,本方案在执行志愿计算的过程中,可以向多个客户端发送同一个目标任务,这样一来,服务器就可以根据满足条件的计算结果的数量来对各计算结果的准确性进行验证,从而得到正确的计算结果。相比于目前志愿计算过程中每一个分片任务只发送一次,无法确定计算结果是否准确的方法,本方案能够充分保证计算任务结果的准确性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种任务执行的方法的流程示意图;
图2为本说明书中提供的一种任务发送的过程示意图;
图3为本说明书中提供的一种计算结果的校验过程示意图;
图4为本说明书中提供的一种目标任务的计算过程示意图;
图5为本说明书提供的一种任务执行的装置的示意图;
图6为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种任务执行的方法的流程示意图,包括以下步骤:
S101:获取计算任务,并对所述计算任务进行划分,得到至少两个子任务。
诸如科研机构、研发单位等计算业务的提供方可以将需要进行计算的计算任务在发布到志愿计算的任务平台,该计算任务可以包含有数据分析、数据统计、数据处理等多种计算作业。
例如,在天文研究领域中,天文望远镜会在短时间内采集到大量的天文数据,因此,科研机构可以将这些天文数据对应的计算任务发送到志愿计算的任务平台,从而通过该任务平台将计算任务进行分割,并分配给不同用户的个人计算机(Personal Computer,PC),进而通过多个PC的闲置计算资源完成对整个计算任务的运算,通过对天文数据进行分析以及处理获取到所需的天文信息(如天体的运行规律、天体图像等)。
在本说明书中,用于实现任务执行的方法的执行主体可以是志愿计算的任务平台的服务器,当然也可以为其他设备,为了便于描述,本说明书仅以服务器时执行主体为例,对本说明书提供的一种任务执行的方法进行说明。
服务器可以获取发布方在任务平台发布的计算任务,并将该计算任务划分为多个任务分片,每一个任务分片对应一个子任务。
另外,发布方可以设置每个子任务对应的预设发送次数(n)以及预设置信度(p),其中,预设发送次数表示一个子任务能够发送给几个不同的客户端,预设置信度表示最低正确率,当子任务的最终计算结果满足该最低正确率时,则认为满足该置信度的计算结果是正确的。
当服务器获取到各客户端发送的任务获取请求后,可以先判断整个计算任务是否完成,若已经完成则不再向各客户端下发子任务,若未完成,则服务器可以确定出未完成计算的子任务,作为待发放任务,而后从待发放任务中确定出发送任务获取请求的客户端未领取过的子任务,作为目标任务,从而保证每个客户端只领取一次相同的子任务。换句话说,在本说明书中,同一个子任务可以发送给多个不同的客户端,但是同一个客户端只允许领取一次同一个子任务。
S102:在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务。
当服务器接收到多个客户端发送的任务获取请求后,可以将确定出的目标任务分配这些客户端。
另外,任务的发布方可以预先在任务平台对奖励积分进行充值,当有客户端领取到目标任务时(此时还未对目标任务进行计算),服务器可以先对发布方的奖励积分进行扣除,该奖励积分可以用于兑换指定的奖励,如在任务平台中兑换诸如生活用品、玩具、电器、购物卡等物品。
需要说明的是,此时服务器只是先对任务发布方的奖励积分进行扣除,但并未将奖励积分发送给领取目标任务的各客户端。
当服务器检测到发布方的奖励积分不足时,此可以向发布方发送充值积分的通知,并停止向客户端发送该目标任务。为了便于理解,本说明书提供了一种任务发送的过程示意图,如图2所示。
图2为本说明书中提供的一种任务发送的过程示意图。
其中,客户端向任务平台的服务器发送任务获取请求,服务器在接收到该请求后,会首先判断计算任务是否已经完成,若未完成,则查询可以下发的待发放任务,并判断该客户端是否领取过该待发放任务,若是,则继续判断下一待发放任务,若否则将待发放任务作为目标任务发送至客户端,并扣除发布方的奖励积分,如果发布方积分不足,则通知发布方进行充值,该目标任务的领取失败,若持有足够积分则将该目标任务下发客户端。
S103:针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果。
当客户端领取目标任务后,可以对目标任务进行计算,并实时向服务器上报处理状态。服务器中设置有超时处理模块,该模块会记录该领取信息,当客户端对目标任务进行计算所用的时间超过预设时间时,此时可以确定计算超时,服务器可以重新将该目标任务发送给其他未领取过的客户端。该预设时间可以根据实际情况进行设定,本说明书对此不做具体限定。
在此过程中,服务器可以查询上述领取信息对应的上报记录,若未发现上报记录,则说明在规定时间内客户端并未完成目标任务并上报结果,此时判断该记录已超时,重新发放目标任务,若发现上报记录,则忽略超时信息。
而若客户端对目标任务进行计算所用的时长未超过预设时长,则可以将该客户端对目标任务的计算结果作为候选结果。
S104:在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量。
S105:若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行任务。
服务器可以根据上述预设发送次数(n)以及预设置信度(p),确定上述预设数量,该预设数量可以根据预设发送次数和预设置信度的乘积进行确定,即m=np,其中,m为预设发送次数,表示当服务器收到np个目标任务副本的计算结果且这些结果相匹配,则认为这些相匹配的计算结果是可信的。
具体的,当服务器获得的候选结果的数量超过预设数量时,则可以进一步在获得的各候选结果中确定出相互匹配的各候选结果,作为目标结果,若目标结果也大于或等于预设数量,则说明这些目标结果是可信的,可以作为正确的计算结果,当目标结果若未超过预设数量,且发送候选结果的客户端的数量未超过(n),说明此时可能有部分客户端未完成计算,服务器可以通知已经完成计算的各客户端继续进行等待,直至接收到所有客户端的候选结果(n个候选结果),若此时目标结果的数量仍未超过预设数量,则可以认为这些候选结果都是不准确的,此时服务器可以确定目标任务的计算失败,并将目标任务重新发送给其他未领取过的客户端。
当然,服务器也可以在获取到所有候选结果后,再从这些候选结果中确定出相互匹配的各目标结果,进而判断目标结果的数量是否大于预设数量。
对各候选结果是否相互匹配的判定方式可以有多种,其中,服务器可以将相同的各候选结果作为目标结果,例如,假设上述预设数量为10,当服务器接收到10个以上客户端的候选结果,并且这些候选结果中有至少10个是相同的,则可以认为这些相同的候选结果相互匹配并作为目标结果。
此外,服务器也可以将偏差不超过预设偏差范围的各候选结果作为目标结果,该偏差范围可以根据实际情况进行设定,也可以由目标任务的发布方进行设定。例如,假设上述偏差范围为±1,当服务器接收到10个以上客户端的候选结果,并且这些候选结果中有至少10个候选结果之间的偏差不超过该偏差范围(±1)时,则可以认为这些候选结果相互匹配并作为目标结果。
当然,上述判定方式也可以由发布方进行设定,本说明书对此不做具体限定。
当确定目标结果的数量大于上述预设数量后,则可以认为目标结果是准确的,此时可以将目标结果作为目标任务的最终计算结果,并向计算结果正确(计算结果为目标结果)的客户端发送奖励积分。
而若最终确定出的目标结果的数量小于上述预设数量,则目标任务的此次计算失败,服务器可以对目标任务进行初始化,而后将初始化的所述目标任务发送给未领取过所述目标任务的其他客户端。为了便于理解,本说明书提供了一种对计算结果的校验过程示意图,如图3所示。
图3为本说明书中提供的一种计算结果的校验过程示意图。
其中,服务器接收到各客户端发送的候选结果后,可以判断候选结果的数量是否超过预设数量(np),若否,则说明还有客户端未完成对目标任务的计算,此时服务器可以向已经完成的客户端下发通知,告知用户需要等待其他客户端完成计算。若候选结果的数量超过预设数量,服务器可以通过上述方法对各候选结果进行冗余校验,若校验成功则确定计算完成,并向校验通过的客户端发送奖励积分,若校验失败,则查询已经完成计算的客户端的数量,若该数量小于n,说明还有其他客户端未完成计算,若大于n,则说明所有校验结果可能都是不准确的,此时服务器可以将目标任务重置为初始状态(未领取状态),并将其重新下发给未领取过该目标任务的客户端。
另外,由于当服务器接收到超过预设数量的候选结果时就已经开始对目标结果的数量进行判定,因此,在此过程中可能会出现一些客户端计算出候选结果的时间较晚,当这些客户端计算出候选结果后,服务器已经根据其他客户端发送的候选结果确定出目标结果的数量超过预设数量,完成对目标任务的计算,此时服务器可以不再判断这些较后完成计算的候选结果与其他候选结果是否匹配,而是在接收到这些较后完成计算的客户端计算出候选结果后直接向这些客户端发送奖励积分。
当发布方发布的计算任务对应的所有子任务均完成计算并获得相应的计算结果后,服务器可以根据各子任务对应的计算结果确定整体计算任务对应的计算结果。
为了便于理解,本说明书提供了一种目标任务的计算过程示意图,如图4所示。
图4为本说明书中提供的一种目标任务的计算过程示意图。
其中,在初始化的过程中提供方可以在任务平台发布计算任务,并提供配置信息,包括每个子任务对应的发送次数以及置信度,而后客户端可以领取目标任务,并在计算过程中上报计算状态,服务器接收到记录的状态信息后,可以判断计算结果是否超时,而后对接收到的未超时的候选计0算结果进行校验,直至满足条件(即目标结果的数量大于预设数量),则认为完成目标任务。
而后服务器可以根据计算任务的计算结果执行任务,如根据计算结果生成图像,训练模型,以及对规律(如对天体运行规律、生物演化规律等)进行推导或预测等。
需要说明的是,当发布方上传计算任务后,服务器可以将该计算任务的各子任务进行加密,从而将加密后的子任务发送给各客户端,由各客户端计算出各子任务的加密计算结果并上传到服务器,而后服务器可以根据所有子任务的加密计算结果,计算出整体计算任务的加密计算结果,并对该加密计算结果进行解密,而后将解密后的整体计算结果发送给发布方,从而保证志愿计算过程中的数据安全。
从上述方法可以看出,本方案在执行志愿计算的过程中,可以向多个客户端发送同一个目标任务,这样一来,服务器就可以根据满足条件的计算结果的数量来对各计算结果的准确性进行验证,从而得到正确的计算结果。相比于目前志愿计算过程中每一个分片任务只发送一次,无法确定计算结果是否准确的方法,本方案能够充分保证计算任务结果的准确性。
另外,本方案能够对计算结果正确的各客户端发送奖励积分,从而提高用户参与子任务的积极性。
以上为本说明书的一个或多个实施任务执行的方法,基于同样的思路,本说明书还提供了相应的任务执行的装置,如图5所示。
图5为本说明书提供的一种任务执行的装置的示意图,包括:
获取模块501,获取计算任务,并对所述计算任务进行划分,得到至少两个子任务;
发送模块502,在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务;
判断模块503,针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果;
确定模块504,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量;
执行模块505,若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行所述计算任务。
可选地,所述发送模块502具体用于,在获取所述至少两个客户端发送的任务获取请求后,在各子任务中确定出未完成计算,且未被所述至少两个客户端领取过的子任务,作为所述目标任务。
可选地,所述发送模块502具体用于,判断所述计算任务是否完成计算;若否,确定未完成计算的子任务,作为待发放任务;在各待发放任务中确定出未被所述至少两个客户端领取过的子任务,作为所述目标任务。
可选地,所述执行模块505具体用于,将所述目标结果作为所述目标任务对应的计算结果,并向计算结果为目标结果的客户端发送奖励积分,其中,所述奖励积分用于兑换指定奖励。
可选地,所述发送模块502具体用于,针对每个客户端,当监测到该客户端接收到所述目标任务后,扣除所述计算任务的发布方的奖励积分。
可选地,所述判断模块503还用于,针对每个客户端,若该客户端完成所述目标任务所用的时间超过所述预设时间,则确定该客户端未完成所述目标任务的计算,并将所述目标任务重新发送给其他未领取过所述目标任务的客户端。
可选地,所述执行模块505具体用于,针对每个客户端,若在接收到该客户端发送的候选结果之前,已经根据其他客户端对应的候选结果确定完成对所述目标任务的计算,则在该客户端确定出候选结果后向该客户端发送奖励积分。
可选地,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果之前,所述确定模块504还用于,确定所述目标任务对应的预设发送次数、以及预设置信度;根据所述预设发送次数以及所述预设置信度,确定所述预设数量。
可选地,所述确定模块504具体用于,若接收到的候选结果的数量达到所述预设数量,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为所述目标结果。
可选地,所述确定模块504还用于,若所述目标结果的数量小于所述预设数量,判断是否所有领取所述目标任务的客户端均计算出所述候选结果;若是,将所述目标任务发送给未领取过所述目标任务的其他客户端;若否,待所有客户端均计算出所述候选结果后,判断所述目标结果的数量是否大于所述预设数量。
可选地,所述确定模块504还用于,若所述目标结果的数量小于所述预设数量,将对所述目标任务进行初始化;将初始化的所述目标任务发送给未领取过所述目标任务的其他客户端。
可选地,所述发送模块502还用于,若所述发布方持有的奖励积分不够被扣除,则向所述发布方发送对所述奖励积分进行充值的通知。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种任务执行的方法。
本说明书还提供了图6所示的一种对应于图1的电子设备的示意结构图。如6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的任务执行的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware DescriptionLanguage,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated CircuitHardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、***、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (15)
1.一种任务执行的方法,其特征在于,所述方法应用于志愿计算,包括:
获取计算任务,并对所述计算任务进行划分,得到至少两个子任务;
在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务;
针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果;
在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量;
若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行任务。
2.如权利要求1所述的方法,其特征在于,在各子任务中确定出目标任务,具体包括:
在获取所述至少两个客户端发送的任务获取请求后,在各子任务中确定出未完成计算,且未被所述至少两个客户端领取过的子任务,作为所述目标任务。
3.如权利要求2所述的方法,其特征在于,在各子任务中确定出未完成计算,且未被所述至少两个客户端领取过的子任务,作为所述目标任务,具体包括:
判断所述计算任务是否完成计算;
若否,确定未完成计算的子任务,作为待发放任务;
在各待发放任务中确定出未被所述至少两个客户端领取过的子任务,作为所述目标任务。
4.如权利要求1所述的方法,其特征在于,将所述目标结果作为所述目标任务对应的计算结果,具体包括:
将所述目标结果作为所述目标任务对应的计算结果,并向计算结果为目标结果的客户端发送奖励积分,其中,所述奖励积分用于兑换指定奖励。
5.如权利要求4所述的方法,其特征在于,将所述目标任务发送给至少两个客户端,具体包括:
针对每个客户端,当监测到该客户端接收到所述目标任务后,扣除所述计算任务的发布方的奖励积分。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对每个客户端,若该客户端完成所述目标任务所用的时间超过所述预设时间,则确定该客户端未完成所述目标任务的计算,并将所述目标任务重新发送给其他未领取过所述目标任务的客户端。
7.如权利要求4所述的方法,其特征在于,将所述目标结果作为所述目标任务对应的计算结果,具体包括:
针对每个客户端,若在接收到该客户端发送的候选结果之前,已经根据其他客户端对应的候选结果确定完成对所述目标任务的计算,则在该客户端确定出候选结果后向该客户端发送奖励积分。
8.如权利要求1所述的方法,其特征在于,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果之前,所述方法还包括:
确定所述目标任务对应的预设发送次数、以及预设置信度;
根据所述预设发送次数以及所述预设置信度,确定所述预设数量。
9.如权利要求8所述的方法,其特征在于,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,具体包括:
若接收到的候选结果的数量达到所述预设数量,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为所述目标结果。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标结果的数量小于所述预设数量,判断是否所有领取所述目标任务的客户端均计算出所述候选结果;
若是,将所述目标任务发送给未领取过所述目标任务的其他客户端;
若否,待所有客户端均计算出所述候选结果后,判断所述目标结果的数量是否大于所述预设数量。
11.如权利要求8所述的方法,其特征在于,所述方法还包括:
若所述目标结果的数量小于所述预设数量,将对所述目标任务进行初始化;
将初始化的所述目标任务发送给未领取过所述目标任务的其他客户端。
12.如权利要求5所述的方法,其特征在于,所述方法还包括:
若所述发布方持有的奖励积分不够被扣除,则向所述发布方发送对所述奖励积分进行充值的通知。
13.一种任务执行的装置,其特征在于,包括:
获取模块,获取计算任务,并对所述计算任务进行划分,得到至少两个子任务;
发送模块,在各子任务中确定出目标任务,并将所述目标任务发送给至少两个客户端,其中,每个客户端只允许执行一次所述目标任务;
判断模块,针对每个客户端,判断该客户端完成所述目标任务所用的时间是否超过预设时间,若否,将该客户端对所述目标任务的计算结果作为候选结果;
确定模块,在至少部分客户端对应的候选结果中确定出互相匹配的各候选结果,作为目标结果,并判断所述目标结果的数量是否大于预设数量;
执行模块,若是,将所述目标结果作为所述目标任务对应的计算结果,并根据各子任务对应的计算结果确定所述计算任务对应的计算结果,以根据所述计算任务对应的计算结果执行所述计算任务。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~12任一项所述的方法。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310137025.5A CN116107708A (zh) | 2023-02-09 | 2023-02-09 | 一种任务执行的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310137025.5A CN116107708A (zh) | 2023-02-09 | 2023-02-09 | 一种任务执行的方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107708A true CN116107708A (zh) | 2023-05-12 |
Family
ID=86255956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310137025.5A Pending CN116107708A (zh) | 2023-02-09 | 2023-02-09 | 一种任务执行的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107708A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743472A (zh) * | 2024-02-06 | 2024-03-22 | 之江实验室 | 一种存储任务断点同步方法、装置、介质及设备 |
-
2023
- 2023-02-09 CN CN202310137025.5A patent/CN116107708A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743472A (zh) * | 2024-02-06 | 2024-03-22 | 之江实验室 | 一种存储任务断点同步方法、装置、介质及设备 |
CN117743472B (zh) * | 2024-02-06 | 2024-05-07 | 之江实验室 | 一种存储任务断点同步方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2765611C2 (ru) | Способ и устройство обработки претензий в отношении товаров на основе блокчейна и электронное устройство | |
KR102288344B1 (ko) | 서비스 실행 방법 및 디바이스 | |
WO2021114949A1 (zh) | 基于区块链的服务提供方法、装置、设备及*** | |
CN116107708A (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
CN110297955B (zh) | 一种信息查询方法、装置、设备及介质 | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
CN113256426B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN111177562B (zh) | 一种目标对象的推荐排序处理方法、装置及服务器 | |
CN116347623B (zh) | 一种任务调度的方法、装置、存储介质及电子设备 | |
CN115841335B (zh) | 数据处理方法、装置及设备 | |
CN116932175A (zh) | 一种基于序列生成的异构芯片任务调度方法以及装置 | |
CN112149011A (zh) | 热度排行榜的更新方法、装置、服务器及计算机存储介质 | |
WO2023185041A1 (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN113886119B (zh) | 一种故障修复的方法及装置 | |
CN115098471A (zh) | 一种孪生、订阅事件的历史状态的方法及装置 | |
CN114037520A (zh) | 交易处理方法、装置、设备及*** | |
CN116151907A (zh) | 一种处理订单的方法、装置、电子设备及计算机存储介质 | |
CN112837120A (zh) | 基于信用的服务评价方法及装置 | |
CN111967767A (zh) | 一种业务风险识别方法、装置、设备及介质 | |
US20200089812A1 (en) | Updating social media post based on subsequent related social media content | |
CN117034262B (zh) | 一种异常监管***及异常监管方法 | |
CN110502551A (zh) | 数据读写方法、***及架构组件 | |
CN117348999B (zh) | 一种业务执行***及业务执行方法 | |
CN117876610B (zh) | 针对三维构建模型的模型训练方法、装置、存储介质 | |
CN117555697B (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 |