CN111406249A - 用于协作处理计算任务的平台 - Google Patents

用于协作处理计算任务的平台 Download PDF

Info

Publication number
CN111406249A
CN111406249A CN201880037096.5A CN201880037096A CN111406249A CN 111406249 A CN111406249 A CN 111406249A CN 201880037096 A CN201880037096 A CN 201880037096A CN 111406249 A CN111406249 A CN 111406249A
Authority
CN
China
Prior art keywords
processing
machine learning
computing
client devices
client
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.)
Granted
Application number
CN201880037096.5A
Other languages
English (en)
Other versions
CN111406249B (zh
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.)
Balanced Media Technology Co ltd
Original Assignee
Balanced Media 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 Balanced Media Technology Co ltd filed Critical Balanced Media Technology Co ltd
Publication of CN111406249A publication Critical patent/CN111406249A/zh
Application granted granted Critical
Publication of CN111406249B publication Critical patent/CN111406249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

用于协作处理计算任务的平台的方法、系统和介质。该方法包括向客户端装置(106‑114)发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用(334)。在被执行时,程序代码使客户端装置生成用于交互式应用的用户界面;使用所生成的用户界面请求来自客户端装置的用户的输入;接收所请求的输入;使用客户端装置的计算资源处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。该方法还包括接收和处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据,以处理计算任务。

Description

用于协作处理计算任务的平台
相关申请的交叉引用和优先权
本申请要求于2017年6月5日提交的美国临时专利申请No.62/515,398的优先权。上述专利文件的内容通过引用合并于此。
技术领域
本公开总体上涉及志愿网格计算系统。更具体地,本公开涉及用于协作处理计算任务的平台。
背景技术
随着对大数据集的基于云的计算和数据处理的需求增长,对计算机资源的需求也随之增长。网格或分布式计算是一种生成巨大计算能力的解决方案,可用于处理大数据集。网格计算或分布式计算是一种利用来自多个位置(即,不同的、位于远程的计算装置)的计算机资源的集合来执行相关任务的计算类型。志愿计算是一种网格计算类型,其中计算机所有者或用户将其计算资源捐赠给一个或多个项目。许多志愿计算系统使用拉动式系统(pull-based system),其中志愿计算机上的客户端程序请求并处理任务,而计算机否则将处于空闲状态。
志愿计算是使用微服务或解决并行问题的有效工具,其中项目被分成称为工作单元的小数据块,以分发给运行志愿客户端的机器。由于使用多个客户端进行数据处理,因此通常需要数据和算法是轻松地并行化的,以从过程中获得最大价值。与购买和维护现场专用资源或购买基于云的数据处理服务相比,志愿计算系统资源可以显著降低数据处理成本。
发明内容
本公开的实施例提供了用于协作处理计算任务的平台。
在一个实施例中,提供了一种用于处理计算任务的方法。该方法包括:将包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用发送到多个客户端装置。程序代码在由多个客户端装置中的一个或多个客户端装置的处理器执行时使一个或多个客户端装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自一个或多个客户端装置的用户的输入;接收所请求的输入;使用一个或多个客户端装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。该方法还包括:接收和处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据以处理计算任务。
在另一个实施例中,提供了一种用于处理计算任务的系统。该系统包括通信接口和可操作地连接到该通信接口的处理器。通信接口被配置为向多个客户端装置发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用。程序代码在由多个客户端装置中的一个或多个客户端装置的处理器执行时使一个或多个客户端装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自一个或多个客户端装置的用户的输入;接收所请求的输入;使用一个或多个客户端装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。通信接口还被配置为接收与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。处理器被配置为处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据以处理计算任务。
在另一个实施例中,提供了一种非暂时性计算机可读介质。该非暂时性计算机可读介质包括与交互式应用和机器学习应用相关联的程序代码。程序代码在由电子装置的处理器执行时使电子装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自电子装置的用户的输入;接收所请求的输入;使用电子装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。
根据以下附图、描述和随附权利要求,其它技术特征对于本领域技术人员而言是显而易见的。
附图说明
为了更完整地理解本公开及其优点,现在参考以下结合附图进行的描述,其中相同的附图标记表示相同的部分:
图1示出了其中可以实现本公开的各种实施例的示例联网系统;
图2示出了其中可以实现本公开的各种实施例的服务器的示例;
图3示出了其中可以实现本公开的各种实施例的客户端装置的示例;
图4示出了根据本公开的各种实施例的用于提供用于协作处理计算任务的平台的过程的流程图;和
图5示出了根据本公开的各种实施例的用于参与志愿计算网格的过程的流程图。
具体实施方式
下面讨论的图1至图5以及用于描述本专利文件中的本公开的原理的各种实施例仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,可以在任何适当布置的系统或装置中实现本公开的原理。
本公开的实施例认识到,尽管志愿计算网格具有已证明的价值,但它们仍具有技术问题,包括不可靠性以及由于对其用户基础保持活跃/有效(active)的依赖性。本公开的实施例认识到,志愿计算网格的主要挑战是如何激励用户共享他们的处理能力。本公开的实施例提供了诸如视频游戏之类的交互式应用,以针对他们的计算装置和针对大规模科学或计算问题的问题解决技能应付大受众。
本公开的实施例还认识到以下技术问题:志愿计算网格中的装置进行的计算资源捐赠没有利用志愿计算网格能够执行的计算任务处理的全部潜力。本公开的实施例提供并利用交互式应用来生成用于机器学习应用的数据。这些交互式应用直接针对用户或间接针对社区中的个人或组织或者整个社区通过反馈、奖励、访问、媒体内容或娱乐来激励用户或社区进行输入或交互。例如,这些交互式应用可以包括视频游戏、媒体应用、或者激励或利用用户输入或交互的任何其他应用。如本文所使用的,机器学习是使用统计技术来构建模型,该模型使用输入来迭代和渐进地改善任务的处理。如本文所使用的,示例机器学习应用包括但不限于数据科学、分析、人工智能(AI)和数据挖掘应用。例如,视频游戏被用于生成用于机器学习算法(例如深度神经网络)的训练数据;评估决策,例如监督学习;提供解决方案的突变;和/或其他由人类直觉提供或辅助的额外启发式过程。本公开的实施例还利用:视频游戏可以在用户正在玩视频游戏时或在空闲时间期间通过利用计算资源(例如,处理能力、存储能力和网络连接)为志愿计算提供机会。例如,可以将计算资源与在后台运行的应用一起使用,以向用户提供更新、保持与社区的连接等,同时始终利用空闲的计算资源。由于通过分布式计算环境中加入的游戏装置的数量可得到的大量计算能力,志愿计算提供大的处理,并且算法速度提高。
因此,本公开的实施例经由用于协作处理计算任务的平台提供技术解决方案。各种实施例提供了一种群计算平台,该群计算平台通过利用被集成到用于机器学习应用的引人入胜的娱乐中的志愿网格计算,将人类感知和非结构化的问题解决技能与原始计算能力相结合。任何运行Web浏览器、游戏或应用的支持Wi-Fi的装置都可以是分布式计算环境的一部分。本公开的实施例还提供了用于程序员、研究人员和开发人员的通用接口,以利用连接的装置来帮助分类、验证、搜索和处理数据。
利用诸如视频游戏之类的交互式娱乐,本公开的实施例还可以使人们保持参与和在线,这提供了更多时间来利用计算资源——充分利用空闲的计算时间和活跃的计算时间二者。交互式娱乐涉及人积极参与内容。结果,本公开的实施例提供了利用众包技术来改善机器学习的机会。本公开的实施例实现了一种新型的云网络,其中机器和人进行交互以更快地找到解决方案,而无需传统上与云计算相关联的基础设施或费用。本公开的实施例还提供激励并授权大量的在线社区,例如游戏社区,以利用他们已经花费的消费娱乐时间来帮助处理有助于创建更美好世界的关键问题。
图1示出了其中可以实现本公开的各种实施例的示例联网系统100。图1所示的联网系统100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用联网系统100的其他实施例。
如图1所示,系统100包括网络101,该网络101有助于系统100中各个组件之间的通信。例如,网络101可以在网络地址之间传送互联网协议(IP)分组或其他信息。网络101可以包括一个或多个局域网(LAN);城域网(MAN);广域网(WAN);虚拟专用网(VPN);诸如互联网之类的全球网络的全部或一部分;或者,一个或多个位置处的任何其他一个或多个通信系统。
网络101促进各种服务器102-104与各种客户端装置106-114之间的通信。服务器102-104中的每一个可以是可以提供包括用于一个或多个客户端装置106-114的软件的计算服务的任何合适的一个或多个电子计算或处理装置。例如,服务器102-104中的每一个可以包括一个或多个处理装置、存储指令和数据的一个或多个存储器、以及促进通过网络101进行通信的一个或多个网络接口。例如,如下面更详细地讨论的,通过使用客户端装置106-114协调志愿网格计算,服务器102可以提供或管理用于使用网格计算的协作计算、研究或开发的平台。服务器103可以是与如下面更详细地讨论的利用众包技术来改进机器学习算法的软件开发或游戏开发配套的服务器。服务器104可以是与具有需要使用平台来处理的项目或任务的研究人员、开发人员或其他网格计算消费者相关联的服务器。
每个客户端装置106-114表示通过网络101与至少一个服务器或其他一个或多个计算装置进行交互的任何合适的电子计算或处理装置。在这种示例中,客户端装置106-114包括台式计算机106、移动电话或智能手机108、平板计算机110、笔记本电脑112、视频游戏机114、机顶盒和/或电视等。然而,在联网系统100中可以使用任何其他或附加的客户端装置。例如,任何互联网或网络可连接装置或者物联网(IoT)装置(例如,智能电视、冰箱、树莓派(Raspberry PI)等)可用于系统100中的客户端装置106-114之一。如下所讨论的,在各种实施例中,客户端装置106-114在服务器102的协调下(可能与其他计算装置一起)参与形成志愿计算网格以提供用于协作处理计算任务的平台。例如,如本文所讨论的,客户端装置106-114可以被认为是计算网格的各个单元。而且,各个单元可以直接地与彼此通信或与服务器通信,或者使用例如具有或不具有集中式服务器的对等网络、自组网(ad hoc)和/或基于网状的网络间接地与彼此通信或与服务器通信。
在各种实施例中,与客户端装置106-114连接的服务器(例如,服务器102)形成用于处理计算机任务的计算网格。在各种实施例中,服务器102管理用于协调、提供和跟踪计算网格的任务和单元的定制代码。在其他实施例中,服务器102管理连接计算网格内的单元的虚拟专用网络(VPU)。在这些实施例中,商业可用的软件可以由计算网格运行以执行计算任务。
尽管图1示出了联网系统100的一个示例,但是可以对图1进行各种改变。例如,系统100可以包括以任何适当的布置的任意数量的每个组件,并且服务器102-104和客户端装置106-114中的每一个可以表示作为系统100一部分的任意数量的服务器和/或客户端装置。通常,计算和通信系统具有各种各样的配置,并且图1不将本公开的范围限制为任何特定配置。尽管图1示出了其中可以使用本专利文件中公开的各种特征的一个操作环境,但是这些特征可以用于任何其他合适的系统中。
图2和图3示出了根据本公开的各种实施例的联网系统中的示例计算装置。具体地,图2示出了示例服务器200,并且图3示出了示例客户端装置300。在这种示出的示例中,服务器200表示图1中的服务器102-104中的任何一个,并且客户端装置300可以表示图1中的客户端装置106-114中的一个或多个。
如图2所示,服务器200包括总线系统205,该总线系统205支持一个或多个处理器210、存储装置215、通信接口(或电路)220和输入/输出(I/O)单元225之间的通信。一个或多个处理器210执行可以被加载到存储器230中的指令。一个或多个处理器210可以包括以任何合适的布置的任何合适的一个或多个数量和一种或多种类型的处理器或其他装置。一个或多个处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路系统。
存储器230和持久性存储设备235是存储装置215的示例,该存储装置215表示能够存储信息(例如,暂时或持久的数据、程序代码和/或其他合适的信息)并促进该信息的检索的任何一个或多个结构。存储器230可以表示随机存取存储器、或者任何其他合适的一个或多个易失性或非易失性存储装置。持久性存储设备235可以包含支持长期存储数据的一个或多个组件或装置,例如只读存储器、硬盘驱动器、闪存或光盘。例如,持久性存储设备235可以存储数据的一个或多个数据库、用于志愿计算网格中的单元的客户端应用、等待分配给志愿计算网格中的单元的任务、和/或来自志愿计算网格的处理结果等。
通信接口220支持与其他系统或装置的通信。例如,通信接口220可以包括便于通过网络101进行通信的网络接口卡或无线收发器。通信接口220可以支持通过任何合适的一条或多条物理或无线通信链路的通信。I/O单元225允许数据的输入和输出。例如,I/O单元225可以为通过键盘、鼠标、小键盘、触摸屏或其他合适的输入装置的用户输入提供连接。I/O单元225还可将输出发送到显示器、打印机或其他合适的输出装置。
尽管图2示出了服务器200的一个示例,但是可以对图2进行各种改变。例如,可以组合、进一步细分或省略图2中的各种组件,并且可以根据特定需要添加额外组件。作为特定示例,尽管被描绘为一个系统,但是服务器200可以包括可以被远程定位的多个服务器系统。在另一个示例中,不同的服务器系统可以提供处理、存储和/或通信资源中的一些或全部,以提供根据本公开的各种实施例的用于协作处理计算任务的平台。在另一个示例中,服务器200可以是志愿计算网格的一部分。例如,志愿计算网格内的一个或多个计算装置可以包括用于单独地或联合地执行如本文所讨论的服务器200的动作的软件。
图3示出了根据本公开的实施例的示例客户端装置300。图3所示的客户端装置300的实施例仅用于说明,并且图1的客户端装置106-114可以具有相同或相似的配置。然而,客户端装置具有各种各样的配置,并且图3不将本公开的范围限制为电子装置的任何特定实现。如图3所示,客户端装置300包括通信接口(或电路)305、一个或多个处理器310、输入/输出(I/O)接口315、输入设备325、显示器320和存储器330。存储器330包括操作系统(OS)332和一个或多个客户端应用334。
通信接口或电路305支持与其他系统或装置的通信。例如,通信接口305可以包括便于通过网络101进行通信的网络接口卡或无线收发器。通信接口305可以支持通过任何适当的一条或多条物理或无线通信链路的通信。对于利用无线通信的实施例,通信接口305可以使用各种无线通信协议(例如,蓝牙、Wi-Fi、蜂窝网、LTE通信协议等)经由一个或多个天线接收输入的RF信号。
一个或多个处理器310可以包括一个或多个处理器、或者其他处理装置,并执行存储在存储器330中的OS 332以便控制客户端装置300的整体操作。一个或多个处理器310也能够执行驻留在存储器330中的一个或多个客户端应用334,例如用于一个或多个客户端应用的程序代码,以执行计算任务,例如诸如作为志愿计算网格的一部分的处理或计算任务、通信或网络任务、以及存储任务。一个或多个客户端应用334可以包括用于机器学习应用或交互式应用(例如,视频游戏或激励用户输入的应用)的程序代码,如下面更详细地讨论的。一个或多个处理器310、通信接口305和/或存储器330构成客户端装置300的计算资源。一个或多个处理器310可以包括以任何合适的布置的任何合适的一个或多个数量和一种或多种类型的处理器或其他装置。一个或多个处理器310的示例类型包括微处理器、微控制器、图形处理单元(GPU)、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路系统。
一个或多个处理器310可以根据执行过程的需要将数据移入或移出存储器330。一个或多个处理器310还耦接到I/O接口315,该I/O接口315向客户端装置300提供连接到其他装置(例如,笔记本电脑和手持式计算机)的能力。I/O接口315提供附件与一个或多个处理器310之间的通信路径。
一个或多个处理器310也耦接到输入设备325和显示器320。客户端装置300的操作者可以使用输入设备325将数据和输入输入到客户端装置300中。例如,输入设备325可以是触摸屏、按钮、键盘、轨迹球、鼠标、手写笔、电子笔、视频游戏控制器等。显示器320可以是液晶显示器、发光二极管显示器或能够渲染文本和/或至少有限的图形(例如来自网站)的其它显示器。存储器330耦接到一个或多个处理器310。存储器330的一部分可以包括随机存取存储器(RAM),并且存储器330的另一部分可以包括闪存或其他只读存储器(ROM)。
尽管图3示出了客户端装置300的一个示例,但是可以对图3进行各种改变。例如,可以组合、进一步细分或省略图3中的各种组件,并且可以根据特定需要添加额外组件。作为特定示例,一个或多个处理器310可以被划分为多个处理器,例如,一个或多个中央处理单元(CPU)以及一个或多个图形处理单元(GPU)。在另一个示例中,显示器320可以从外部连接到例如诸如具有视频游戏机或台式计算机的客户端装置300或可以不是客户端装置300的一部分。
本公开的实施例提供了一种平台,该平台将计算资源消费者、程序员、研究人员和开发人员连接到志愿网格计算网络的成员,并且启用协作来执行计算任务。本公开的实施例认识到参与及其频率是对可靠的有效的志愿网格计算网络的挑战。因此,本公开的实施例为志愿网格计算网络的成员提供激励和参与以改进网络大小、可用性和可靠性。本公开的实施例还提供了用于通过使用众包研究或公民科学以及用于处理机器学习应用的所有计算资源在单个平台内的集成来进行协作的接口。
在各个实施例中,与服务器200连接的客户端装置300形成基于游戏的志愿网格计算系统。在一个示例中,使用客户端应用或其一部分(例如插件)来启用计算系统,该客户端应用或其一部分允许开发人员将志愿计算轻松地集成到现有游戏客户端中。在游戏启动时,客户端应用的管理器(例如,诸如与视频游戏客户端相关联的动态链接库(DLL))启动在客户端装置300上的一个或多个单独的线程,其管理分布式计算任务,包括收集工作单元(WU)、处理WU、存储以及将WU结果发送回服务器200。客户端装置300上的线程向服务器200发出一个或多个提取请求。服务器200向客户端装置300提供与经由服务器200正在处理的一个或多个问题有关的大量数据(例如,WU)。服务器200还可以提供用于分析数据的算法。在将数据和算法下载到客户端装置300之后,线程可以与游戏一起运行并分析数据。
这种单独线程的方法适用于许多游戏,尤其是较低的资源密集型游戏。然而,一些游戏在客户端装置300处需要大量的计算资源,这可能导致志愿计算线程影响游戏性能和用户体验。为了减少这个问题,客户端应用的管理器动态地创建在客户端装置300内运行的用于志愿计算的(一个或多个)低优先级线程,从而允许游戏在需要时声明资源,而且还充分利用了游戏要求较低处理资源时(例如,诸如启动屏幕期间、处于菜单中时、在游戏暂停时、在等待匹配的游戏大厅时等)的时间。
在其他示例中,客户端装置300可以具有始终在客户端装置300上运行的独立启动应用。该启动应用可以用于启动一个或多个单独的客户端应用334,例如游戏程序,然后,游戏程序连接到启动应用,然后启动应用连接到系统100。换句话说,一个或多个客户端应用334的管理器或者将一个或多个客户端应用连接到系统100的游戏可以不被集成到一个或多个客户端应用334中。例如,游戏程序可以连接到在客户端装置300上的另一个应用中运行的管理器。因此,一个启动应用存在于客户端装置300上,但是可以连接到系统100中的许多不同的应用,与这些不同的应用通信并且包含这些不同的应用,而不是在每个应用中分别嵌入管理器。
另外,在一些实施例中,计算系统插件包括用于游戏客户端的钩子(hook)或栓(tie),以与志愿计算过程交互。这种交互允许访问数据(例如用户对志愿计算问题的贡献),并且为计算资源的消费者、开发人员或研究人员提供充分利用动态人类计算或公民科学机会的能力。如本文中所讨论的,各种实施例通过允许和/或请求与以下有关的用户反馈提供对志愿计算过程的进一步的改进:用户的贡献、以积分形式或基于结果的动态生成的内容的形式的更大的游戏价值、或者玩家继续玩并共享他们的计算资源和/或公民科学贡献的其他动机。在一个示例中,这种数据共享可以允许用户将他们的分数与其他人进行比较,并可视化研究进展及其对研究进展的相对贡献。
在一些实施例中,提供了通过与游戏客户端相关联的DLL运行志愿计算线程的优点,因为基于线程的方法允许访问视频游戏机处理能力,否则其将是无法获得的。在其他实施例中,在客户端装置上运行的专用志愿计算应用可以在运行时提供每个装置的更多的计算能力,由此利用了市场上大量的游戏玩家,提供了许多额外的计算能力来源。
在一些实施例中,专用志愿计算以及基于视频游戏的志愿计算系统可以共享一个公共平台,借此,针对任一形式的志愿计算贡献的奖励可以用于包括在视频游戏中的任何类型的利益。如下面更详细地讨论的,使用中央服务器(例如服务器102)执行对志愿计算的管理,该中央服务器还为开发人员提供接口以集成到志愿计算中以支持诸如网站和伴随应用的元素。然后,开发人员可以为用户提供使用这些补充服务的选项以提高志愿计算能力,并且/或者允许用户与志愿计算数据进行交互。
图4示出了根据本公开的各种实施例的用于提供用于协作处理计算任务的平台的过程。例如,图4中描绘的过程被描述为由图2中的服务器200实现。该过程还可以由图1中的任何服务器102-104实现。
该过程开始于服务器200向计算网格提供用于计算资源消费者的接口(步骤405)。例如,在步骤405中,服务器200可以通过网络与用于计算资源消费者(例如,诸如数据处理器、数据库、网络、程序员、研究人员和/或开发人员)的计算机系统连接,以接收需要计算资源的项目或任务。大量的计算、研究或开发项目可以显著地从增加数量的计算资源中受益,以提供更快的解决方案或进一步验证和改进解决方案。作为该步骤的一部分,服务器200或可能与游戏开发人员相关联的服务器(例如,服务器103)可以经由接口提供一个或多个游戏以提供问题的解决方案。例如,某些任务的游戏化可以推动用户参与,从而增加可用的计算资源量。在一些实施例中,这种视频游戏(或游戏套件)对要进行的任务或研究的类型是不可知的。在各种实施例中,开发视频游戏是为了利用执行三维模式匹配和空间推理的人脑能力,从而有助于比利用普通的蛮力机器学习算法更快地解决问题。
服务器200然后提供一个或多个客户端应用(步骤410)。例如,在步骤410中,服务器200可以将软件提供给客户端装置(例如,诸如客户端装置106-114),以使客户端装置成为志愿计算网格的参与者。客户端应用至少为客户端装置提供请求和接收项目或计算任务以及报告项目结果的能力。例如,客户端应用可以包括与机器学习应用相关联的用于请求计算任务或处理机器学习算法的至少一部分的程序代码,或者与交互式应用相关联的用于利用来自用户的输入的任务的程序代码。
在向多个客户端装置中的一个或多个提供一个或多个客户端应用时,提供给不同客户端装置的一个或多个客户端应用中的程序代码可以不同。例如,用于经由交互式应用请求用户输入的程序代码可以(例如,基于诸如游戏装置或个人电子装置之类的装置的类型,该装置更有可能或在统计上被用户确定为与之交互的次数更多)被发送给一些客户端装置,而用于处理机器学习应用的程序代码可以被发送给其他装置例如,具有更好计算资源可用性的装置(例如确定为具有更大的处理或存储能力的装置),或者可能或在统计上被确定为更频繁地处于打开或空闲状态的装置(例如执行传统服务器的电子装置)。
如关于步骤420更详细地讨论的,客户端应用还可以包括用于附加、评估和激励客户端装置的参与的标准。作为该步骤的一部分,服务器200还可以为客户端装置的用户提供交互式应用,例如需要用户输入的一个或多个游戏或程序,以玩或与之交互以激励参与和/或协作来解决本文讨论的问题。
在一些实施例中,作为该步骤的一部分,应用提供商可以在诸如游戏内、视频内、音乐内或网站广告之类的广告内操作。例如,除了传统广告之外或代替传统广告,终端用户可以通过捐赠或允许广告利用客户端装置300的计算资源来为他们正在观看、播放或收听的内容做出贡献或“进行支付”。在一些实施例中,这些广告可以在后台运行或者以几乎没有来自用户的交互和/或对用户几乎没有干扰来显示。在其他实施例中,这些广告可以是交互式的,并且可以征求基于人类直觉的模式匹配或其他公民科学反馈。例如,广告可以利用来自交互式机器人检测技术(例如,全自动区分计算机和人类的图灵测试(CAPTCHA))的用户输入结果,以帮助进行模式匹配,例如生成训练数据。
此后,服务器200调度和管理计算任务(步骤415)。计算任务是利用计算装置的计算资源(例如,处理资源、计算资源、存储资源或网络资源)的任务。例如,作为该步骤的一部分,计算任务可以包括需要来自用户的输入的一个或多个任务,例如计算任务、匹配任务或模式识别任务,这些任务例如作为交互式应用的一部分呈现。计算任务还可以包括与机器学习应用相关联的任务,例如用于机器学习算法的处理。例如,计算任务可以包括基于从用户接收的输入来迭代地处理机器学习算法的至少一部分,例如,使用用户辅助训练数据来迭代地更新机器学习应用,该机器学习应用在经由在志愿计算网格上运行的客户端应用提供的同一平台内被全部执行。在一些实施例中,例如在视频游戏的玩游戏期间,经由交互式应用请求和接收在机器学习算法的处理中使用的用户输入。另外,可以从与基于输入处理机器学习算法的客户端装置不同的客户端装置接收用户输入。
作为步骤415的一部分,服务器200可以从作为志愿计算网格成员的一个或多个客户端装置接收请求。该请求可以仅仅是客户端装置的资源可用的指示。例如,客户端装置可能是空闲的,从而导致免费的处理器资源。在另一个示例中,客户端装置可以是网络连接的,并且因此可用于作为向网格提供存储资源的一部分的数据读取和写入。在一些实施例中,在步骤410中,可能已经为客户端应用提供了例如作为游戏的一部分的任务。在一些实施例中,服务器200通过提供可以并行执行的任务以及用于结果验证的冗余任务来管理任务。
在一些实施例中,服务器200可以使用区块链技术来调度和管理计算任务。区块链是使用加密链接和保护的记录或块的列表。例如,记录或块可以包括交易数据或程序。在这些实施例中,服务器200可以将要完成的各种计算任务的记录添加到区块链。客户端装置(例如,客户端装置106-114)然后可以从区块链接收或提取这些计算任务。这些计算任务包括用户任务,例如需要用户输入或人类直觉的任务。服务器200(和/或,对于这些实施例,在区块链技术中称为“矿工(miner)”的其他计算装置)通过尝试验证计算任务的结果来管理计算任务。例如,服务器200(或一组矿工)可以接收以要添加到区块链的新记录的形式结果,并基于与任务相关联的标准来验证记录。例如,与任务相关联的标准包括要执行的动作、定时、数量、和/或任务执行的结果的质量。服务器200(或一组矿工)可以基于指示或包括用于任务完成的数据的记录来验证记录。另外,服务器200(或一组矿工)可以基于定时或结果质量来验证记录。例如,可以验证要执行的第一个记录、在一定时间之前完成的记录、或者与执行任务的记录具有某种程度的一致性的结果。然后,基于对所接收记录的某种程度的共识,服务器200(或一组矿工)将记录添加到区块链。作为添加的一部分,记录可以向从其接收记录的客户端装置传达某种形式的值,例如以加密货币的形式。
在各个实施例中,服务器200是在客户端装置之间协调本地进程和访问的管理器或主节点。在这些示例中,可以经由动态域名服务器(DNS)系统访问客户端装置,该DNS系统将各种客户端装置作为单个网络呈现给服务器200。而且,如贯穿全文所讨论的,经由网格计算系统提供的计算资源不限于处理资源。在各种实施例中,服务器200经由网格计算系统的客户端装置实现分布式文件系统。例如,服务器200可以将文件分片为预定大小(例如,16MB、32MB或64MB)的数据块,并且跨装置分布这些数据块(可以将这些数据块复制以用于冗余),并且将共享空间作为单个文件夹呈现给访问的应用。
服务器200然后提供参与激励(步骤420)。例如,在步骤420中,服务器200可以提供任何类型的激励来鼓励参与,该激励包括但不限于其贡献正在资助重要的项目的信息、数字货币和媒体内容,例如文学、图像、音乐、视频、视频游戏的虚拟对象、视频游戏等。在一个示例中,服务器200可以跟踪参与的数量和/或所执行的任务的质量,并提供成比例的数字货币、媒体内容或视频游戏的虚拟对象。例如,可以通过诸如持续时间、每秒浮点运算次数(FLOPS)(或更常见的是giga-FLOPS(GFLOPS,每秒千兆次浮点运算))、存储时间量等度量来跟踪参与。服务器200还可以例如基于在玩游戏期间获得的得分来对定性参与进行评分,从而得出更高级的解决方案。作为该步骤的一部分,服务器200可以用数字货币(例如,比特币、美元等)存入客户端装置的用户的帐户,可以提供视频游戏的附加的或更好的虚拟对象以改善用户的游戏体验,可以允许继续玩游戏或者下载/在线玩附加视频游戏。
在各个实施例中,服务器200使用媒体内容来驱动参与。例如,作为使用诸如音乐或视频的付费流服务的一部分,如果用户向网格提供一定数量的计算资源,则可以补贴或覆盖流服务的成本。诸如音乐或视频等大多数流服务主要使用装置缓冲和网络资源。例如,在观看在线视频频道或流音乐时,该装置可能将具有未使用的处理和/或较长期的存储资源,可供志愿计算网格使用。通过激励具有补贴的或免费的流内容的参与,并在具有内容的参与期间使终端用户娱乐,本公开的实施例可以增加志愿计算网格的大小和可用性。在各种实施例中,可以在终端用户级别或在内容提供商级别提供激励。例如,可以补偿在线视频游戏提供商或媒体内容提供商,使其内容播放器或视频游戏包括在步骤400中提供的至少一部分客户端应用,以使终端用户的装置成为志愿计算网格的一部分。然后,由于终端用户的装置参与了志愿计算网格,使得这些游戏/媒体提供商可以为终端用户提供较低成本的内容和游戏。
此后,服务器200接收任务的结果(步骤425)。例如,在步骤425中,当计算任务完成和/或网络资源可用时,服务器200可以从客户端装置接收WU的结果。作为该步骤的一部分,服务器200可以执行计算任务的结果的处理和验证。例如,只有达到某个度量或分数的结果才能被过滤掉,以供研究人员或开发人员使用。在另一个示例中,服务器200可以比较一定数量的冗余任务的结果以验证来自某些客户端装置的结果是否可靠。
服务器200然后返回任务的结果(步骤430)。例如,在步骤430中,服务器200可以使用在步骤405中为数据提供的同一接口将结果提供给计算资源消费者(例如,至服务器104),以为研究人员和/或开发人员解决问题或验证解决方案。以这种方式,本公开的实施例实现并提供用于使用网格计算进行协作研究和开发的平台。
图5示出了根据本公开的各种实施例的用于参与志愿计算网格的过程。例如,图5中描绘的过程被描述为由图3中的客户端装置300实现。该过程还可以由图1中的任何客户端装置106-114实现。
该过程开始于客户端装置300接收一个或多个客户端应用(步骤505)。例如,在一些实施例中,在步骤505中,客户端装置300可以接收专用应用以参与志愿计算网格。客户端装置300还可以接收诸如视频游戏的交互式应用、或者包括在用于玩游戏或媒体流期间的志愿计算网格参与的插件或其他组件内的媒体流应用。客户端应用可以包括用于机器学习应用的程序代码,以由客户端装置300进行处理。
然后,客户端装置300接收并处理任务(步骤510)。例如,在步骤510中,当所接收的应用在客户端装置300上运行时,客户端装置300可以请求计算任务。在一些实施例中,对于机器学习应用,任务是正在研究的更大问题的一部分,并且/或者例如通过如上所述的游戏交互,任务可以包括公民科学协作机会。然后,客户端装置300返回任务的结果(步骤515),例如至服务器200,以进行验证并提供给研究人员和/或开发人员。
在各个实施例中,作为步骤510的一部分或针对步骤510,客户端装置300执行用于交互式应用的程序代码,以生成用户界面以请求和接收来自用户的输入。例如,交互式应用可以是请求用户输入以标识图像或一系列图像中的一个或多个对象的程序,或者是请求用户输入以提供公民科学输入的游戏。客户端装置300接收并处理用户输入作为接收到的计算任务的结果。
附加地或替代地,客户端装置300可以处理程序代码,处理用于机器学习应用的程序代码。例如,客户端装置300可以例如通过迭代地处理机器学习算法、存储处理结果和/或验证机器学习算法处理结果来提供用于进一步的机器学习应用的计算资源。在另一个示例中,客户端装置300可以迭代地接收和处理由客户端装置300或与机器学习应用相关的计算网格中的一个或多个其他客户端装置所接收的用户输入的结果,以迭代地改进机器学习算法。例如,客户端装置300可以利用来自交互式应用的模式识别输入或训练数据输入来改进全部在单个平台内的机器学习应用,作为由志愿计算网格执行的任务的一部分。在一些实施例中,可以从计算网格中的另一客户端装置接收由客户端装置300执行的任务。例如,可以从提供用户输入结果的其他一个或多个客户端装置接收由客户端装置300执行的一个或多个机器学习任务,从而在文化上改进机器学习算法,反之亦然。在另一个示例中,可以从正在处理从客户端装置300接收的用户输入结果的其他一个或多个客户端装置接收由客户端装置300执行的一个或多个交互式应用任务,从而在文化上改进机器学习算法,反之亦然。
在各个实施例中,作为步骤510和步骤515的一部分或针对步骤510和515,客户端装置300可以从区块链接收用于计算的任务(例如,如上所述),执行该任务,并且在任务完成时发送在结果的数据中的或作为结果的数据的将被发布到区块链的记录。例如,在这些实施例中,要执行的任务包括需要来自用户的输入的任务,例如计算或模式匹配任务,并且要执行的任务是区块链的一部分。客户端装置300然后可以执行包括请求和接收来自电子装置的用户的输入的任务,并且生成显示任务完成所需的数据。例如,该数据可以包括生成的训练数据或指示模式识别的数据。然后,客户端装置300将数据或提议的区块链记录发送到服务器102(例如,矿工),用于发布到区块链,以接收用于任务完成的独立验证的积分。
此后,客户端装置300提供参与激励(步骤520)。例如,在步骤520中,客户端装置300可以向终端用户提供激励,以鼓励志愿计算参与。激励的数量和/或质量可以基于所提供的志愿计算贡献的数量和/或质量。激励和数量可以在任务完成时在客户端装置处自主确定,或者在任务结果报告和验证之后经由服务器200自主确定。参与激励可以是任何有价值的项目,不论其是否与应用相关,该参与激励为例如,数字货币、加密货币、媒体内容、视频游戏的虚拟对象、视频游戏等。在一些实施例中,激励可以应用于开发人员级别,从而通过补贴或免费的媒体内容、游戏、游戏中的级别、游戏中的虚拟对象等激励终端用户。因此,可以在客户端完成实际任务之前、在客户端完成实际任务期间或在客户端完成实际任务之后提供终端用户激励。
尽管图4和图5分别示出了用于提供用于使用网格计算进行协作研究和开发的平台并参与志愿计算网格的过程的示例,但是可以对图4和图5进行各种改变。例如,虽然示出为一系列步骤,但是每个图中的各个步骤可以重叠、并行发生、以不同顺序发生、或者发生多次。在另一个示例中,步骤可以被省略或被其他步骤代替。
阐明整个专利文件中使用的某些单词和短语的定义可能是有利的。术语“耦接”及其派生词是指两个或多个元素之间的任何直接或间接通信,无论这些元素是否彼此物理接触。术语“发送”、“接收”和“传送”及其派生词涵盖直接和间接通信。术语“包括(include和comprise)”及其派生词是指包括但不限于。术语“或”是包含性的,意味着和/或。短语“与...相关联”及其派生词意指包括、包含在其中、与之互连、包含、包含在其中、连接到或与之连接、耦接到或与之耦接、可与之通信、与之协作、交错、并置、与之接近、绑定到或与之绑定、具有、具有某种属性、与之具有关系等。当在术语当中使用时,短语“例如”意味着后述的(一个或多个)术语是示例,而不是较早引用的术语的限制。当与项目列表一起使用时,短语“至少一个”意味着可以使用所列项目中的一个或多个的不同组合,并且可能只需要列表中的一个项目。例如,“A、B和C中的至少一个”包括以下组合中的任何一个:A、B、C、A和B、A和C、B和C、以及A和B和C。
此外,本文描述的各种功能可以由一个或多个计算机程序实现或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据、或者适于在合适的计算机可读程序代码中实施的它们的一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,例如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输暂时性电信号或其他信号的有线链路、无线链路、光学链路、或其他通信链路。一种非暂时性计算机可读介质包括可持久存储数据的介质以及可存储并随后覆盖数据的介质,例如可重写光盘或可擦除存储器装置。
在整个本专利文件中提供了对其他某些单词和短语的定义。本领域普通技术人员应理解,在许多(如果不是绝大多数)的情况下,这种定义适用于这种定义的单词和短语的先前以及将来的使用。
尽管已经利用示例性实施例描述了本公开,但是可以向本领域技术人员提出各种改变和修改。本公开旨在涵盖落入所附权利要求的范围内的这种改变和修改。
一个实施例提供了一种用于处理计算任务的方法。该方法包括:将包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用发送到多个客户端装置。程序代码在由多个客户端装置中的一个或多个客户端装置的处理器执行时使一个或多个客户端装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自一个或多个客户端装置的用户的输入;接收所请求的输入;使用一个或多个客户端装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。该方法还包括:接收和处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据以处理计算任务。
另一个实施例提供了一种用于处理计算任务的系统。该系统包括通信接口和可操作地连接到该通信接口的处理器。通信接口被配置为向多个客户端装置发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用。程序代码在由多个客户端装置中的一个或多个客户端装置的处理器执行时使一个或多个客户端装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自一个或多个客户端装置的用户的输入;接收所请求的输入;使用一个或多个客户端装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。通信接口还被配置为接收与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。处理器被配置为处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据以处理计算任务。
另一个实施例提供了一种非暂时性计算机可读介质。该非暂时性计算机可读介质包括与交互式应用和机器学习应用相关联的程序代码。程序代码在由电子装置的处理器执行时使电子装置:生成用于交互式应用的用户界面;使用所生成的用于交互式应用的用户界面,请求来自电子装置的用户的输入;接收所请求的输入;使用电子装置的计算资源,处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。
在以上示例和实施例中的任一个中,多个客户端装置形成志愿计算网格,并且至少部分地基于志愿计算网格中的至少一个客户端装置所接收的接收到的输入来执行机器学习应用的至少一部分的处理。
在以上示例和实施例中的任一个中,可以包括:提供基于与从一个或多个客户端装置中的相应客户端装置接收到的结果相关联的数据的参与激励。
在以上示例和实施例中的任一个中,可以包括:当多个客户端装置中的一个客户端装置正在运行一个或多个客户端应用时,允许将至少被补贴的媒体内容提供给该一个客户端装置。
在以上示例和实施例中的任一个中,可以包括:将通过多个客户端装置完成的任务添加到区块链,为了完成,该任务需要来自一个或多个客户端装置的用户的输入。接收和处理与所述结果相关联的数据包括:在所述任务完成时,从所述一个或多个客户端装置接收将被发布到所述区块链的记录;根据与所述任务相关联的标准来验证接收到的记录;以及将经验证的记录添加到所述区块链。
在以上示例和实施例中的任一个中,验证接收到的记录包括:基于与所述任务相关联的标准来确定所述记录是否指示任务完成;以及,响应于记录指示任务完成,验证记录。
在以上示例和实施例中的任一个中,该系统可以是所述客户端装置之一,或者所述方法可以由所述客户端装置之一执行。
在以上示例和实施例中的任一个中,电子装置是形成志愿计算网格的多个客户端装置之一,并且至少部分地基于所述志愿计算网格中的至少一个客户端装置所接收的接收到的输入来执行所述机器学习应用的至少一部分的处理。
在以上示例和实施例中的任一个中,电子装置接收基于与所述结果相关联的数据的参与激励。
在以上示例和实施例中的任一个中,当电子装置正在处理与交互式应用或机器学习应用中的至少一个相关联的程序代码时,所述电子装置接收至少被补贴的媒体内容。
在以上示例和实施例中的任一个中,电子装置从区块链接收要完成的任务,为了完成,该任务需要来自所述电子装置的用户的输入;执行所述任务,包括请求和接收来自所述电子装置的用户的输入;以及在所述任务完成时,发送在与所述结果相关联的数据中的记录,所述记录将被发布到所述区块链。
本申请中的描述均不应理解为暗示任何特定的元素、步骤或功能是必须包括在权利要求范围内的必要元素。专利主题的范围仅由权利要求限定。此外,所有权利要求均无意援引35U.S.C.§112(f),除非确切的词“意指(means for)”后面紧跟一个分词。

Claims (15)

1.一种用于处理计算任务的方法,所述方法包括:
向多个客户端装置(106-114)发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用(334),所述程序代码在由所述多个客户端装置中的一个或多个的处理器(310)执行时使所述一个或多个客户端装置:
生成用于所述交互式应用的用户界面;
使用所生成的用于所述交互式应用的用户界面,请求来自所述一个或多个客户端装置的用户的输入;
接收所请求的输入;
使用所述一个或多个客户端装置的计算资源,处理所述机器学习应用的至少一部分;和
发送与接收到的输入的结果以及所述机器学习应用的至少一部分的处理相关联的数据;以及
接收和处理与接收到的输入的所述结果以及所述机器学习应用的至少一部分的处理相关联的所述数据,以处理所述计算任务。
2.根据权利要求1所述的方法,其中:
所述交互式应用是视频游戏,并且
在所述视频游戏的玩游戏期间,请求和接收在所述机器学习应用的处理中使用的所请求的和接收到的输入。
3.根据权利要求1所述的方法,其中:
所述多个客户端装置形成志愿计算网格,并且
至少部分地基于所述志愿计算网格中的至少一个客户端装置所接收的接收到的输入来执行所述机器学习应用的至少一部分的处理。
4.根据权利要求1所述的方法,还包括:当所述多个客户端装置中的一个客户端装置正在运行所述一个或多个客户端应用时,允许将至少被补贴的媒体内容提供给所述一个客户端装置。
5.根据权利要求1所述的方法,还包括:
将通过所述多个客户端装置完成的任务添加到区块链,为了完成,所述任务需要来自所述一个或多个客户端装置的用户的输入;
其中,接收和处理与所述结果相关联的数据包括:
在所述任务完成时,从所述一个或多个客户端装置接收将被发布到所述区块链的记录;
基于与所述任务相关联的标准来验证接收到的记录;和
将经验证的记录添加到所述区块链。
6.一种用于处理计算任务的系统(100),所述系统包括:
通信接口(220),其被配置为:
向多个客户端装置(106-114)发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用,所述程序代码在由所述多个客户端装置中的一个或多个的处理器(310)执行时使所述一个或多个客户端装置:
生成用于所述交互式应用的用户界面;
使用所生成的用于所述交互式应用的用户界面,请求来自所述一个或多个客户端装置的用户的输入;
接收所请求的输入;
使用所述一个或多个客户端装置的计算资源,处理所述机器学习应用的至少一部分;和
发送与接收到的输入的结果以及所述机器学习应用的至少一部分的处理相关联的数据;以及
接收与接收到的输入的所述结果以及所述机器学习应用的至少一部分的处理相关联的所述数据;和
处理器(210),其可操作地连接到所述通信接口,所述处理器被配置为处理与接收到的输入的所述结果以及所述机器学习应用的至少一部分的处理相关联的所述数据,以处理所述计算任务。
7.根据权利要求6所述的系统,其中:
所述交互式应用是视频游戏,并且
在所述视频游戏的玩游戏期间,请求和接收在所述机器学习应用的处理中使用的所请求的和接收到的输入。
8.根据权利要求6所述的系统,其中:
所述多个客户端装置形成志愿计算网格,并且
至少部分地基于所述志愿计算网格中的至少一个客户端装置所接收的接收到的输入来执行所述机器学习应用的至少一部分的处理。
9.根据权利要求6所述的系统,所述处理器还被配置为:当所述多个客户端装置中的一个客户端装置正在运行所述一个或多个客户端应用时,允许将至少被补贴的媒体内容提供给所述一个客户端装置。
10.根据权利要求6所述的系统,其中:
所述处理器还被配置为:将通过所述多个客户端装置完成的任务添加到区块链,为了完成,所述任务需要来自所述一个或多个客户端装置的用户的输入;
所述通信接口被配置为:在所述任务完成时,从所述一个或多个客户端装置接收在与所述结果相关联的数据中的记录,所述记录将被发布到所述区块链;和
所述处理器还被配置为:基于与所述任务相关联的标准来验证接收到的记录,并将经验证的记录添加到所述区块链。
11.一种非暂时性计算机可读介质,其包括与交互式应用和机器学习应用相关联的程序代码(334),该程序代码在由电子装置(300)的处理器执行时使所述电子装置:
生成用于所述交互式应用的用户界面;
使用所生成的用于所述交互式应用的用户界面,请求来自所述电子装置的用户的输入;
接收所请求的输入;
使用所述电子装置的计算资源,处理所述机器学习应用的至少一部分;和
发送与接收到的输入的结果以及所述机器学习应用的至少一部分的处理相关联的数据。
12.根据权利要求11所述的计算机可读介质,其中:
所述交互式应用是视频游戏,并且
在所述视频游戏的玩游戏期间,请求和接收在所述机器学习应用的处理中使用的所请求的和接收到的输入。
13.根据权利要求11所述的计算机可读介质,其中:
所述电子装置是形成志愿计算网格的多个客户端装置之一,并且
至少部分地基于所述志愿计算网格中的至少一个客户端装置所接收的接收到的输入来执行所述机器学习应用的至少一部分的处理。
14.根据权利要求11所述的计算机可读介质,所述计算机可读介质还包括程序代码,该程序代码在由所述电子装置的处理器执行时使所述电子装置:在所述电子装置正在处理与所述交互式应用或所述机器学习应用中的至少一个相关联的所述程序代码时,接收至少被补贴的媒体内容。
15.根据权利要求11所述的计算机可读介质,还包括程序代码,该程序代码在由所述电子装置的处理器执行时使所述电子装置:
从区块链接收要完成的任务,为了完成,所述任务需要来自所述电子装置的用户的输入;
执行所述任务,包括请求和接收来自所述电子装置的用户的输入;以及
在所述任务完成时,发送在与所述结果相关联的数据中的记录,所述记录将被发布到所述区块链。
CN201880037096.5A 2017-06-05 2018-06-05 用于协作处理计算任务的平台 Active CN111406249B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762515398P 2017-06-05 2017-06-05
US62/515,398 2017-06-05
PCT/US2018/036123 WO2018226740A2 (en) 2017-06-05 2018-06-05 Platform for collaborative processing of computing tasks

Publications (2)

Publication Number Publication Date
CN111406249A true CN111406249A (zh) 2020-07-10
CN111406249B CN111406249B (zh) 2023-09-22

Family

ID=64459633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880037096.5A Active CN111406249B (zh) 2017-06-05 2018-06-05 用于协作处理计算任务的平台

Country Status (6)

Country Link
US (1) US11327807B2 (zh)
EP (1) EP3622388B1 (zh)
JP (1) JP7212266B2 (zh)
CN (1) CN111406249B (zh)
CA (1) CA3067903A1 (zh)
WO (1) WO2018226740A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN110728363B (zh) * 2018-06-29 2022-11-18 华为技术有限公司 任务处理方法和装置
US10972479B2 (en) * 2018-08-02 2021-04-06 Balanced Media Technology, LLC Task completion using a blockchain network
US11468431B2 (en) * 2018-11-20 2022-10-11 Forte Labs, Inc. System and method for authorizing blockchain network transactions
US11373119B1 (en) * 2019-03-29 2022-06-28 Amazon Technologies, Inc. Framework for building, orchestrating and deploying large-scale machine learning applications
US11995596B2 (en) 2019-04-04 2024-05-28 Sony Corporation System, method, and computer-readable medium for tracking information exchange
CN110245006B (zh) * 2019-05-07 2023-05-02 深圳壹账通智能科技有限公司 区块链事务的处理方法、装置、设备及存储介质
CN110944008B (zh) * 2019-09-13 2021-03-19 腾讯科技(深圳)有限公司 基于区块链的任务酬劳处理方法、装置、设备及存储介质
US11880809B2 (en) 2019-10-10 2024-01-23 Frontage Road Holdings, Llc Blockchain cross-chain non-fungible token exchange
CN112860421B (zh) * 2019-11-28 2024-05-07 伊姆西Ip控股有限责任公司 用于作业处理的方法、设备和计算机程序产品
US11516311B2 (en) * 2021-01-22 2022-11-29 Avago Technologies International Sales Pte. Limited Distributed machine-learning resource sharing and request routing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314537A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Automatic construction of human interaction proof engines
CN103116525A (zh) * 2013-01-24 2013-05-22 贺海武 一种Internet环境下MapReduce计算方法
US20150134396A1 (en) * 2013-11-12 2015-05-14 Xerox Corporation Cloud-computing infrastructure
CN105447088A (zh) * 2015-11-06 2016-03-30 杭州掘数科技有限公司 一种基于志愿者计算的多租户专业云爬虫

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
JP4275992B2 (ja) 2003-06-03 2009-06-10 ヤフー株式会社 グリッドコンピューティング仲介装置および方法
US8239293B2 (en) 2006-12-20 2012-08-07 Microsoft Corporation Computer system and method for bulk auditing, archiving, and selling personal property of a customer
US8935372B2 (en) 2007-02-02 2015-01-13 Sony Corporation Mediation server, terminals and distributed processing method
US8982066B2 (en) * 2012-03-05 2015-03-17 Ricoh Co., Ltd. Automatic ending of interactive whiteboard sessions
US9800517B1 (en) * 2013-10-31 2017-10-24 Neil Anderson Secure distributed computing using containers
US9953487B2 (en) * 2014-01-15 2018-04-24 Gamblit Gaming, Llc Bonus element interleaved wagering system
US10846749B1 (en) * 2014-03-12 2020-11-24 Groupon, Inc. Method and system for offering promotion impressions using application programs
US10645046B2 (en) * 2014-08-29 2020-05-05 Google Llc Systems and methods for temporarily postponing messages
JP2016126759A (ja) 2015-01-05 2016-07-11 アバウト タイム コーポレーション 端末内の情報分析に基づいたメッセージ提供方法、装置およびそれに対するコンピュータプログラム
WO2017019530A1 (en) 2015-07-24 2017-02-02 Silver Curve Games, Inc. Augmented reality rhythm game
FR3044438A1 (fr) 2015-11-27 2017-06-02 Thales Sa Systeme et procede d'aide a la decision
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US10272341B1 (en) * 2016-12-20 2019-04-30 Amazon Technologies, Inc. Procedural level generation for games
US10121027B2 (en) * 2017-02-16 2018-11-06 International Business Machines Corporation Dynamic quick response code branding
US10380129B2 (en) * 2017-04-06 2019-08-13 Microsoft Technology Licensing, Llc Automated measurement of content quality
WO2018212822A1 (en) * 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US10677599B2 (en) * 2017-05-22 2020-06-09 At&T Intellectual Property I, L.P. Systems and methods for providing improved navigation through interactive suggestion of improved solutions along a path of waypoints

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314537A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Automatic construction of human interaction proof engines
CN103116525A (zh) * 2013-01-24 2013-05-22 贺海武 一种Internet环境下MapReduce计算方法
US20150134396A1 (en) * 2013-11-12 2015-05-14 Xerox Corporation Cloud-computing infrastructure
CN105447088A (zh) * 2015-11-06 2016-03-30 杭州掘数科技有限公司 一种基于志愿者计算的多租户专业云爬虫

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LAURI TUOVINEN: "From Machine Learning to Learning with Machines, Remodeling the Knowledge Discovery Process" *
TOMASZ FABISIAK等: "BROWSER-BASED HARNESSING OF VOLUNTARY COMPUTATIONAL POWER" *

Also Published As

Publication number Publication date
CN111406249B (zh) 2023-09-22
EP3622388B1 (en) 2023-10-11
EP3622388A4 (en) 2021-03-17
CA3067903A1 (en) 2018-12-13
WO2018226740A3 (en) 2020-01-16
WO2018226740A2 (en) 2018-12-13
US20180349201A1 (en) 2018-12-06
JP2020522364A (ja) 2020-07-30
JP7212266B2 (ja) 2023-01-25
EP3622388A2 (en) 2020-03-18
US11327807B2 (en) 2022-05-10

Similar Documents

Publication Publication Date Title
CN111406249B (zh) 用于协作处理计算任务的平台
Xu et al. Unleashing the power of edge-cloud generative ai in mobile networks: A survey of aigc services
US11496485B2 (en) Task completion using a blockchain network
US20190332921A1 (en) Decentralized storage structures and methods for artificial intelligence systems
US20150135160A1 (en) System and method for providing an application development and distribution social platform
US20140087355A1 (en) Gaming platform for the development and execution of customized games and game components
TWI755778B (zh) 用於轉換後之資料之自我修復機器學習系統
CN106664321A (zh) 基于放置策略的计算资源分配
US20200238179A1 (en) System and method for managing dynamic opt-in experiences in a virtual environment
Magoutis et al. Design and implementation of a social networking platform for cloud deployment specialists
TWI785346B (zh) 用於轉換資料及最佳化資料轉換之雙重機器學習管道
US20200394930A1 (en) Systems, methods, and apparatuses for implementing an individualized educational growth platform with user-aware feeds and user directed progression
US20180169529A1 (en) Sensor acquisition and analytics platform for enhancing interaction with adult devices
Chard et al. Experiences in the design and implementation of a social cloud for volunteer computing
Nagarajan et al. Multi agent deep reinforcement learning for resource allocation in container‐based clouds environments
Moon et al. FedOps: A Platform of Federated Learning Operations with Heterogeneity Management
Christie Managed Game Server Hosting
Wu et al. Scalability and Sustainability in the Construction of a Social Sports Management Information Platform based on Web Technology
CN116150463A (zh) 内容推荐方法、装置、存储介质及电子设备
Pileththuwasan Gallege Trust-based service selection and recommendation for online software marketplaces–TruSStReMark
Lavigne et al. Cloud Services.
LEON et al. Implementing location based games with a purpose. The Urbanopoly Web case
Csoto et al. ICT Driven Public Service Innovation

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
GR01 Patent grant
GR01 Patent grant