IP Library Granted Patent US 10,447,813
Granted Patent B2
US 10,447,813 · App. 15/113,026 · Granted Oct 15, 2019

Mobile application acceleration via fine-grain offloading to cloud computing infrastructures

Inventor: Chit Kwan Lin (New York, NY)
Assignee: Intel Corporation
H04L67/34G06F9/5027H04L67/02H04L67/10H04L67/42G06F2209/509
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,447,813
App. No.
15/113,026
Granted
Oct 15, 2019
Kind
B2
Abstract

Apparatuses, Methods and Storage Media associated with offloading aspects of processing of mobile devices are disclosed. In embodiments, a mobile computing device may comprise one or more processors; memory coupled with the one or more processors; and a shim layer to compressively replicate memory blocks of the memory to a cloud server, compressively offload invocations of object methods of objects resident in a memory block of the memory to the cloud server, and to receive execution results of the invoked object methods. Other embodiments may be described and/or claimed.

Claims (47)

1. A mobile computing device, comprising:

one or more processors;

memory coupled with the one or more processors;

a shim layer, including a replication agent, to compressively replicate memory blocks of the memory to a cloud server, selectively offload invocations of object methods of objects resident in a memory block of the memory to the cloud server for execution, and to receive from the cloud server execution results of the invoked object methods that are selectively offloaded to the cloud server;

wherein compressively replicate is based on compressive sensing, a random sampling technique in which a memory block s is sampled or encoded in view of its sparsity rate k/N, where k is a number of non-zero blocks in s, and N is a size of a dimension of a M×N sampling matrix ϕ;

wherein the replication agent is to compressively replicate memory blocks of the memory to the cloud server continuously.

2. The mobile computing device of claim 1 , wherein the replication agent is to compressively replicate memory blocks of the memory to the cloud server continuously every t units of time.

3. The mobile computing device of claim 1 , wherein to compressively replicate memory block s, the replication agent is to apply the sampling matrix ϕ to the memory block s to generate an encoding y of the memory block s, and to transmit encoding y to the cloud server, where s is a member of R N with the sparsity rate of k/N, and y is a member of R M .

4. The mobile computing device of claim 3 , wherein the sampling matrix ϕ is a partial discrete cosine transform matrix applied to the memory block s to generate the encoding y of the memory block s.

5. The mobile computing device of claim 1 , wherein the shim layer includes an object method offloader to redirect invocation of object methods to the cloud server, and to receive execution results of the invoked object methods.

6. The mobile computing device of claim 5 , wherein the object method offloader is to determine whether an object of an object method being invoked is allocated from a replicated memory block.

7. The mobile computing device of claim 6 , wherein the object method offloader is to cause the object method to be invoked and executed on the mobile computing device, on determination that the object of the object method being invoked is not allocated from a replicated memory block.

8. The mobile computing device of claim 6 , wherein the object method offloader is to compressively encode a memory block associated with the object method being invoked, send the compressively encoded memory block to a cloud server, and redirect the object method to be invoked and executed on the cloud server, on determination that the object of the object method being invoked is allocated from a replicated memory block.

9. One or more non-transitory computer-readable media having instructions stored thereon that cause a mobile computing device, in response to execution by the mobile computing device, to:

compressively replicate, with a replication agent of a shim layer, memory blocks of memory of the mobile computing device to a cloud server;

selectively redirect invocation of object methods to the cloud server for execution; and

receive from the cloud server execution results of the invoked object methods which invocations are redirected to the cloud server;

wherein compressively replicate is based on compressive sensing, a random sampling technique in which a memory block s is sampled or encoded in view of its sparsity rate k/N, k is a number of non-zero blocks in s, and N is a size of a dimension of a M×N sampling matrix ϕ;

wherein to compressively replicate comprises to compressively replicate memory blocks of the memory to the cloud server continuously.

10. The computer-readable media of claim 9 , wherein to compressively replicate comprises to compressively replicate memory blocks of the memory to the cloud server continuously every t units of time.

11. The computer-readable media of claim 9 , wherein to compressively replicate comprises to apply the sampling matrix ϕ to the memory block s to generate an encoding y of the memory block s; and to transmit encoding y to the cloud server, where s is a member of R N with the sparsity rate of k/N, and y is a member of R M .

12. The computer-readable media of claim 11 , wherein to apply the sampling matrix ϕ comprises to apply a partial discrete cosine transform matrix ϕ to the memory block s to generate the encoding y of the memory block s.

13. The computer-readable media of claim 9 , wherein to selectively redirect comprises to determine whether an object of an object method being invoked is allocated from a replicated memory block.

14. The computer-readable media of claim 13 , wherein to selectively redirect comprises to cause the object method to be invoked and executed on the mobile computing device, on determination that the object of the object method being invoked is not allocated from a replicated memory block.

15. The computer-readable media of claim 13 , wherein to selectively redirect comprises to compressively encode a memory block associated with the object method being invoked, send the compressively encoded memory block to a cloud server, and redirect the object method to be invoked and executed on the cloud server, on determination that the object of the object method being invoked is allocated from a replicated memory block.

16. A cloud server, comprising:

one or more processors;

memory coupled with the one or more processors;

a cloud daemon to receive encodings of memory blocks of memory compressively replicated from one or more mobile devices by corresponding one or more replication agents of one or more shim layers of the one or more mobile devices, and invocations of object methods redirected from the one or more mobile devices; and to invoke and execute the object methods on the cloud server, and return execution results of the invoked object methods to the one or more mobile devices;

wherein the memory blocks are compressively replicated based on compressive sensing, a random sampling technique in which a memory block s is sampled or encoded in view of its sparsity rate k/N, k is a number of non-zero blocks in s, and N is a size of a dimension of a M×N sampling matrix ϕ;

wherein the memory blocks are compressively replicated continuously.

17. The cloud server of claim 16 , wherein the cloud daemon further receives new encodings of some of the same compressively replicated memory blocks of memory from the corresponding one or more replication agents of the one or more shim layers of the one or more mobile devices, and the cloud daemon further comprises a replication agent to process the further received new encodings of the memory blocks to recover updates to the previously received compressively replicated memory blocks, and apply the recovered updates to the previously received compressively replicated memory blocks on the cloud server.

18. The cloud server of claim 16 , wherein an encoding y of the memory blocks is generated by applying the sampling matrix ϕ to the memory block s, where s is a member of R N with the sparsity rate of k/N, and y is a member of R M .

19. The cloud server of claim 18 , wherein the sampling matrix ϕ is a partial discrete cosine transform matrix ϕ applied to the memory block s to generate the encoding y of the memory block s.

20. The cloud server of claim 18 , wherein on receipt of a new encoding y i of a previously received encoding y i-1 of one of the compressively replicated memory blocks, the replication is to calculate the update by calculating y′=y i-1 −y i for the compressively replicated memory block.

21. The cloud server of claim 20 , wherein the replication agent is to further decode the update y′ to recover an update Δs to the compressively replicated memory block, and to apply the update Δs to the compressively replicated memory block.

22. The cloud server of claim 16 , wherein the cloud daemon includes an object method servicer to receive invocations of object methods redirected from the one or more mobile devices; and to invoke and execute the object methods, and return execution results of the invoked object methods to the one or more mobile devices.

23. The cloud server of claim 22 , wherein the object method servicer is to translate an object pointer to a location in an address space of a mobile device to an object pointer to a location in an address space of the cloud server; and to serialize the execution results of the invoked object methods, and return the serialized execution results to the one or more mobile devices.

24. One or more non-transitory computer-readable media having instructions stored thereon that cause a cloud server, in response to execution by the cloud server, to:

receive encodings of memory blocks of memory compressively replicated from one or more mobile devices by corresponding one or more replication agents of one or more shim layers of the one or more mobile devices;

receive invocations of object methods offloaded from the one or more mobile devices; and

invoke and execute the object methods, and return execution results of the invoked object methods to the one or more mobile devices;

wherein the memory blocks are compressively replicated based on compressive sensing, a random sampling technique in which a memory block s is sampled or encoded in view of its sparsity rate k/N, k is a number of non-zero blocks in s, and N is a size of a dimension of a M×N sampling matrix ϕ;

wherein the memory blocks are compressively replicated continuously.

25. The computer-readable media of claim 24 , wherein to receive invocations and to invoke and execute comprises to translate an object pointer to a location in an address space of a mobile device to an object pointer to a location in an address space of the cloud server; and wherein to return comprises to serialize the execution results of the invoked object methods, and transmit the serialized execution results to the one or more mobile devices.

26. The mobile computing device of claim 1 , wherein M=N.

27. The cloud server of claim 16 , wherein M=N.

Continuity (2)
Provisional Application 61950758 · Mar 10, 2014
Related Publication 20160344844A1 · Nov 24, 2016