Platform for collaborative processing of computing tasks

文档序号:1316029 发布日期:2020-07-10 浏览:24次 中文

阅读说明:本技术 用于协作处理计算任务的平台 (Platform for collaborative processing of computing tasks ) 是由 科里·克拉克 于 2018-06-05 设计创作,主要内容包括:用于协作处理计算任务的平台的方法、系统和介质。该方法包括向客户端装置(106-114)发送包括与交互式应用和机器学习应用相关联的程序代码的一个或多个客户端应用(334)。在被执行时,程序代码使客户端装置生成用于交互式应用的用户界面;使用所生成的用户界面请求来自客户端装置的用户的输入;接收所请求的输入;使用客户端装置的计算资源处理机器学习应用的至少一部分;以及发送与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据。该方法还包括接收和处理与接收到的输入的结果以及机器学习应用的至少一部分的处理相关联的数据,以处理计算任务。(Methods, systems, and media for a platform to collaboratively process computing tasks. The method includes transmitting one or more client applications (334) including program code associated with the interactive application and the machine learning application to the client device (106-114). When executed, the program code causes the client device to generate a user interface for the interactive application; requesting input from a user of the client device using the generated user interface; receiving the requested input; processing at least a portion of a machine learning application using computing resources of a client device; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application. The method also includes receiving and processing data associated with results of the received input and processing of at least a portion of the machine learning application to process the computing task.)

1. A method for processing a computing task, the method comprising:

sending one or more client applications (334) comprising program code associated with an interactive application and a machine learning application to a plurality of client devices (106-:

generating a user interface for the interactive application;

requesting input from a user of the one or more client devices using the generated user interface for the interactive application;

receiving the requested input;

processing at least a portion of the machine learning application using computing resources of the one or more client devices; and

sending data associated with results of the received input and processing of at least a portion of the machine learning application; and

receiving and processing the data associated with the results of the received input and processing of at least a portion of the machine learning application to process the computing task.

2. The method of claim 1, wherein:

the interactive application is a video game, and

requesting and receiving requested and received inputs for use in processing of the machine learning application during game play of the video game.

3. The method of claim 1, wherein:

the plurality of client devices form a volunteer computing grid, and

performing processing of at least a portion of the machine learning application based at least in part on received input received by at least one client device in the volunteer computing grid.

4. The method of claim 1, further comprising: allowing at least subsidized media content to be provided to one of the plurality of client devices while the one or more client applications are running by the one client device.

5. The method of claim 1, further comprising:

adding tasks to be completed by the plurality of client devices to a blockchain, the tasks requiring input from users of the one or more client devices for completion;

wherein receiving and processing data associated with the results comprises:

upon completion of the task, receiving a record from the one or more client devices to be published to the blockchain;

validating the received record based on criteria associated with the task; and

adding the verified record to the blockchain.

6. A system (100) for processing a computing task, the system comprising:

a communication interface (220) configured to:

sending one or more client applications comprising program code associated with an interactive application and a machine learning application to a plurality of client devices (106) and (114), the program code, when executed by a processor (310) of one or more of the plurality of client devices, causing the one or more client devices to:

generating a user interface for the interactive application;

requesting input from a user of the one or more client devices using the generated user interface for the interactive application;

receiving the requested input;

processing at least a portion of the machine learning application using computing resources of the one or more client devices; and

sending data associated with results of the received input and processing of at least a portion of the machine learning application; and

receiving the data associated with the results of the received input and processing of at least a portion of the machine learning application; and

a processor (210) operatively connected to the communication interface, the processor configured to process the data associated with the results of the received input and processing of at least a portion of the machine learning application to process the computing task.

7. The system of claim 6, wherein:

the interactive application is a video game, and

requesting and receiving requested and received inputs for use in processing of the machine learning application during game play of the video game.

8. The system of claim 6, wherein:

the plurality of client devices form a volunteer computing grid, and

performing processing of at least a portion of the machine learning application based at least in part on received input received by at least one client device in the volunteer computing grid.

9. The system of claim 6, the processor further configured to: allowing at least subsidized media content to be provided to one of the plurality of client devices while the one or more client applications are running by the one client device.

10. The system of claim 6, wherein:

the processor is further configured to: adding tasks to be completed by the plurality of client devices to a blockchain, the tasks requiring input from users of the one or more client devices for completion;

the communication interface is configured to: upon completion of the task, receiving a record in data associated with the result from the one or more client devices, the record to be published to the blockchain; and

the processor is further configured to: validating the received record based on criteria associated with the task and adding the validated record to the blockchain.

11. A non-transitory computer-readable medium comprising program code (334) associated with an interactive application and a machine learning application, which when executed by a processor of an electronic device (300) causes the electronic device to:

generating a user interface for the interactive application;

requesting input from a user of the electronic device using the generated user interface for the interactive application;

receiving the requested input;

processing at least a portion of the machine learning application using computing resources of the electronic device; and

sending data associated with results of the received input and processing of at least a portion of the machine learning application.

12. The computer-readable medium of claim 11, wherein:

the interactive application is a video game, and

requesting and receiving requested and received inputs for use in processing of the machine learning application during game play of the video game.

13. The computer-readable medium of claim 11, wherein:

the electronic device is one of a plurality of client devices forming a volunteer computing grid, and

performing processing of at least a portion of the machine learning application based at least in part on received input received by at least one client device in the volunteer computing grid.

14. The computer-readable medium of claim 11, further comprising program code that, when executed by a processor of the electronic device, causes the electronic device to: receiving at least subsidized media content while the electronic device is processing the program code associated with at least one of the interactive application or the machine learning application.

15. The computer readable medium of claim 11, further comprising program code that, when executed by a processor of the electronic device, causes the electronic device to:

receiving a task to be completed from a tile link, the task requiring input from a user of the electronic device in order to complete;

performing the task including requesting and receiving input from a user of the electronic device; and

upon completion of the task, sending a record in data associated with the result, the record to be published to the blockchain.

Technical Field

The present disclosure relates generally to volunteer grid computing systems. More particularly, the present disclosure relates to a platform for collaborative processing of computing tasks.

Background

As the demand for cloud-based computing and data processing of large data sets grows, so does the demand for computer resources. Grid or distributed computing is a solution that generates huge computing power, which can be used to process large data sets. Grid computing or distributed computing is a type of computing that utilizes a collection of computer resources from multiple locations (i.e., different, remotely located computing devices) to perform related tasks. Volunteering is a type of grid computing in which a computer owner or user donates its computing resources to one or more projects. Many volunteer computing systems use pull-based systems (pull-based systems) in which a client program on a volunteer computer requests and processes a task, while the computer would otherwise be in an idle state.

Volunteering is an effective tool for using microservices or solving parallel problems, where items are divided into small blocks of data called work units for distribution to machines running volunteer clients. Because multiple clients are used for data processing, it is often desirable that the data and algorithms be easily parallelized to obtain maximum value from the process. Volunteer computing system resources can significantly reduce data processing costs as compared to purchasing and maintaining on-site dedicated resources or purchasing cloud-based data processing services.

Disclosure of Invention

Embodiments of the present disclosure provide a platform for collaborative processing of computing tasks.

In one embodiment, a method for processing a computing task is provided. The method comprises the following steps: one or more client applications including program code associated with the interactive application and the machine learning application are sent to a plurality of client devices. The program code, when executed by a processor of one or more of the plurality of client devices, causes the one or more client devices to: generating a user interface for an interactive application; requesting input from a user of one or more client devices using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of one or more client devices; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application. The method further comprises the following steps: data associated with results of the received input and processing of at least a portion of the machine learning application is received and processed to process the computing task.

In another embodiment, a system for processing a computing task is provided. The system includes a communication interface and a processor operatively connected to the communication interface. The communication interface is configured to transmit one or more client applications including program code associated with the interactive application and the machine learning application to the plurality of client devices. The program code, when executed by a processor of one or more of the plurality of client devices, causes the one or more client devices to: generating a user interface for an interactive application; requesting input from a user of one or more client devices using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of one or more client devices; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application. The communication interface is further configured to receive data associated with results of the received input and processing of at least a portion of the machine learning application. The processor is configured to process data associated with results of the received input and processing of at least a portion of the machine learning application to process the computing task.

In another embodiment, a non-transitory computer-readable medium is provided. The non-transitory computer-readable medium includes program code associated with an interactive application and a machine learning application. The program code, when executed by a processor of the electronic device, causes the electronic device to: generating a user interface for an interactive application; requesting input from a user of the electronic device using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of an electronic device; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application.

Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.

Drawings

For a more complete understanding of the present disclosure and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like reference numbers represent like parts:

FIG. 1 illustrates an example networked system in which various embodiments of the present disclosure may be implemented;

FIG. 2 illustrates an example of a server in which various embodiments of the present disclosure may be implemented;

FIG. 3 illustrates an example of a client device in which various embodiments of the present disclosure may be implemented;

FIG. 4 illustrates a flow diagram of a process for providing a platform for collaborative processing of computing tasks according to various embodiments of the present disclosure; and

fig. 5 illustrates a flow diagram of a process for participating in a volunteer computing grid according to various embodiments of the present disclosure.

Detailed Description

Figures 1 through 5, discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.

Embodiments of the present disclosure recognize that although volunteer computing grids have proven value, they still have technical problems, including unreliability and because of active dependency on their user base. Embodiments of the present disclosure recognize that a major challenge of volunteer computing grids is how to incentivize users to share their processing power. Embodiments of the present disclosure provide interactive applications, such as video games, to cope with a large audience for their computing devices and problem solving skills for large-scale scientific or computing problems.

Embodiments of the present disclosure also recognize the following technical issues: the donation of computing resources by devices in the volunteer computing grid does not take advantage of the full potential of the computing task processing that the volunteer computing grid is capable of performing. Embodiments of the present disclosure provide and utilize interactive applications to generate data for machine learning applications. These interactive applications encourage users or communities to enter or interact directly with respect to the user or indirectly with respect to individuals or organizations in the community or the community as a whole through feedback, rewards, access, media content or entertainment. For example, these interactive applications may include video games, media applications, or any other application that motivates or utilizes user input or interaction. As used herein, machine learning is the use of statistical techniques to build models that use inputs to iteratively and progressively improve the processing of tasks. As used herein, example machine learning applications include, but are not limited to, data science, analytics, Artificial Intelligence (AI), and data mining applications. For example, video games are used to generate training data for machine learning algorithms (e.g., deep neural networks); assessment decisions, such as supervised learning; mutations that provide a solution; and/or other additional heuristics provided or assisted by human intuition. Embodiments of the present disclosure also utilize: the video game may provide an opportunity for volunteering computing by utilizing computing resources (e.g., processing power, storage power, and network connectivity) while the user is playing the video game or during idle times. For example, computing resources may be used with applications running in the background to provide updates to users, maintain connections with communities, and the like, while always utilizing free computing resources. Volunteering computing provides large processing and algorithm speed increases due to the large amount of computing power available through the number of participating gaming devices in a distributed computing environment.

Accordingly, embodiments of the present disclosure provide a technical solution via a platform for collaborative processing of computing tasks. Various embodiments provide a swarm computing platform that combines human perception and unstructured problem solving skills with raw computing power by utilizing volunteer grid computing integrated into engaging entertainment for machine learning applications. Any Wi-Fi enabled device running a Web browser, game, or application may be part of a distributed computing environment. Embodiments of the present disclosure also provide a universal interface for programmers, researchers, and developers to utilize connected devices to help categorize, validate, search, and process data.

With interactive entertainment, such as video games, embodiments of the present disclosure may also keep people engaged and online, which provides more time to utilize computing resources — leveraging both idle and active computing time. Interactive entertainment involves active participation of a person in content. As a result, embodiments of the present disclosure provide an opportunity to utilize crowd sourcing techniques to improve machine learning. Embodiments of the present disclosure enable a new type of cloud network in which machines and people interact to find solutions faster without the infrastructure or expense traditionally associated with cloud computing. Embodiments of the present disclosure also provide incentives and entitlements for large numbers of online communities, such as gaming communities, to take advantage of the consumer entertainment time they have spent to help address key issues that help create a better world.

FIG. 1 illustrates an example networked system 100 in which various embodiments of the present disclosure may be implemented. The embodiment of the networked system 100 shown in FIG. 1 is for illustration only. Other embodiments of the networked system 100 may be used without departing from the scope of this disclosure.

As shown in FIG. 1, system 100 includes a network 101, which network 101 facilitates communication between various components in system 100. for example, network 101 may communicate Internet Protocol (IP) packets or other information between network addresses network 101 may include one or more local area networks (L AN), Metropolitan Area Networks (MANs), Wide Area Networks (WANs), Virtual Private Networks (VPNs), all or a portion of a global network such as the Internet, or any other communication system or systems at one or more locations.

The network 101 facilitates communication between various servers 102 and 104 and various client devices 106 and 114. Each of the servers 102 and 104 may be any suitable electronic computing or processing device or devices that may provide computing services including software for one or more client devices 106 and 114. For example, each of the servers 102 and 104 may include one or more processing devices, one or more memories storing instructions and data, and one or more network interfaces that facilitate communication over the network 101. For example, as discussed in more detail below, by coordinating volunteer grid computing using client devices 106 and 114, server 102 may provide or manage a platform for collaborative computing, research or development using grid computing. Server 103 may be a server that is complementary to software development or game development that utilizes crowd sourcing techniques to improve machine learning algorithms as discussed in more detail below. The server 104 may be a server associated with a researcher, developer, or other grid computing consumer having a project or task that needs to be processed using the platform.

Each client device 106 and 114 represents any suitable electronic computing or processing device that interacts with at least one server or other computing device or devices over network 101. In such examples, the client devices 106 and 114 include a desktop computer 106, a mobile phone or smart phone 108, a tablet computer 110, a laptop computer 112, a video game console 114, a set-top box and/or a television, and so forth. However, any other or additional client devices may be used in the networked system 100. For example, any internet or network connectable device or internet of things (IoT) device (e.g., smart tv, refrigerator, Raspberry PI, etc.) may be used for one of the client devices 106 and 114 in the system 100. As discussed below, in various embodiments, the client devices 106 and 114 participate in forming a volunteer computing grid under the coordination of the server 102 (possibly with other computing devices) to provide a platform for collaboratively processing computing tasks. For example, as discussed herein, the client devices 106 and 114 may be considered various units of a computing grid. Also, the various units may communicate with each other or with servers directly, or indirectly using, for example, peer-to-peer, ad hoc (ad hoc), and/or mesh-based networks with or without centralized servers.

In various embodiments, the servers (e.g., server 102) connected with the client devices 106 and 114 form a computing grid for processing computer tasks. In various embodiments, the server 102 manages custom code for coordinating, provisioning, and tracking tasks and units of a computing grid. In other embodiments, server 102 manages a virtual private network (VPU) that connects cells within a computing grid. In these embodiments, commercially available software may be run by a computing grid to perform computing tasks.

Although fig. 1 shows one example of a networked system 100, various changes may be made to fig. 1. For example, the system 100 may include any number of each component in any suitable arrangement, and each of the servers 102 and 106 and 114 may represent any number of servers and/or client devices that are part of the system 100. In general, computing and communication systems have a wide variety of configurations, and fig. 1 does not limit the scope of the present disclosure to any particular configuration. Although FIG. 1 illustrates one operating environment in which the various features disclosed in this patent document may be used, these features may be used in any other suitable system.

Fig. 2 and 3 illustrate example computing devices in a networked system according to various embodiments of the present disclosure. In particular, fig. 2 illustrates an example server 200, and fig. 3 illustrates an example client device 300. In this illustrated example, the server 200 represents any of the servers 102-104 of FIG. 1, and the client device 300 may represent one or more of the client devices 106-114 of FIG. 1.

As shown in FIG. 2, server 200 includes a bus system 205, the bus system 205 supporting communication between one or more processors 210, a storage device 215, a communication interface (or circuit) 220, and an input/output (I/O) unit 225. The one or more processors 210 execute instructions that may be loaded into memory 230. The one or more processors 210 may include any suitable number or types of processors or other devices in any suitable arrangement. Example types of one or more processors 210 include microprocessors, microcontrollers, digital signal processors, field programmable gate arrays, application specific integrated circuits, and discrete circuitry.

Memory 230 and persistent storage 235 are examples of storage 215, which storage 215 represents any structure or structures capable of storing information (e.g., temporary or persistent data, program code, and/or other suitable information) and facilitating retrieval of the information. Memory 230 may represent random access memory, or any other suitable volatile or non-volatile storage device or devices. Persistent storage 235 may contain one or more components or devices that support long-term storage of data, such as read-only memory, hard drives, flash memory, or optical disks. For example, the persistent storage 235 may store one or more databases of data, client applications for units in the volunteer computing grid, tasks waiting to be allocated to units in the volunteer computing grid, and/or processing results from the volunteer computing grid, among other things.

Communication interface 220 supports communication with other systems or devices. For example, the communication interface 220 may include a network interface card or a wireless transceiver that facilitates communication over the network 101. Communication interface 220 may support communication via any suitable physical or wireless communication link or links. The I/O unit 225 allows input and output of data. For example, the I/O unit 225 may provide a connection for user input through a keyboard, mouse, keypad, touch screen, or other suitable input device. I/O unit 225 may also send output to a display, a printer, or other suitable output device.

Although fig. 2 shows one example of server 200, various changes may be made to fig. 2. For example, various components in FIG. 2 may be combined, further subdivided, or omitted, and additional components may be added according to particular needs. As a particular example, although depicted as one system, server 200 may include multiple server systems that may be remotely located. In another example, different server systems may provide some or all of the processing, storage, and/or communication resources to provide a platform for collaborative processing of computing tasks according to various embodiments of the present disclosure. In another example, the server 200 may be part of a volunteer computing grid. For example, one or more computing devices within a volunteer computing grid may include software for performing the actions of server 200 as discussed herein, either individually or in combination.

Fig. 3 illustrates an example client device 300 in accordance with an embodiment of the disclosure. The embodiment of the client device 300 shown in FIG. 3 is for illustration only, and the client devices 106 and 114 of FIG. 1 may have the same or similar configurations. However, client devices have a wide variety of configurations, and fig. 3 does not limit the scope of the present disclosure to any particular implementation of an electronic device. As shown in fig. 3, client apparatus 300 includes a communication interface (or circuit) 305, one or more processors 310, an input/output (I/O) interface 315, an input device 325, a display 320, and a memory 330. Memory 330 includes an Operating System (OS)332 and one or more client applications 334.

For embodiments utilizing wireless communication, the communication interface 305 may receive incoming RF signals via one or more antennas using various wireless communication protocols (e.g., Bluetooth, Wi-Fi, cellular, L TE communication protocols, etc.).

The one or more processors 310 may include one or more processors, or other processing devices, and execute an OS 332 stored in memory 330 to control overall operation of the client device 300. The one or more processors 310 are also capable of executing one or more client applications 334, e.g., program code for one or more client applications, resident in memory 330 to perform computing tasks, e.g., processing or computing tasks such as being part of a volunteer computing grid, communication or network tasks, and storage tasks. One or more client applications 334 may include program code for a machine learning application or an interactive application (e.g., a video game or an application that stimulates user input), as discussed in more detail below. The one or more processors 310, communication interface 305, and/or memory 330 constitute computing resources of client device 300. The one or more processors 310 may include any suitable number or types of processors or other devices in any suitable arrangement. Example types of one or more processors 310 include microprocessors, microcontrollers, Graphics Processing Units (GPUs), digital signal processors, field programmable gate arrays, application specific integrated circuits, and discrete circuitry.

The one or more processors 310 may move data into and out of memory 330 as needed to perform a process. The one or more processors 310 are also coupled to an I/O interface 315, the I/O interface 315 providing the client device 300 with the ability to connect to other devices (e.g., notebook computers and handheld computers). The I/O interface 315 provides a communication path between the accessory and the one or more processors 310.

The one or more processors 310 are also coupled to an input device 325 and a display 320. An operator of the client apparatus 300 may input data and input into the client apparatus 300 using the input device 325. For example, input device 325 may be a touch screen, buttons, keyboard, trackball, mouse, stylus, video game controller, and the like. The display 320 may be a liquid crystal display, a light emitting diode display, or other display capable of rendering text and/or at least limited graphics (e.g., from a website). The memory 330 is coupled to the one or more processors 310. A portion of memory 330 may include Random Access Memory (RAM) and another portion of memory 330 may include flash memory or other Read Only Memory (ROM).

Although fig. 3 shows one example of a client device 300, various changes may be made to fig. 3. For example, various components in FIG. 3 may be combined, further subdivided, or omitted, and additional components may be added according to particular needs. As a particular example, the one or more processors 310 may be divided into multiple processors, e.g., one or more Central Processing Units (CPUs) and one or more Graphics Processing Units (GPUs). In another example, the display 320 may be externally connected to the client device 300, such as with a video game console or desktop computer, for example, or may not be part of the client device 300.

Embodiments of the present disclosure provide a platform that connects computing resource consumers, programmers, researchers, and developers to members of a volunteer grid computing network and enables collaboration to perform computing tasks. Embodiments of the present disclosure recognize that participation and its frequency are challenges for reliable and efficient volunteer mesh computing networks. Accordingly, embodiments of the present disclosure provide incentives and participation for members of volunteer grid computing networks to improve network size, availability, and reliability. Embodiments of the present disclosure also provide an interface for collaboration through the use of crowd-sourced research or national sciences and the integration of all computing resources for processing machine learning applications within a single platform.

A client device 300 connected to the server 200 forms a game-based volunteer grid computing system in one example, a computing system is enabled using a client application or a portion thereof (e.g., a plug-in) that allows developers to easily integrate volunteer computing into existing game clients upon game launch, a manager of the client application (e.g., such as a dynamic link library (D LL) associated with a video game client) launches one or more separate threads on the client device 300 that manage distributed computing tasks, including collecting Work Units (WUs), processing WUs, storing and sending WU results back to the server 200. the threads on the client device 300 issue one or more fetch requests to the server 200. the server 200 provides to the client device 300 a large amount of data (e.g., WUs) related to one or more problems being handled via the server 200. the server 200 may also provide algorithms for analyzing the data.

This single-thread approach is suitable for many games, especially lower resource-intensive games. However, some games require a significant amount of computing resources at the client device 300, which may cause volunteer computing threads to impact game performance and user experience. To reduce this problem, the manager of the client application dynamically creates low priority thread(s) running within the client device 300 for volunteer computing, allowing the game to declare resources when needed, but also to take full advantage of the time when the game requires lower processing resources (e.g., such as during startup screen, while in menu, while the game is paused, while waiting for a matching game lobby, etc.).

In other examples, the client device 300 may have a separate launch application that is always running on the client device 300. The launch application may be used to launch one or more separate client applications 334, such as a game program, which then connects to the launch application, which then connects to the system 100. In other words, the managers of one or more client applications 334 or games that connect one or more client applications to system 100 may not be integrated into one or more client applications 334. For example, the game program may be connected to a manager running in another application on the client device 300. Thus, rather than embedding a manager separately in each application, a startup application exists on the client device 300, but may be connected to, in communication with, and containing many different applications in the system 100.

Additionally, in some embodiments, the computing system plug-in includes hooks (hooks) or pegs (tie) for the game client to interact with the volunteer computing process. Such interactions allow access to data (e.g., user contributions to volunteer computing questions) and provide consumers, developers, or researchers of computing resources with the ability to leverage dynamic human computing or national science opportunities. As discussed herein, various embodiments provide further improvements to the volunteer computing process by allowing and/or requesting user feedback related to: user contribution, greater game value in the form of points or dynamically generated content based on results, or other motivations for players to continue playing and sharing their computing resources and/or citizenship scientific contributions. In one example, such data sharing may allow users to compare their scores with others and visualize research progress and its relative contribution to the research progress.

In other embodiments, a dedicated volunteer computing application running on a client device may provide more computing power per device at runtime, thereby taking advantage of the large number of game players on the market, providing a source of many additional computing powers.

In some embodiments, dedicated volunteer computing and video game-based volunteer computing systems may share a common platform, whereby rewards contributed to any form of volunteer computing may be used for any type of benefit included in a video game. As discussed in more detail below, management of volunteer computing is performed using a central server (e.g., server 102) that also provides an interface for developers to integrate into volunteer computing to support elements such as websites and companion applications. The developer may then provide the user with the option to use these supplemental services to increase volunteer computing power and/or allow the user to interact with volunteer computing data.

FIG. 4 illustrates a process for providing a platform for collaborative processing of computing tasks according to various embodiments of the present disclosure. For example, the process depicted in FIG. 4 is described as being implemented by server 200 in FIG. 2. The process may also be implemented by any of the servers 102-104 in FIG. 1.

The process begins with server 200 providing an interface for a computing resource consumer to a computing grid (step 405). For example, in step 405, server 200 may connect over a network with a computer system for a computing resource consumer (e.g., such as a data processor, a database, a network, a programmer, a researcher, and/or a developer) to receive a project or task requiring computing resources. A large number of computing, research, or development projects may benefit significantly from an increased number of computing resources to provide faster solutions or to further validate and improve solutions. As part of this step, server 200, or a server that may be associated with a game developer (e.g., server 103), may provide one or more games via an interface to provide a solution to the problem. For example, gameplay of certain tasks may push users into engagement, thereby increasing the amount of computing resources available. In some embodiments, such video games (or game suites) are agnostic to the type of mission or study to be conducted. In various embodiments, video games are developed to take advantage of the human-brain ability to perform three-dimensional pattern matching and spatial reasoning, thereby helping to solve problems faster than with ordinary brute-force machine learning algorithms.

Server 200 then provides one or more client applications (step 410). For example, in step 410, the server 200 may provide software to a client device (e.g., such as the client device 106 and 114) to make the client device a participant in a volunteer computing grid. The client application provides at least the ability for the client device to request and receive projects or computing tasks and report project results. For example, the client application may include program code associated with a machine learning application for requesting a computational task or processing at least a portion of a machine learning algorithm, or program code associated with an interactive application for a task that utilizes input from a user.

In providing one or more client applications to one or more of a plurality of client devices, the program code in the one or more client applications provided to different client devices may be different. For example, program code for requesting user input via an interactive application may be sent to some client devices (e.g., based on the type of device, such as a gaming device or personal electronic device, which is more likely or statistically determined by the user to interact more often) while program code for processing a machine learning application may be sent to other devices, e.g., devices with better computing resource availability (e.g., devices determined to have greater processing or storage capabilities), or devices that may or statistically determined to be more frequently in an open or idle state (e.g., electronic devices executing a traditional server).

As discussed in more detail with respect to step 420, the client application may also include criteria for attaching, evaluating, and incentivizing participation by the client device. As part of this step, the server 200 may also provide the user of the client device with an interactive application, such as one or more games or programs that require user input, to play or interact with to incentivize participation and/or collaboration to address the issues discussed herein.

In some embodiments, as part of this step, the application provider may operate within an advertisement such as an in-game, in-video, in-music, or website advertisement. For example, end users may contribute to or "pay" for content they are viewing, playing or listening to by donating or allowing advertisements to leverage the computing resources of client device 300 in addition to or in lieu of traditional advertisements. In some embodiments, these advertisements may run in the background or be displayed with little interaction and/or interference from the user. In other embodiments, these advertisements may be interactive and may solicit pattern matching or other citizen scientific feedback based on human intuition. For example, advertisements may utilize user input results from interactive robotic detection techniques (e.g., completely automated public turing test to tell computers and humans apart (CAPTCHA)) to facilitate pattern matching, such as generating training data.

Thereafter, server 200 schedules and manages the computing tasks (step 415). A computing task is a task that utilizes a computing resource (e.g., a processing resource, a computing resource, a storage resource, or a network resource) of a computing device. For example, as part of this step, the computing task may include one or more tasks that require input from a user, such as a computing task, a matching task, or a pattern recognition task, which are presented, for example, as part of an interactive application. The computing tasks may also include tasks associated with machine learning applications, such as processing for machine learning algorithms. For example, the computing task may include iteratively processing at least a portion of the machine learning algorithm based on input received from the user, e.g., iteratively updating a machine learning application using user-assisted training data, the machine learning application being executed entirely within the same platform provided via a client application running on a volunteer computing grid. In some embodiments, user input for use in the processing of the machine learning algorithm is requested and received via the interactive application, for example during game play of a video game. Additionally, user input may be received from a client device that is different from the client device that processes the machine learning algorithm based on the input.

As part of step 415, server 200 may receive a request from one or more client devices that are members of a volunteer computing grid. The request may simply be an indication that resources of the client device are available. For example, the client device may be idle, resulting in free processor resources. In another example, the client device may be network connected and thus available for data reading and writing as part of providing storage resources to the grid. In some embodiments, in step 410, the client application may have been provided with a task, for example, as part of a game. In some embodiments, server 200 manages tasks by providing tasks that can be performed in parallel as well as redundant tasks for result validation.

In some embodiments, server 200 may use blockchain techniques to schedule and manage computing tasks. A blockchain is a list of records or blocks that are linked and protected using encryption. For example, the records or blocks may include transaction data or programs. In these embodiments, the server 200 may add records of various computing tasks to be completed to the blockchain. The client device (e.g., client device 106) may then receive or retrieve these computing tasks from the blockchain 114. These computing tasks include user tasks, such as tasks that require user input or human intuition. The server 200 (and/or, for these embodiments, other computing devices referred to in the blockchain art as "miners") manages the computing tasks by attempting to verify the results of the computing tasks. For example, the server 200 (or a group of miners) may receive results in the form of new records to be added to the blockchain and validate the records based on criteria associated with the task. For example, criteria associated with a task include an action to be performed, timing, quantity, and/or quality of results of task execution. The server 200 (or a group of miners) may validate records based on the records indicating or including data for task completion. Additionally, the server 200 (or a group of miners) may validate records based on timing or quality of results. For example, the first record to be executed, a record that completes before a certain time, or a result that has some degree of consistency with the record of executing the task may be verified. The server 200 (or a group of miners) then adds the record to the blockchain based on some degree of consensus on the received record. As part of the addition, the record may convey some form of value, for example in the form of cryptocurrency, to the client device from which the record was received.

In various embodiments, server 200 is a manager or master node that coordinates local processes and access between client devices. In these examples, the client devices may be accessed via a dynamic Domain Name Server (DNS) system that presents the various client devices to server 200 as a single network. Moreover, as discussed throughout, the computing resources provided via the grid computing system are not limited to processing resources. In various embodiments, the server 200 implements a distributed file system via client devices of a grid computing system. For example, the server 200 may fragment a file into data blocks of a predetermined size (e.g., 16MB, 32MB, or 64MB) and distribute the data blocks across devices (which may be replicated for redundancy) and present the shared space as a single folder to the accessing application.

Server 200 then provides participation incentives (step 420). for example, in step 420, server 200 may provide any type of incentive to encourage participation, including but not limited to information, digital currency, and media content, such as literature, images, music, video, virtual objects of a video game, video games, etc., in one example, server 200 may track the amount of participation and/or quality of tasks performed, and provide a proportional amount of digital currency, media content, or virtual objects of a video game, for example, participation may be qualitatively scored by metrics such as duration, number of floating point operations per second (F L OPS) (or more commonly giga-F L OPS (GF L OPS, giga-times floating point operations per second)), amount of storage time, etc. server 200 may also score participation, for example, based on scores obtained during game play, resulting in a more advanced solution.

In various embodiments, the server 200 uses media content to drive participation. For example, as part of using a paid streaming service such as music or video, the cost of the streaming service may be subsidized or covered if the user provides a certain amount of computing resources to the grid. Most streaming services, such as music or video, mainly use device buffering and network resources. For example, while watching an online video channel or streaming music, the device may have unused processing and/or longer term storage resources available to the volunteer computing grid. Embodiments of the present disclosure may increase the size and availability of a volunteer computing grid by encouraging participation with streaming content, subsidized or free, and entertaining end users during participation with the content. In various embodiments, incentives may be provided at the end user level or at the content provider level. For example, an online video game provider or media content provider may be compensated to have its content player or video game include at least a portion of the client application provided in step 400 to make the end user's device part of a volunteer computing grid. These game/media providers can then provide lower cost content and games to the end-user as the end-user's device participates in the volunteer computing grid.

Thereafter, the server 200 receives the results of the task (step 425). For example, in step 425, the server 200 may receive WU results from the client device when the computing task is complete and/or network resources are available. As part of this step, server 200 may perform processing and validation of the results of the computing task. For example, only results that reach a certain metric or score can be filtered out for use by a researcher or developer. In another example, the server 200 may compare the results of a certain number of redundant tasks to verify that the results from certain client devices are reliable.

The server 200 then returns the results of the task (step 430). For example, in step 430, server 200 may provide the results to a computing resource consumer (e.g., to server 104) using the same interface provided for the data in step 405 to solve a problem or validate a solution for researchers and/or developers. In this manner, embodiments of the present disclosure implement and provide a platform for collaborative research and development using grid computing.

Fig. 5 illustrates a process for participating in a volunteer computing grid according to various embodiments of the present disclosure. For example, the process depicted in fig. 5 is described as being implemented by client device 300 in fig. 3. The process may also be implemented by any of the client devices 106 and 114 in FIG. 1.

The process begins with client device 300 receiving one or more client applications (step 505). For example, in some embodiments, in step 505, client device 300 may receive a dedicated application to participate in a volunteer computing grid. Client device 300 may also receive an interactive application, such as a video game, or a media streaming application included within a plug-in or other component for volunteer computing grid participation during game play or media streaming. The client application may include program code for a machine learning application for processing by the client device 300.

The client device 300 then receives and processes the task (step 510). For example, in step 510, the client device 300 may request a computing task when the received application is running on the client device 300. In some embodiments, for machine learning applications, the task is part of a larger problem being studied, and/or the task may include a citizens scientific collaboration opportunity, for example through game interaction as described above. The client device 300 then returns the results of the task (step 515), e.g., to the server 200, for verification and provision to researchers and/or developers.

In various embodiments, as part of step 510 or in relation to step 510, client device 300 executes program code for an interactive application to generate a user interface to request and receive input from a user. For example, an interactive application may be a program that requests user input to identify one or more objects in an image or series of images, or a game that requests user input to provide national science input. Client device 300 receives and processes user input as a result of a received computing task.

Additionally or alternatively, client device 300 may process program code, process program code for a machine learning application. For example, client device 300 may provide computing resources for further machine learning applications, e.g., by iteratively processing the machine learning algorithm, storing the processing results, and/or verifying the machine learning algorithm processing results. In another example, client device 300 may iteratively receive and process results of user input received by client device 300 or one or more other client devices in a computing grid associated with a machine learning application to iteratively improve a machine learning algorithm. For example, the client device 300 may utilize pattern recognition input or training data input from an interactive application to improve a machine learning application that is all within a single platform as part of a task performed by a volunteer computing grid. In some embodiments, the task performed by client device 300 may be received from another client device in the computing grid. For example, one or more machine learning tasks performed by client device 300 may be received from other one or more client devices providing user input results, thereby formally improving the machine learning algorithm, and vice versa. In another example, one or more interactive application tasks performed by client device 300 may be received from other one or more client devices that are processing results of user input received from client device 300, thereby formally improving the machine learning algorithm, and vice versa.

In various embodiments, as part of steps 510 and 515 or for steps 510 and 515, client device 300 may receive a task for computing from the blockchain (e.g., as described above), perform the task, and send a record in or to be published to the blockchain of the resulting data upon completion of the task. For example, in these embodiments, the tasks to be performed include tasks that require input from a user, such as computation or pattern matching tasks, and the tasks to be performed are part of a blockchain. Client device 300 may then perform a task that includes requesting and receiving input from a user of the electronic device, and generate data that displays the data needed for task completion. For example, the data may include generated training data or data indicative of pattern recognition. The client device 300 then sends the data or proposed blockchain record to the server 102 (e.g., miners) for publication to the blockchain to receive points for independent verification of task completion.

Thereafter, the client device 300 provides a participation incentive (step 520). For example, in step 520, the client device 300 may provide an incentive to the end user to encourage volunteer computing participation. The number and/or quality of incentives may be based on the number and/or quality of volunteer calculations contributions provided. The incentives and quantities may be determined autonomously at the client device upon task completion or via the server 200 after task result reporting and validation. The participation incentive, whether or not related to the application, may be any item of value, such as digital currency, cryptocurrency, media content, a virtual object for a video game, and the like. In some embodiments, incentives may be applied at the developer level, incentivizing end users through subsidized or free media content, games, in-game levels, in-game virtual objects, and the like. Thus, the end-user stimulus may be provided before the client completes the actual task, during the client completes the actual task, or after the client completes the actual task.

Although fig. 4 and 5 illustrate examples of processes for providing a platform for collaborative research and development using grid computing and participating in a volunteer computing grid, respectively, various changes may be made to fig. 4 and 5. For example, while shown as a series of steps, various steps in each figure could overlap, occur in parallel, occur in a different order, or occur multiple times. In another example, steps may be omitted or replaced with other steps.

It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The term "couple" and its derivatives refer to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The terms "send," "receive," and "transmit," as well as derivatives thereof, encompass both direct and indirect communication. The terms "include and comprise" and derivatives thereof mean including but not limited to. The term "or" is inclusive, meaning and/or. The phrase "and. The phrase "for example," as used among the terms, means that the term(s) described later are examples, not limitations of the earlier-referenced terms. When used with a list of items, the phrase "at least one of" means that a different combination of one or more of the listed items can be used and only one item in the list may be required. For example, "at least one of A, B and C" includes any one of the following combinations: A. b, C, A and B, A and C, B and C, and a and B and C.

Furthermore, the various functions described herein may be implemented or supported by one or more computer programs, each computer program formed from computer readable program code and embodied in a computer readable medium. The terms "application" and "program" refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in suitable computer readable program code. The phrase "computer readable program code" includes any type of computer code, including source code, object code, and executable code. The phrase "computer readable medium" includes any type of medium capable of being accessed by a computer, such as Read Only Memory (ROM), Random Access Memory (RAM), a hard disk drive, a Compact Disc (CD), a Digital Video Disc (DVD), or any other type of memory. A "non-transitory" computer-readable medium does not include a wired link, a wireless link, an optical link, or other communication link that transmits transitory electrical or other signals. A non-transitory computer readable medium includes media that can persistently store data and media that can store and subsequently overwrite data, such as a rewritable optical disc or an erasable memory device.

Definitions for certain other words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.

Although the present disclosure has been described with exemplary embodiments, various changes and modifications may be suggested to one skilled in the art. The present disclosure is intended to embrace such alterations and modifications as fall within the scope of the appended claims.

One embodiment provides a method for processing a computing task. The method comprises the following steps: one or more client applications including program code associated with the interactive application and the machine learning application are sent to a plurality of client devices. The program code, when executed by a processor of one or more of the plurality of client devices, causes the one or more client devices to: generating a user interface for an interactive application; requesting input from a user of one or more client devices using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of one or more client devices; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application. The method further comprises the following steps: data associated with results of the received input and processing of at least a portion of the machine learning application is received and processed to process the computing task.

Another embodiment provides a system for processing a computing task. The system includes a communication interface and a processor operatively connected to the communication interface. The communication interface is configured to transmit one or more client applications including program code associated with the interactive application and the machine learning application to the plurality of client devices. The program code, when executed by a processor of one or more of the plurality of client devices, causes the one or more client devices to: generating a user interface for an interactive application; requesting input from a user of one or more client devices using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of one or more client devices; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application. The communication interface is further configured to receive data associated with results of the received input and processing of at least a portion of the machine learning application. The processor is configured to process data associated with results of the received input and processing of at least a portion of the machine learning application to process the computing task.

Another embodiment provides a non-transitory computer readable medium. The non-transitory computer-readable medium includes program code associated with an interactive application and a machine learning application. The program code, when executed by a processor of the electronic device, causes the electronic device to: generating a user interface for an interactive application; requesting input from a user of the electronic device using the generated user interface for the interactive application; receiving the requested input; processing at least a portion of a machine learning application using computing resources of an electronic device; and sending data associated with the results of the received input and the processing of at least a portion of the machine learning application.

In any of the above examples and embodiments, the plurality of client devices form a volunteer computing grid and perform processing of at least a portion of the machine learning application based at least in part on received input received by at least one client device in the volunteer computing grid.

In any of the above examples and embodiments, may include: an engagement incentive based on data associated with a result received from a respective client device of the one or more client devices is provided.

In any of the above examples and embodiments, may include: when one of the plurality of client devices is running one or more client applications, at least subsidized media content is allowed to be provided to the one client device.

In any of the above examples and embodiments, may include: tasks completed by multiple client devices are added to the blockchain, which tasks require input from users of one or more client devices in order to complete. Receiving and processing data associated with the results includes: upon completion of the task, receiving a record from the one or more client devices to be published to the blockchain; validating the received record according to criteria associated with the task; and adding the verified record to the blockchain.

In any of the above examples and embodiments, verifying the received record comprises: determining whether the record indicates task completion based on criteria associated with the task; and, responsive to the record indicating that the task is complete, validating the record.

In any of the above examples and embodiments, the system may be one of the client devices, or the method may be performed by one of the client devices.

In any of the above examples and embodiments, the electronic device is one of a plurality of client devices forming a volunteer computing grid and performs processing of at least a portion of the machine learning application based at least in part on received input received by at least one client device in the volunteer computing grid.

In any of the above examples and embodiments, the electronic device receives an engagement incentive based on data associated with the result.

In any of the above examples and embodiments, the electronic device receives at least subsidized media content while the electronic device is processing program code associated with at least one of an interactive application or a machine learning application.

In any of the above examples and embodiments, the electronic device receives from the tile link a task to be completed that requires input from a user of the electronic device in order to complete; performing the task including requesting and receiving input from a user of the electronic device; and upon completion of the task, sending a record in data associated with the result, the record to be published to the blockchain.

None of the description in this application should be read as implying that any particular element, step, or function is an essential element which must be included in the claim scope. The scope of patented subject matter is defined only by the claims. Furthermore, all claims are not intended to refer to 35u.s.c. § 112(f), unless the exact word "means" followed by a word separator.

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:无服务器计算环境中的使用经预取的数据的配设

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!