US2021034418A1PendingUtilityA1

Peer-to-peer distributed computing system for heterogeneous device types

Assignee: APPLE INCPriority: Sep 23, 2016Filed: Aug 18, 2020Published: Feb 4, 2021
Est. expirySep 23, 2036(~10.2 yrs left)· nominal 20-yr term from priority
Inventors:Oliver Williams
G06F 9/5094G06F 9/4856G06F 9/5088G06F 9/546G06F 2209/509G06F 9/45533G06F 9/4881G06F 9/5083G06F 9/547G06F 2209/544G06F 2209/547
58
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Described is a framework (or technique or method) and system for providing a distributed computing network including different types of devices. The framework allows peer devices to transmit “packages” of information (e.g. messages) throughout the network as conceptual units of a job or data. The framework allows portable code, which is used to perform one or more jobs, to be transportable between peer devices. A device may transmit portable code describing a computation to another device, and the receiving device may then compile the code into executable form that is compatible with the architecture of the particular device. The compiled code may execute functions to perform one or more computations to fulfill job requests as part of a distributed computing protocol.

Claims

exact text as granted — not AI-modified
1 - 20 . (canceled) 
     
     
         21 . A non-transitory machine-readable medium storing instructions which, when executed by one or more processors of a computing device, cause the computing device to perform operations comprising:
 selecting, in a system that includes a second device in wireless communication with a first device, the first device for a distributed computing job, based on a match in user accounts on the first device and the second device and based on a current power source of the first device;   transmitting, using a first-level protocol for receipt by a daemon process on the first device, a first message from the second device, the first message including portable code which when compiled provides one or more functions to perform a computation by the first device within a distributed computing system;   transmitting, using a second-level protocol for receipt by a worker process created by the daemon process, a second message from the second device, the second message including a first job request, wherein the first job request includes an indication of a first function of the one or more functions, and an indication of a required set of input data to perform the first function to allow the first device to execute the first function to perform the computation to fulfill the first job request.   
     
     
         22 . The medium of  claim 21 , wherein prior to compiling the portable code, the portable code is determined to be safe to execute on the first device. 
     
     
         23 . The medium of  claim 22 , wherein the portable code is LLVM IR (low level virtual machine intermediate representation), and the first device and the second device are different types of devices. 
     
     
         24 . The medium of  claim 21 , wherein the current power source for the first device includes an electrical outlet. 
     
     
         25 . The medium of  claim 21 , wherein the first message includes an index for the one or more functions, and the indication of the first function of the first job request includes a value within the index corresponding to the first function. 
     
     
         26 . The medium of  claim 21 , wherein the second device selects the first device to perform the first job request when the current power source for the first device is an electrical outlet. 
     
     
         27 . The medium of  claim 21 , wherein the portable code, prior to compilation, is non-executable data. 
     
     
         28 . The medium of  claim 27 , wherein the first device and the second device are both logged into a same service. 
     
     
         29 . The medium of  claim 28 , wherein the first job request further includes a reference to a first container of data containing input data and a second container of data to store output data from the first function. 
     
     
         30 . A method comprising:
 selecting, in a system that includes a second device in wireless communication with a first device, the first device for a distributed computing job, based on a match in user accounts on the first device and the second device and based on a current power source of the first device;   transmitting, using a first-level protocol for receipt by a daemon process on the first device, a first message from the second device, the first message including portable code which when compiled provides one or more functions to perform a computation by the first device within a distributed computing system;   transmitting, using a second-level protocol for receipt by a worker process created by the daemon process, a second message from the second device, the second message including a first job request, wherein the first job request includes an indication of a first function of the one or more functions, and an indication of a required set of input data to perform the first function to allow the first device to execute the first function to perform the computation to fulfill the first job request.   
     
     
         31 . The method of  claim 30 , wherein prior to compiling the portable code, the portable code is determined to be safe to execute on the first device. 
     
     
         32 . The method of  claim 31 , wherein the portable code is LLVM IR (low level virtual machine intermediate representation), and the first device and the second device are different types of devices. 
     
     
         33 . The method of  claim 30 , wherein the current power source for the first device includes an electrical outlet. 
     
     
         34 . The medium of  claim 30 , wherein the first message includes an index for the one or more functions, and the indication of the first function of the first job request includes a value within the index corresponding to the first function. 
     
     
         35 . The method of  claim 30 , wherein the second device selects the first device to perform the first job request when the current power source for the first device is an electrical outlet. 
     
     
         36 . The method of  claim 30 , wherein the portable code, prior to compilation, is non-executable data. 
     
     
         37 . The method of  claim 36 , wherein the first device and the second device are both logged into a same service. 
     
     
         38 . The method of  claim 37 , wherein the first job request further includes a reference to a first container of data containing input data and a second container of data to store output data from the first function. 
     
     
         39 . A computer-implemented method, comprising:
 selecting, in a system that includes a second device in wireless communication with a first device, the first device for a distributed computing job, based on a match in user accounts on the first device and the second device and based on a current power source of the first device;   receiving, using a wireless protocol and on the first device, a first message including portable code which is received as non-executable data and when executed allows the first device to share resources within a distributed computing system with one or more other devices including the second device;   analyzing, on the first device, the portable code to determine whether the portable code is safe to execute on the first device;   receiving, at the first device, a first container of data, and storing the data in a data store of the first device;   compiling, at the first device, the portable code to allow the first device to perform a one or more computations for a job request, wherein the job request includes an indication of a first computation to be performed by the first device, and an indication of a required set of input data, in the first container of data, to perform the first computation; and   in response to the first device obtaining the required set of input data, performing the first computation for the first job by the first device.   
     
     
         40 . The method of  claim 39 , wherein the analyzing includes a check of control flow integrity, and the first device creates a second container of data to store output data from the first job, and wherein the method further comprises:
 storing the output data from the first job performed by the first device in the second container of data; and   sending the second container of data to the second device.

Join the waitlist — get patent alerts

Track US2021034418A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.