HARVESTING REMNANT CYCLES IN SMART DEVICES
A system and method for utilizing the processing power of computing devices such as smart devices are provided. The system includes one or more distributed smart devices and a management server that communicates with the smart devices in order to determine whether they are idle and whether viable compute tasks are present that can be performed on the smart devices based on the smart device's status, configuration, utility and network parameters, and availability. Some tasks may be performed in low power mode to save energy.
1 . A system for harvesting remnant processing cycles from smart devices, the system comprising:
a smart device comprising:
a plurality of computing cores,
a network interface, and
a remnant cycle harvester that causes available for work notifications to be transmitted via the network interface in response to detecting that the smart device is in an idle state on mains power; and
a management server configured to send one or more viable compute tasks to the smart device in response to receiving the available for work notifications.
2 . The system of claim 1 , wherein the management server selects the one or more viable compute tasks to send to the smart device based on:
stored utility rates for each of the smart devices based at least on the smart device's location,
an estimated power usage amount for each of the viable compute tasks based at least on the computing cores in the smart device, and
an estimated reward for completing the one or more viable compute tasks.
3 . The system of claim 2 , wherein the management server is further configured to select the one or more viable compute tasks based on the type of the computing cores in the smart device.
4 . The system of claim 2 , wherein the management server is further configured to select the one or more viable compute tasks based on the local time of the location of the smart device and applicable off-peak utility rates.
5 . The system of claim 3 , wherein the management server is further configured to select the one or more viable compute tasks based on current network costs for the type of network used by the network interface.
6 . The system of claim 5 , wherein the one or more viable compute tasks comprise blockchain proof of work processing.
7 . The system of claim 1 , wherein the one or more viable compute tasks comprise encryption of packets for an overlay network, and wherein the management server selects the one or more viable compute tasks based on at least one of the following network attributes of the smart device:
a network data cost,
a network latency, and
a network bandwidth.
8 . The system of claim 7 , wherein the management server is configured to dynamically reallocate the one or more viable compute tasks to a second smart device based on changes in the network latency or the network bandwidth.
9 . The system of claim 1 , further comprising an availability calendar,
wherein the management server is configured to consult the availability calendar and refrain from distributing viable compute tasks to the smart device despite receiving the available for work notification.
10 . The system of claim 1 , wherein the smart device further comprise one or more temperature sensors, wherein the remnant cycle harvester is configured to report the temperature to the management server, and wherein the management server is configured to refrain from sending work items to the smart device based on the reported temperature.
11 . The system of claim 1 , wherein the smart device is an autonomous drone or self-driving vehicle.
12 . The system of claim 1 , wherein the management server is configured to refrain from sending the one or more viable compute tasks to the smart device if network latency between the management server and the smart device exceeds a predetermined threshold associated with the one or more viable compute tasks.
13 . The system of claim 1 , wherein the smart device further comprises a temperature sensor, wherein the management server is configured to refrain from sending compute tasks to the smart device if the temperature sensor reports a temperature above a predetermined threshold value.
14 . A method for harvesting remnant cycles in a network of smart devices, the method comprising:
determining if a first smart device in the network is idle on mains power;
determining if a compute task is viable for the first smart device by comparing
a utility cost for the first smart devices,
an estimated power usage amount for performing the compute task on the first smart device, and
an estimated reward for completing the compute task; and
transmitting the compute task to the first smart device if the first smart device is idle on mains power and the compute task is viable.
15 . The method of claim 14 , further comprising selecting the compute task from a plurality of blockchain networks.
16 . The method of claim 15 , wherein the compute task is calculating hashes that meet a predetermined difficulty level for a blockchain network.
17 . The method of claim 15 , wherein the compute task is object detection.
18 . A system for harvesting remnant processing cycles from smart devices, the system comprising:
one or more smart devices that transmit idle indicators; and
a manager module in network communication with the one or more smart devices,
wherein the manager module receives the idle indicators and responds by transmitting viable compute tasks to the idle smart devices, wherein the transmitted viable compute tasks are blockchain hashing calculations, and wherein the smart devices receive and execute the transmitted compute tasks and transmit completed compute tasks.
19 . The system of claim 18 , wherein the manager module selects the viable compute tasks to transmit based on at least the following:
an estimated power cost for the smart device receiving the viable work task based on location,
an estimated power usage amount for performing the compute task on the smart device, and
an estimated reward for the compute task.
20 . The system of claim 19 , wherein the estimated reward is calculated based on a probability of receiving payment for completing the compute task and an estimated payment amount.