Computing devices to transfer execution of processes
An example computing device includes a user input device, a network interface, and a processor connected to the user input device and the network interface. The processor is to execute a process, monitor user input at the user input device to determine user interaction with the process, and, in response to determining a lack of user interaction with the process, provide the process to a remote computing device via the network interface to continue execution of the process by the remote computing device.
1 . A computing device comprising:
a user input device;
a network interface;
a processor connected to the user input device and the network interface, the processor to:
execute a process;
monitor user input at the user input device to determine user interaction with the process; and
in response to (i) determining a lack of user interaction with the process and (ii) determining a portion of network bandwidth exceeds a first threshold or a portion of CPU cycles exceeds a second threshold, provide the process to a remote computing device via the network interface to continue execution of the process by the remote computing device.
2 . The computing device of claim 1 , wherein the processor is to transmit the process to the remote computing device via the network interface.
3 . The computing device of claim 1 , wherein the processor is to communicate data of the process to the remote computing device via the network interface and an application programming interface at the remote computing device.
4 . The computing device of claim 1 , wherein the processor is further to:
receive output of the process from the remote computing device via the network interface; and
open a new viewport to display the output received from the remote computing device.
5 . The computing device of claim 4 , wherein the processor is further to:
open the new viewport at a display location of an existing viewport that is assigned to the process as executed by the processor; and
close the existing viewport.
6 . The computing device of claim 5 , wherein the processor is further to determine that the process uses an excessive amount of resources of the computing device as a condition to provide the process to the remote computing device.
7 . The computing device of claim 5 , wherein the processor is to apply a machine-learning model to monitor the user input and determine a lack of user interaction with the process.
8 . The computing device of claim 1 , wherein the processor is to prompt the user to confirm if the user is interacting with the process.
9 . The computing device of claim 8 , wherein a lack of response to the prompting indicates the user is not interacting with the process.
10 . The computing device of claim 1 , wherein, to monitor the user input at the user input device to determine user interaction with the process, the processor monitors at least one of:
mouse clicks;
camera image capture;
camera video capture; or
microphone audio capture.
11 . A non-transitory computer-readable medium comprising instructions that cause a processor to:
monitor for focus of an application executed by the processor;
when the application loses focus, and in response to determining a portion of network bandwidth exceeds a threshold, provide process of the application to a computing device that is remote from the processor to continue execution of the application by the remote computing device; and
receive output of the application from the remote computing device.
12 . The non-transitory computer-readable medium of claim 11 , wherein the instructions are further to replace output of the application as executed by the processor with the output received from the remote computing device.
13 . The non-transitory computer-readable medium of claim 11 , wherein the instructions are to initiate a subsequent execution of the application at the remote computing device without monitoring the user focus for user inattention.
14 . The non-transitory computer-readable medium of claim 11 , wherein the instructions are to determine a target resource allocation for the application and select the remote computing device from a plurality of the remote computing devices based on the target resource allocation.
15 . A method comprising:
initiating local execution of a process at a local computing device;
in response to determining that local execution consumes an unacceptable amount of local computational resources and that the process lacks focus, transferring execution of the process to a remote computing device that includes greater computational resources than the local computing device for remote execution of the process, wherein the unacceptable amount of local computational resources occurs when a portion of CPU cycles exceeds a threshold; and
outputting results of the remote execution of the process at the local computing device.
16 . The method of claim 15 , further comprising:
returning execution of the process to the local computing device in response to determining that local execution would consume an acceptable amount of local computational resources;
opening a new viewport of the local execution of the process at a display location of an existing viewport of the remote execution of the process; and
closing the existing viewport.
17 . The method of claim 15 , further comprising returning execution of the process to the local computing device in response to an increase in latency in a computer network that connects the local computing device and the remote computing device.
18 . The method of claim 15 , further comprising applying a plurality of different focus indicators to a machine-learning model to determine that the process lacks focus.