System Apparatus And Methods For Cognitive Cloud Offloading In A Multi-Rat Enabled Wireless Device
A system, method and apparatus having a mobile device with a plurality of radio access technologies, a server computer in the cloud running a cognitive offloader and cloud scheduler improves the execution time and reduces energy use of an application program residing on or accessible to the mobile device and having a plurality of components by apportioning executable tasks and routing data between the mobile device and the server computer based upon a cognitive offloader algorithm aware of dynamic parameters such as CPU and memory use, energy costs for transmissions and measurements of connectivity. The scheduling of tasks apportioned between the computing devices in the system may be enlightened by a component dependency graph of the application that is used by the offloader algorithm.
Latest The Trustees of The Stevens Institute of Technology Patents:
- Systems and methods for quantum-secured, private-preserving computations
- Stretchable supercapacitors with vertically-aligned embedded carbon nanotubes
- Artificial cornea with double-side microtextured pHEMA hydrogel
- DUAL-ADMINISTRATION METHODS FOR TREATING RESPIRATORY DISTRESS
- IMAGING-ENABLED BIOREACTOR FOR IN VITRO CULTIVATION AND BIOENGINEERING OF ISOLATED AIRWAY TISSUE
The present application claims the benefit of U.S. Provisional Application No. 62/262,624, filed Dec. 3, 2015, entitled SYSTEM APPARATUS AND METHODS FOR COGNITIVE CLOUD OFFLOADING IN A MULTI-RAT ENABLED WIRELESS DEVICE. The disclosure of the foregoing application is incorporated herein by reference in its entirety for all purposes.
FIELDThe present invention relates to wireless devices and processes executed on wireless devices and more particularly, to wireless devices having computers capable of executing application programs and connecting to a network and having multiple radio access technologies (RATs) through which wireless communication can be conducted.
BACKGROUNDWith the advent of 5G wireless communications, the expectations from the mobile devices have increased. Sophisticated and computationally intensive mobile applications, such as augmented reality, speech recognition, 3D interactive gaming, context awareness, natural language translation, healthcare sensing and analysis are beginning to be supported on the mobile device. S. Abolfazli, Z. Sanaei, M. Alizadeh, A. Gani, and F. Xia, “An experimental analysis on cloud-based mobile augmentation in mobile cloud computing,” IEEE Transactions on Consumer Electronics, vol. 60, no. 1, pp. 146-154, February 2014. This multi-tasking puts significant effective constraints on resources like memory and battery power available to each of the applications supported by the mobile devices. Accordingly, apparatus and methods for utilizing available resources efficiently are desirable.
SUMMARYThe disclosed subject matter relates to cognitive computation offloading, joint scheduling-offloading, mobile cloud computing, multi-RAT offloading and spectrum aware mobile computing. In one embodiment, processing and data required for an application are divided between a wireless device and at least one remote computer connected wireless to the wireless device.
In one embodiment, the remote computer is connected to a network. In one embodiment a time-adaptive heuristic is used to ascertain the distribution of processing and data, based upon local and remote CPU and memory use, as well as connectivity/capacity measures on the RATS.
In one embodiment, the schedule of tasks is taken into consideration in the distribution of processing and data. In one embodiment, the distribution is dynamically assessed based upon changing values of capacity for storage, processing and data transfer.
In one embodiment, a method for distributing a plurality of executable processing components and data used by an application program between a first computer and at least one second computer, the first and second computer connected by a plurality of radio interfaces, includes the steps of: automatically identifying executable processing components of the application program and data used by the application program to be offloaded to the second computer for execution; automatically ascertaining which of the plurality of radio interfaces for performing the step of offloading to the second computer; determining the relative percentage of the components and data that are to be communicated on each of the plurality of radio interfaces; offloading the components and data identified from the first computer to the second computer over at least one of the plurality of radio interfaces; executing the components offloaded in the second computer, producing processed data; communicating the processed data to the first computer; and using the processed data communicated in the application program running on the first computer.
In one embodiment, at least a portion of the processing components are executed in the first computer and another portion of the processing components are executed in the second computer.
In one embodiment, the step of automatically identifying is based in part upon CPU utilization in the first computer.
In one embodiment, the step of automatically identifying is based in part upon memory utilization in the first computer.
In one embodiment, the step of automatically ascertaining is based in part upon connectivity strength of each of the plurality of radio interfaces.
In one embodiment, the step of automatically ascertaining is based in part upon data flow capacity of each of the plurality of radio interfaces.
In one embodiment, the first computer is a mobile computing device and the second computer is a server computer.
In one embodiment, the step of automatically identifying is based in part upon connectivity strength and data flow capacity of each of the plurality of radio interfaces.
In one embodiment, the step of identifying is based in part on the comparative amounts of energy consumed by executing a given processing component on the first computer compared to amount of energy used in the steps of offloading and communicating.
In one embodiment, further including the step of scheduling the offloading and execution of each of the plurality of components the application based at least partly on a dependency of the plurality of components one to another.
In one embodiment, the steps of identifying and ascertaining are partly based on the data communication capacity from the second computer to the first computer during the step of communicating.
In one embodiment, further including the step of automatically ascertaining which of the plurality of radio interfaces are used to perform the step of communicating the processed data produced to the first computer.
In one embodiment, the step of automatically identifying is based in part upon a battery life of the first computer.
In one embodiment, the dependency of the plurality of components is modeled by a component dependency graph.
In one embodiment, further including a step of executing at least a portion of a component in the first computer at the same time as at least a portion of a component is executed in the second computer during the step of executing, whereby parallel processing occurs in the first computer and the second computer.
In one embodiment, the step of offloading is conducted opportunistically with offloading occurring while at least one radio interface is operational, ceasing when no radio interface is operational and resuming when at least one radio interface becomes operational.
In one embodiment, at least a portion of the processing components are executed in the first computer and another portion of the processing components are executed in the second computer, the execution of processing components in the first computer and the second computer occurring opportunistically, such that interruptions in the operability of the plurality of radio interfaces does not impede execution of steps of the processing components that are executable without further communication between the first computer and the second computer and allowing for parallel processing in the first computer and the second computer.
In one embodiment, the step of offloading is conducted over all available radio interfaces simultaneously.
In one embodiment, the step of communicating is conducted over all available radio interfaces simultaneously.
In one embodiment, a system capable of executing an application program having a plurality of executable components, includes: a first computer with a processor and memory capable of executing at least one of the executable components; a second computer with a processor and memory capable of executing at least one of the executable components; a plurality of radio interfaces supporting communication between the first computer and the and second computer; and a cognitive offloader and scheduler residing on at least one of the first computer or the second computer, the cognitive offloader and scheduler capable of automatically identifying executable processing components of the application program and data used by the application program to be offloaded to the second computer for execution; automatically ascertaining which of the plurality of radio interfaces for performing the step of offloading to the second computer; and determining the relative percentage of the components and data that are to be communicated on each of the plurality of radio interfaces based upon dependencies between each of the plurality of executable components and comparative net utility as affected by energy, memory and CPU cycle costs for the first computer for executing a given executable component at a given time (t).
In one embodiment, the first computer is a mobile computing device and the second computer is a server computer, the cognitive cloud offloader residing on the server computer.
For a more complete understanding of the present disclosure, reference is made to the following detailed description of exemplary embodiments considered in conjunction with the accompanying drawings.
In the present disclosure, the term “cognitive cloud offloading” may be defined as computations that are partially offloaded to a cloud, based on online wireless parameters, with simultaneous access to all available radio interfaces of mobile devices. This disclosure proposes a time-adaptive and wireless-aware heuristic to efficiently manage partial computational offloading of computationally intensive applications to a remote cloud with a goal of reducing the energy consumption on the mobile device, execution time of the application and efficient use of the multiple radio interfaces available at the device. To this end, the disclosed algorithms simultaneously determine: (i) which component to the application should execute locally and which needs to be offloaded to the remote cloud; (ii) how much of the associated data should be sent via each available interface of the multi-RAT device and (iii) the scheduling order of the components of the applications with arbitrary component dependencies.
A net utility function is described that trades off the mobile device resources (battery, CPU, and memory) saved by offloading to the cloud with the penalty of realtime communication costs such as latency and communication energy, subject to constraints that ensure queue stability of radio interfaces. Simulations have been performed using real data measurements from an HTC smartphone running multi-component applications, using Amazon EC2 as the cloud and two radios, LTE and WiFi. Results show that the cognitive approach provides 7% higher net utility in comparison to a simple use of multiple radio interfaces due to selection of the best interface to use for data transfer. The scalability of the proposed heuristic is further analyzed using various real delay values, communication power levels, sizes of component dependency graphs, and energy-delay trade-off factors.
An aspect of the present disclosure is the recognition that although offloading computation, F. Liu, P. Shu, H. Jin, L. Ding, J. Yu, D. Niu, and B. Li, “Gearing resource-poor mobile devices with powerful clouds: architectures, challenges, and applications,” IEEE Wireless Communications, vol. 20, no. 3, pp. 14-22, June 2013, to a remote resource-rich cloud has existed as a solution to this problem in various forms, N. Vallina-Rodriguez and J. Croweroft, “Energy management techniques in modern mobile handsets,” IEEE Communications Surveys Tutorials, vol. 15, no. 1, pp. 179-198, First quarter 2013. B.-G. Chun, S. Ihm, P. Maniatis, M. Naik, and A. Patti, “Clonecloud: elastic execution between mobile device and cloud,” in Proceedings of the sixth conference on Computer systems, 2011, pp. 301-314. X. Gu, K. Nahrstedt, A. Messer, I. Greenberg, and D. Milojicic, “Adaptive offloading for pervasive computing,” IEEE Pervasive Computing, vol. 3, no. 3, pp. 66-73, Third quarter 2004. Offloading will also place a further burden on the already limited spectrum resources since data will have to be transferred between the mobile devices and the cloud in order to successfully deliver the application on the mobile device. Multiple radio access technology (multi-RAT) enabled mobile devices are poised to become a mainstay of the future of wireless networking. P. Demestichas, A. Georgakopoulos, D. Karvounas, K. Tsagkaris, V. Stavroulaki, J. Lu, C. Xiong, and J. Yao, “5g on the horizon: Key challenges for the radio-access network,” IEEE Vehicular Technology Magazine, vol. 8, no. 3, pp. 47-53, September 2013. The present disclosure proposes use of this newly emerging technology in a cloud offloading solution. An aspect of the present disclosure is the concept of cognitive cloud offloading where the offloading algorithm not only decides which components of a complex application should be offloaded and which should run locally, but also which radio interfaces must be used in the associated data transfers and what percentage of the data should be communicated through each interface. Cognitive use of all the wireless interfaces at the same time leads to a higher throughput of the network (see
Computation offloading for mobile networks can be categorized into three groups: (i) all or nothing offloading, where the application is either completely offloaded to a remote cloud or completely executed locally, W. Zhang, Y. Wen, K. Guan, D. Kilper, H. Luo, and D. Wu, “Energy-optimal mobile cloud computing under stochastic wireless channel,” IEEE Transactions on Wireless Communications, vol. 12, no. 9, pp. 4569-4581, September 2013; (ii) wholesale offloading—where the entire application is eventually offloaded, P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” in IEEE Proceedings of INFOCOM, April 2013, pp. 195-199; Y. Lin, E. Chu, Y. Lai, and T. Huang, “Time-and-energy-aware computation offloading in handheld devices to coprocessors and clouds,” IEEE Systems Journal, vol. 9, no. 2, pp. 393-405, June 2015 and (iii) those that partition the application into smaller units and make piecewise decisions to either execute the unit locally or to offload it to a remote cloud, S. E. Mahmoodi, K. P. Subbalakshmi, and V. Sagar, “Cloud offloading for multi-radio enabled mobile devices,” in IEEE International Communication Conference (ICC), June 2015, pp. 1-6; E. Cuervo, A. Balasubramanian, D. ki Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl, “MAUI: Making smartphones last longer with code offload,” in International Conference on Mobile Systems, Applications, and Services. ACM, 2010, pp. 49-62; S. Kosta, A. Aucinas, P. Hui, R. Mortier, and X. Zhang, “Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading,” in IEEE Proceedings of INFOCOM, 2012, pp. 945-953; D. Kovachev, T. Yu, and R. Klamma, “Adaptive computation offloading from mobile devices into the cloud,” in IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA), 2012, pp. 784-791; C. Shi, K. Habak, P. Pandurangan, M. Ammar, M. Naik, and E. Zegura, “COSMOS: Computation offloading as a service for mobile devices,” in Proceedings of the ACM International Symposium on Mobile Ad Hoc Networking and Computing, ser. MobiHoc '14. New York, N.Y., USA: ACM, 2014, pp. 287-296; and S. Barbarossa, S. Sardellitti, and P. D. Lorenzo, “Computation offloading for mobile cloud computing based on wide cross-layer optimization,” in Future Network and Mobile Summit (FutureNetworkSummit), July 2013, pp. 1-10. This last category offers the maximum degrees of freedom for this problem, X. Gu, K. Nahrstedt, A. Messer, I. Greenberg, and D. Milojicic, “Adaptive offloading for pervasive computing,” IEEE Pervasive Computing, vol. 3, no. 3, pp. 66-73, Third quarter 2004; and W. Gao, Y. Li, H. Lu, T. Wang, and C. Liu, “On exploiting dynamic execution patterns for workload offloading in mobile cloud applications,” in IEEE 22nd International Conference on Network Protocols (ICNP), October 2014, pp. 1-12; and hence, we use that approach in this disclosure. Within the partial offloading strategies, some schemes have proposed coarse level partitioning of the applications where the code is pre-partitioned into components, S. E. Mahmoodi, K. P. Subbalakshmi, and V. Sagar, “Cloud offloading for multi-radio enabled mobile devices,” in IEEE International Communication Conference (ICC), June 2015, pp. 1-6; D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012; S. Barbarossa, S. Sardellitti, and P. D. Lorenzo, “Computation offloading for mobile cloud computing based on wide cross-layer optimization,” in Future Network and Mobile Summit (FutureNetworkSummit), July 2013, pp. 1-10; and H. Wu, Q. Wang, and K. Wolter, “Trade-off between performance improvement and energy saving in mobile cloud offloading systems,” in IEEE International Conference on Communications Workshops (ICC), June 2013, pp. 728-732. A more fine-grained offloading can be achieved by using method-level partitioning as in MAUI, E. Cuervo, A. Balasubramanian, D. ki Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl, “MAUI: Making smartphones last longer with code offload,” in International Conference on Mobile Systems, Applications, and Services. ACM, 2010, pp. 49-62. ThinkAir, S. Kosta, A. Aucinas, P. Hui, R. Mortier, and X. Zhang, “Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading,” in IEEE Proceedings of INFOCOM, 2012, pp. 945-953, also provides method-level partitioning but focuses more on scalability issues and parallel execution of offloaded tasks. An Android specific services-based mobile cloud computing middleware called Mobile Augmentation Cloud Services (MACS), D. Kovachev, T. Yu, and R. Klamma, “Adaptive computation offloading from mobile devices into the cloud,” in IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA), 2012, pp. 784-791, allows for seamless offloading of the application to the cloud. The decision for partitioning is cast as an optimization problem using cloud and device parameters, such as CPU load, available memory, remaining device battery power and available spectrum bandwidth. COSMOS C. Shi, K. Habak, P. Pandurangan, M. Ammar, M. Naik, and E. Zegura, “COSMOS: Computation offloading as a service for mobile devices,” in Proceedings of the ACM International Symposium on Mobile Ad Hoc Networking and Computing, ser. MobiHoc '14. New York, N.Y., USA: ACM, 2014, pp. 287-296, is a fine grained platform where partial computation offloading of sequential tasks is proposed as a service.
Offline/Online Scheduling in Wireless Cloud OffloadingAnother way to classify offloading techniques is based on whether the decisions to offload components is done at the beginning (one-shot, also known as offline strategy) or whether these decisions are made on the fly (online strategies), L. A. Hall, A. S. Schulz, D. B. Shmoys, and J. Wein, “Scheduling to minimize average completion time: Off-line and on-line approximation algorithms,” 1996. Offline offload strategies that minimize the energy consumed by the mobile device with constraints on the overall application deadline have been considered, e.g., in M. Nir, A. Matrawy, and M. St-Hilaire, “An energy optimizing scheduler for mobile cloud computing environments,” in IEEE Conference on Computer Communications Workshops (INFOCOM), April 2014, pp. 404-409, while individual deadline constraints for application tasks are monitored in P. Balakrishnan and C.-K. Tham, “Energy-efficient mapping and scheduling of task interaction graphs for code offloading in mobile cloud computing,” in IEEE/ACM 6th International Conference on Utility and Cloud Computing (UCC), December 2013, pp. 34-41. A partial offline offloading policy for the special case of applications with serial dependency graphs (see below for detailed description of component description graphs) is proposed in W. Zhang, Y. Wen, and D. Wu, “Collaborative task execution in mobile cloud computing under a stochastic wireless channel,” IEEE Transactions on Wireless Communications, vol. 14, no. 1, pp. 81-93, January 2015, and “Energy-efficient scheduling policy for collaborative execution in mobile cloud computing,” in IEEE Proceedings of INFOCOM, April 2013, pp. 190-194. A partial offloading strategy using a predictive algorithm for wireless connectivity is used in C. Shi, P. Pandurangan, K. Ni, J. Yang, M. Ammar, M. Naik, and E. Zegura, IC-Cloud: Computation offloading to an intermittently-connected cloud,” SCS Technical Report in Georgia Institute of Technology, 2013. [Online]. Available: http://hdl.handle.net/1853/45985, where a risk control strategy is applied to increase reliability of the prediction. Another work, based on genetic algorithms was proposed in S. Deng, L. Huang, J. Taheri, and A. Zomaya, “Computation offloading for service workflow in mobile cloud computing,” IEEE Transactions on Parallel and Distributed Systems, vol. PP, no. 99, pp. 1-1, Early access 2015; however, this strategy does not consider multi-RAT enabled devices or the scheduling order of components based on the component dependency graphs.
Online (time adaptive) cloud offloading for mobile devices requires awareness of instantaneous changes in the rates, delay values, and communication power for all of the radio interfaces. A partial computation offloading for frame-based real-time tasks with response time guarantees from the cloud servers is studied in A. S. M. Toma and J.-J. Chen, “Computation offloading for frame-based real-time tasks under given server response time guarantees,” Leibniz Transactions on Embedded Systems, vol. 1, no. 2, pp. 1-21, November 2014, where the server estimates the response time for remote execution of each task based on total bandwidth server model, M. Spuri and G. Buttazzo, “Scheduling aperiodic tasks in dynamic priority systems,” REAL-TIME SYSTEMS, vol. 10, pp. 179-210, 1996, and the tasks are scheduled for offloading with an “earliest deadline first” algorithm. An “everything on the cloud” offloading strategy based on energy and delay trade-off is proposed in eTime, P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” in IEEE Proceedings of INFOCOM, April 2013, pp. 195-199. Although, this work does assume a multi-RAT device only the best single wireless interface is used for offloading.
Wireless Cloud Offloading Using Single/Multiple Radio Interface(s)The third type of classification is based on whether the offloading algorithms are developed for single- or multi-RAT devices, and if multi-RAT devices are used, whether the wireless interfaces are used in a hybrid mode or an On/Off mode.
Wireless Cloud Offloading for Single-RAT Devices:
A multi-channel partial offline offloading solution for single-RAT enabled mobile devices was proposed in S. Barbarossa, S. Sardellitti, and P. D. Lorenzo, “Computation offloading for mobile cloud computing based on wide cross-layer optimization,” in Future Network and Mobile Summit (FutureNetworkSummit), July 2013, pp. 1-10. Note that the multi-RAT scenario is significantly different from the multi-channel single-RAT, in that the parameters of the different networks (e.g. WiFi and LTE) supported by multi-RAT devices vary widely in comparison to the parameters of different channels of the same radio interface, K. Ramachandran, E. Belding, K. Almeroth, and M. Buddhikot, “Interference-aware channel assignment in multi-radio wireless mesh networks,” in IEEE Conference on Computer Communications (INFOCOM), 2006, pp. 1-12. The extension of S. Barbarossa, S. Sardellitti, and P. D. Lorenzo, “Computation offloading for mobile cloud computing based on wide cross-layer optimization,” in Future Network and Mobile Summit (FutureNetworkSummit), July 2013, pp. 1-10 (with predetermined call graphs) to joint allocation of transmit power and OFDM constellation size in single and multi-channel cases in single-RAT enabled devices is studied in S. S. Paolo Di Lorenzo, Sergio Barbarossa, “Joint optimization of radio resources and code partitioning in mobile cloud computing,” IEEE Transactions on Parallel and Distributed Systems, pp. 1-1, Under second round of review 2015. Other work on single-RAT wireless offloading include: X. Ma, Y. Zhao, L. Zhang, H. Wang, and L. Peng, “When mobile terminals meet the cloud: computation offloading as the bridge,” IEEE Network, vol. 27, no. 5, pp. 28-33, September 2013; W. Zhang, Y. Wen, K. Guan, D. Kilper, H. Luo, and D. Wu, “Energy-optimal mobile cloud computing under stochastic wireless channel,” IEEE Transactions on Wireless Communications, vol. 12, no. 9, pp. 4569-4581, September 2013; E. Cuervo, A. Balasubramanian, D. ki Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl, “MAUI: Making smartphones last longer with code offload,” in International Conference on Mobile Systems, Applications, and Services. ACM, 2010, pp. 49-62; S. Kosta, A. Aucinas, P. Hui, R. Mortier, and X. Zhang, “Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading,” in IEEE Proceedings of INFOCOM, 2012, pp. 945-953; D. Kovachev, T. Yu, and R. Klamma, “Adaptive computation offloading from mobile devices into the cloud,” in IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA), 2012, pp. 784-791; C. Shi, K. Habak, P. Pandurangan, M. Ammar, M. Naik, and E. Zegura, “COSMOS: Computation offloading as a service for mobile devices,” in Proceedings of the ACM International Symposium on Mobile Ad Hoc Networking and Computing, ser. MobiHoc '14. New York, N.Y., USA: ACM, 2014, pp. 287-296; M. Nir, A. Matrawy, and M. St-Hilaire, “An energy optimizing scheduler for mobile cloud computing environments,” in IEEE Conference on Computer Communications Workshops (INFOCOM), April 2014, pp. 404-409; P. Balakrishnan and C.-K. Tham, “Energy-efficient mapping and scheduling of task interaction graphs for code offloading in mobile cloud computing,” in IEEE/ACM 6th International Conference on Utility and Cloud Computing (UCC), December 2013, pp. 34-41; “Energy-efficient scheduling policy for collaborative execution in mobile cloud computing,” in IEEE Proceedings of INFOCOM, April 2013, pp. 190-194; C. Shi, P. Pandurangan, K. Ni, J. Yang, M. Ammar, M. Naik, and E. Zegura, “IC-Cloud: Computation offloading to an intermittently-connected cloud,” SCS Technical Report in Georgia Institute of Technology, 2013. [Online]. Available: http://hdl.handle.net/1853/45985; S. Deng, L. Huang, J. Taheri, and A. Zomaya, “Computation offloading for service workflow in mobile cloud computing,” IEEE Transactions on Parallel and Distributed Systems, vol. PP, no. 99, pp. 1-1, Early access 2015; A. S. M. Toma and J.-J. Chen, “Computation offloading for frame-based real-time tasks under given server response time guarantees,” Leibniz Transactions on Embedded Systems, vol. 1, no. 2, pp. 1-21, November 2014; Y. Wen, W. Zhang, and H. Luo, “Energy-optimal mobile application execution: Taming resource-poor mobile devices with cloud clones,” in IEEE Proceedings of INFOCOM, 2012, pp. 2716-2720; and S. E. Mahmoodi, R. N. Uma, and K. P. Subbalakshmi, “Optimal joint scheduling and cloud offloading for mobile applications,” in Submitted to IEEE Transactions on Cloud Computing special issue on Mobile Clouds, June 2015. Recently, we proposed the concept of joint scheduling-offloading in the preceding S. E. Mahmoodi, R. N. Uma, and K. P. Subbalakshmi article, where the scheduling order of execution for the components, as well as, where each component must be executed, is jointly determined. This is in contrast to assuming a compiler pre-determined scheduling order and allows the algorithm to pick an optimal order of execution, appropriate for the wireless network conditions. This algorithm was designed for single-RAT mobile devices and is an offline solution.
Wireless Cloud Offloading for Multi-RAT Devices:
Cloud offloading strategies for multi-RAT devices, S. E. Mahmoodi, K. P. Subbalakshmi, and V. Sagar, “Cloud offloading for multi-radio enabled mobile devices,” in IEEE International Communication Conference (ICC), June 2015, pp. 1-6; D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012; and P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” in IEEE Proceedings of INFOCOM, April 2013, pp. 195-199, have recently begun to gain interest in the community because of the advances in cognitive radio networking M. Zorzi, A. Zanella, A. Testolin, M. D. F. D. Grazia, and M. Zorzi, “Cognition-based networks: A new perspective on network optimization using learning and distributed intelligence,” IEEE Access, vol. 3, pp. 1512-1530, August 2015, and heterogeneous networks (HetNets) as well as the trend in 4G to 5G evolution. However, most of these works, e.g., D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012, and P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” in IEEE Proceedings of INFOCOM, April 2013, pp. 195-199, only use one of the wireless interfaces (the one with the best characteristics) for all offloading related data transfers. Hence, these algorithms basically work with an On-Off model for the wireless interfaces. We proposed the first cognitive offloading strategy for multi-RAT devices, where all viable wireless interfaces are simultaneously used to offload as well as the optimal percentage of data over each wireless interface in S. E. Mahmoodi, K. P. Subbalakshmi, and V. Sagar, “Cloud offloading for multi-radio enabled mobile devices,” in IEEE International Communication Conference (ICC), June 2015, pp. 1-6. While this prior work was a one-shot (offline) offloading strategy, this disclosure discusses an online (time adaptive) strategy for cognitive offloading. Moreover, in the prior work, we optimized over all available interfaces at the mobile transmitter end only, and not at the cloud transmitter end. In this disclosure we present an online (time adaptive) cognitive mobile offloading strategy for both transmission and reception of relevant data. Finally, in our prior work, we assumed that the applications had either serial component dependency graphs or that we use a pre-determined scheduling order for the components of the application, whereas the present disclosure proposes a joint scheduling-offloading strategy for applications with arbitrary CDGs. The present disclosure presents an online (time adaptive) joint scheduling and cognitive offloading for multi-RAT devices for applications with arbitrary dependency graphs. The heuristic scheme in this disclosure differs from other approaches in at least the following aspects: (i) it is a true cognitive offloading strategy for multi-RAT devices; (ii) it is a time-adaptive online offloading strategy for applications with general component dependencies and therefore (iii) it is the first joint scheduling-cognitive offloading scheme for multi-RAT devices.
Network and Application ModelAs mentioned above, mobile applications 30 can be partitioned into components 30C, D. Kovachev, T. Yu, and R. Klamma, “Adaptive computation offloading from mobile devices into the cloud,” in IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA), 2012, pp. 784-791; G. Chen, B.-T. Kang, M. Kandemir, N. Vijaykrishnan, M. Irwin, and R. Chandramouli, “Studying energy trade-offs in offloading computation/compilation in java-enabled mobile devices,” IEEE Transactions on Parallel and Distributed Systems, vol. 15, no. 9, pp. 795-809, September 2004; and H. T. Dinh, C. Lee, D. Niyato, and P. Wang, “A survey of mobile cloud computing: architecture, applications, and approaches,” Wireless Communications and Mobile Computing, vol. 13, no. 18, pp. 1587-1611, 2013. Component i is said to be dependent on component j, if data must be sent from j (after j completes execution) to i, in order for i to complete its execution. This dependency is usually depicted as a component dependency graph (CDG) 34. CDGs can be: (i) serial (
A smart cognitive cloud offloading algorithm will trade-off the benefits of wireless offloading, namely, energy and time savings (when components can be parallely scheduled in the cloud and the mobile) with the costs of offloading, namely, the energy and delay costs involved in the associated data transfer, while simultaneously deciding on the optimal percentage of the data to send from the mobile and the cloud via each of the available wireless network interfaces 14-24. We assume that the energy consumption and the time required to transfer data between components that are executed in the same entity (whether cloud or mobile) is negligible in comparison to when the data must be transferred between entities. Also, we assume that the cloud and the mobile clocks are synchronized, B.-G. Chun and P. Maniatis, “Augmented smartphone applications through clone cloud execution,” in Proceedings of the 12th Conference on Hot Topics in Operating Systems, ser. HotOS'09, 2009, pp. 8-8 and J. Liu, B. Priyantha, T. Hart, H. S. Ramos, A. A. F. Loureiro, and Q. Wang, “Energy efficient gps sensing with cloud offloading,” in Proceedings of the ACM Conference on Embedded Network Sensor Systems, ser. SenSys '12, 2012. The time adaptive scheduling—offloading heuristic is managed in the cloud, and the feedback of decisions on offloading the components will be sent to the mobile device (
To determine the best strategy for joint scheduling-offloading, an aspect of the present disclosure is to define an appropriate net utility function. The notations used for these terms and the other parameters in this disclosure are defined in Table I below.
To determine the scheduling-offloading strategy for component i, two decision variables are defined for a time slot t as follows:
The net utility is calculated as a weighted sum of the energy, memory, and CPU cycles saved for the mobile device minus the inter-component communication cost arising from executing some components locally and some remotely. This can be written as:
U(t)=WsavedEsaved(t)+WmemoryMsaved(t)+WCPUCP Usaved(t)−wcomCcom(t). (1)
The weights for the individual costs and benefits are chosen such that Wsaved=1−wcom, and wCPU=1−wmemory.
At any given time t, the total energy saved by executing the components in the cloud can be computed as the energy cost for running it locally (Pimqim), which is given by:
where
and s=1 corresponds to the first time slot, when component i begins to execute. Likewise,
where s runs from the first time slot to the time slot corresponding to the current time t. The memory saved in the mobile device by offloading the components to the cloud can be expressed as:
where Mi is the memory consumed by the mobile device to launch component i.
The objective function for CPU cycles saved is given by:
where codei is the size of the code for instructions that is used for executing component i and ε is the mapping between code size and the CPU instructions. The communication cost at time slot t (Ccom(t)) will be discussed in the next section.
Proposed Cognitive Offloading & Scheduling HeuristicIn this section, we propose a heuristic to find an online cognitive scheduling-offloading strategy for the computations of mobile applications. The objective of the strategy is to specify the components that are selected for computation offloading, the time that each component should be scheduled for execution either locally or remotely, and the radio interface allocation for offloading at each time slot for both the mobile and cloud data transmission. The complete algorithm is depicted in Algorithm 1. A detailed description of the algorithm follows:
Optional Offline StageAs mentioned above, the offloading problem can be formulated as a two-stage or single-stage algorithm. This section discusses the first stage of the two-stage algorithm. In this stage, we eliminate some of the components as unsuitable for offloading at the outset, maximizing the instantaneous utility values at time to (e.g. components 5 and 7 in
In the offline stage, we identify the components that contribute the most to an increase in the net utility if scheduled in the mobile device and then eliminate them from being considered for offloading. We first obtain an approximate value for the optimal solution based on the information available at time t0. To do this we maximize the instantaneous net utility given by Eqn (1) using an approximation for the energy cost of offloading corresponding to time t0 (Ccom(t0)) assuming that the interface with the lowest communication power levels is used for data transfer. Mathematically,
where μij represents the dependency indicator (1 if component i must be processed before j, and 0 otherwise), and τthmc and τthcm are threshold values for the transmission at the mobile and cloud ends for each component, respectively. To obtain the approximation given by Eqn (2), we assume that the Tx (transmit) and Rx (receive) power levels (PkTx(t0) and PkRx(t0)) are fixed when computing these values for the offline stage. By selecting the wireless interface with the lowest Tx and Rx energy levels, we obtain the minimum energy consumed for communication over the wireless interfaces (∀k=1, 2, . . . , K) in Eqn (2) with the initial information in the offline stage (i.e., in the transmission, we have:
The optimization problem in the offline stage can be written as:
where c is the offload indicator vector (c=[c1(t0) c2(t0) . . . cN (t0)]), and T is the number of time slots to complete processing the application. Since the energy consumed by local execution (Pimqim), local memory consumption (Mi), and local CPU consumption (εcodei) are constant parameters, calculating the lower bound of the communication cost in Eqn (2) at initial time slot t0 by Ĉcom(t0) gives the upper bound of the net utility approximation considering all the potential components for offloading in the online stage. By solving this optimization problem, Ci*(t0) ∀i is obtained which specifies if the component i must be offloaded (Ci(t0)=1) or not. If Ci(t0)=1 (equivalently, mi(t0)=1−ci(t0)=0), then component i will be processed in the online stage (components 2, 3, 4, 6, 8, 9, 10, 11, and 12 in
In OPoff, we have the terms mi(t0)cj(t0) ∀i,j in the cost function (Ĉcom(t0)), which makes the optimization problem nonlinear. To convert this to a linear optimization problem, we replace the terms mi(t0)cj(t0), ∀i, j, with a new variable zij(t0) and add new constraints to make the new optimization problem equivalent to the original one, as in P. Rubin, September 2014. [Online]. Available: http://orinanobworld.blogspot.de/2010/10/binary-variables-and-quadratic-terms.html. These constraints are as follows:
zij(t0)≦mi(t0),zij(t0)≧0,zij(t0)cj(t0),zij(t0)≧cj(t0)−(1−mi(t0)), (5)
where zij (t0) is the indicator specified at time t0. This indicator is one if component i will be executed in the mobile device and component j will be executed in the cloud; otherwise, it is 0. The following subsections describe the online stage of the proposed heuristic.
Online StageIn the online stage of the algorithm (starting from t1 in
-
- 1) Each component must be processed only once, either in the mobile or in the cloud. This constraint is mathematically written as:
mi(t−1)+ci(t−1)<1,∀i. (6)
This equation shows that component i has not started execution (either locally or remotely) by t.
-
- 2) All the components on which component i depends should have completed execution before starting the offload process or local execution of component i, that is j precedence symbol i, for all components j that must be completed before component i. This should be checked from the start of the application runtime until (t−1)th time slot. Therefore, the precedence constraints are:
mi(t−lji(t−1))+ci(t−lji(t−1))≦mj(t−1)+cj(t−1),
∀ji,mj(t−1)+cj(t−1)=1,t=lji(t−1)+1 . . . T. (7)
where lji(t) is the number of time slots to process the preceding component j, either locally or remotely, and transfer the output data from component j to i by time slot t. Note that this time duration lji(t) is a function oft, because the time taken to execute a component and to communicate relevant data are time dependent (because of varying mobile device resource availability and wireless data rates). The duration lji(t) is expressed as:
where αk(s) and βk(s) are the percentages of allocated rates for the mobile to the cloud and the cloud to the mobile, respectively, using radio interface k for offloading at time slot s. The first two terms on the RHS of Eqn (8) are the execution time slots for component j in the mobile device and cloud, respectively, weighted by the respective indicator functions (mj(t) and cj(t)). The third term represents the relevant data-offload time between components j and i. If zjiαk(s) is non-zero, then αk(s)τj,kmc(s) represents the time slots to transmit the allocated output data of component j in the mobile device using radio interface k, to the cloud where component i will be executed at time slot s. If zijβk(s) is non-zero, then βk(s)τj,kcm(s) represents the time slots to send the part of the output data from component j in the cloud via radio interface k to the mobile device where component i will be executed at time slot s.
If these two constraints are satisfied for component i, then it is safe to execute it. Otherwise, component i is not ready for execution at this current time slot, and Xi(t) and Ii(t) are set to 0. Also note that it is possible to calculate lji(t−1), because we have access to all the decision variables, such as αk(s),βk(s), Xi(s), and Ii(s), for the previous time slots for sε{1, 2, . . . , t−1}.
Mobile Transmission Strategy:
Once a component has been identified for offloading, then radio allocation for the transmission from the mobile to cloud must be computed. Since our cognitive cloud offloader works with multiple wireless interfaces at the same time, the stability of the data transmission buffers should be monitored to ensure no buffer overflows. Mathematically, this can be written as follows:
where Qk(t) is the transmission queue of wireless interface k at time slot t from the mobile side. We cast the above problem as a Lyapunov optimization problem see M. J. Neely, Stochastic Network Optimization with Application to Communication and Queueing Systems Morgan and Claypool Publishers, 2010. The Lyapunov function is defined as where
Q(t)=[Q1(t) Q2(t) . . . QK(t)]. While the queue of mobile transmission (which includes all data that must be transferred from the mobile device to the cloud) is updated with time, the Lyapunov drift will be Δmc(Q(t))ΔE{L(Q(t+1))−L(Q(t))|Q(t)}. The Lyapunov drift is opportunistically minimized, taking into account the cost of the energy consumed for mobile transmission: Δmc(Q(t))+VmcE{EcomTx(t)|Q(t)} see L. Georgiadis, M. J. Neely, and L. Tassiulas, “Resource allocation and cross-layer control in wireless networks,” Found. Trends Netw., vol. 1, no. 1, pp. 1-144, April 2006., where Vmc is the control parameter for the queuing of the mobile transmission, considering the balance between the Lyapunov drift and the cost of energy consumed for transmission (EcomTx(t)), and
where all the components i, prepared for offloading at time slot t have Ii(t) set to one.
Lemma 1: As proved in M. J. Neely, Stochastic Network Optimization with Application to Communication and Queueing Systems Morgan and Claypool Publishers, 2010, the upper bound of the Lyapunov drift is obtained by:
Where Akmc(t) represents data rate transmitted from the mobile device to the cloud through radio interface k at time slot t, Bimc(t) is the arrival data rate in the mobile transmission buffer at time slot t. Note that Bimc(t) will include both the data that the application needs to transfer due to offload operations of component I, as well as, other ambient data that the mobile generates and which is unrelated to the offloading. Also, Amaxcm is the maximum transmitted data rate.
Following the Lyapunov optimization framework, the upper bound of the objective function in Eqn (10) must be minimized. This can be done by simplifying the RHS of Eqn (10) as follows:
where α=[α1(t) α2(t) . . . αK(t)]. Constraints (11) and (12), respectively, ensure that the transmission time lies below a certain threshold, TthTx, and that the required data is transferred through multi-RATS, but the summation of weights for radio interface allocation should be one.
The performance bounds of the transmission strategy based on the Lyapunov optimization, see M. J. Neely, Stochastic Network Optimization with Application to Communication and Queueing Systems Morgan and Claypool Publishers, 2010.
where ā represents the mean value for parameter a, and Ecom*Tx is the obtained from optimal value of EcomTx obtained from solving the optimization problem in Eqn (10). The offloading strategy (from the mobile to the cloud) in the online stage is as follows. For every component i, qualified for processing from the previous step, if the optimization problem OPTx has a solution for the variable parameter set α in the feasible region, then component i is offloaded starting at time slot t (Ii(t)=1) via K wireless interfaces at the optimal percentage values αk*(t) ∀k (e.g. component 2 at time t2, component 6 and 11 at t3 in the example of
In addition to updating the rates and latency values for each wireless interface in the time slots, the transmission queue for the next time slot for radio interface k (∀k) needs to be updated as follows:
where the first term on the RHS of Eqn (15) represents the data remaining in the queue for interface k, and the second term represents the data arrival at radio interface k in time slot t. Also note that if component i originally scheduled for remote execution is not offloaded at time slot t due to not finding a feasible solution for OPTx (meaning that energy and time constraints of offloading are not satisfied), then the delay values for transmission of the output data from component i in the mobile to the cloud via wireless interface k will be updated to: τi,kmc (t+1)+1. This means that, after each time slot, if the scheduled component for remote execution is not offloaded, the delay cost will be updated by the delay value at the next time slot, plus one.
Cloud Transmission Strategy:
Just as in the case of the transmission strategy from the mobile, we also optimize the cloud transmission strategy taking into account delays and energy consumed by the mobile device for receiving this data. We optimally choose the percentage of data that needs to be allocated to each wireless interface to send the necessary information from the cloud to the mobile. To ensure that no cloud Tx buffer overflows, the time-averaged summation of buffer occupancies must remain finite:
where Sk (t) is the transmission queue via the cloud for wireless interface k at time slot t. The Lyapunov function for the cloud transmission strategy, which also reflects the receiver strategy for the mobile, can be written as
where S(t)=[S1(t)S2(t) . . . SK (t)]. The Lyapunov drift in the data transfer from the cloud to the mobile is expressed as Δcm(S(t))=ΔE{L(S(t+1))−L(S(t))|S(t)}. This Lyapunov drift is opportunistically minimized, considering the penalty of energy consumed for downlink mobile reception as Δcm(S(t))+VcmE{EcomRx(t)|S(t)}, where Vcm is the control parameter in data transfer from the cloud to the mobile, while the trade-off between the Lyapunov drift of the cloud transmission queue and the penalty of energy consumed for mobile reception (EcomRx(t)) is applied, and
Following Lemma 1, the upper bound of the objective function for the Lyapunov drift of data transfer from the cloud to the mobile is obtained by:
where Akcm(t) represents the data rate transmitted from the cloud to the mobile device through radio interface k at time slot t, Bicm(t) is the arrival data rate in the cloud transmission buffer at time slot t. Bicm(t) will include both the data that the cloud transfers due to offload operations of component i as well as other ambient data. Also, Amaxcm is the maximum data rate from the cloud. After simplifying the upper bound on the RHS of Eqn (16), the objective function of the optimization problem for the cloud transmission strategy, which reflects the mobile reception status, is obtained. The optimal strategy can be written as the solution to the following optimization problem considering the delay constraint from the cloud to the mobile:
where β=[β1(t) β2(t) . . . βK (t)]. Constraints (18) and (19), respectively, ensure that the latency from the cloud to the mobile lies below a certain threshold, TthRx, and that the required data is optimally transmitted from the cloud via multiple interfaces and that the weights sum to unity. Also, the performance bounds for the cloud transmission queue and energy consumed by the mobile receiver, respectively, are given as:
The offloading strategy (cloud transmission) in the online stage is as follows. For every component i from which data must be received at the mobile device, if the optimization problem OPRx has a solution for the variable parameter set β in the feasible region, then component i is transmitted by the cloud, at time slot, t, via K wireless interfaces at the optimal percentage values βk*(t)∀k (e.g. component 3 at time slots t3 in the example of
As mentioned earlier, some components are selected for local execution (e.g. components 1, 4 and 5 at time slots t1, t2, and t4, respectively, in the example of
In this section, we first introduce the evaluation setup for the performance analysis of the proposed cognitive offloading and scheduling heuristic. Then the methods for comparisons are introduced. Finally, results of the simulation results are provided and discussed.
Real Data Measurements and Simulation SetupAll our experiments were run on an Android HTC Vivid smartphone. This device is equipped with a 1.2 GHz dual-core processor. Although our theory is developed for a general, K, number of radio interfaces, our experiments were conducted using two wireless radio interfaces for cloud offloading: WiFi and LTE (K=2). The Amazon Elastic Compute Cloud (Amazon EC2) was used for cloud computing July 2014. [Online]. Available: http://aws.amazon.com/ec2/.
In all the simulations, except the simulations in
We compare the proposed strategy to several other scenarios (1) no offload (mobile-only) execution, (2) all offload (cloud-only) execution, (3) the dynamic offloading algorithm (DOA) in D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012, and several variants of offload strategies that we propose below:
Exhaustive Search:
In this scheme, the proposed optimization problem is solved using brute force —by evaluating all possibilities and picking the best value. This gives an upper bound of performance for all algorithms. There is no offline stage to select the preferred components for offloading, and all components can potentially be offloaded in the online stage (except components 1 and N). Also the optimal offloading strategy in the heuristic for multi-RATs is obtained by searching exhaustively over all possible transmission strategies to guarantee the maximum net utility rather than using OPTx, OPRx for multi-RATs (Subsections 1 and 2 in Section IV). Note that this exhaustive search also includes the local execution of components. This method is computationally prohibitive for large and complex applications but serves as a benchmarking tool. This is provided here only to give an idea of the performance of the heuristics vis-a-vis the optimal solution.
Proposed Heuristic with No Offline Stage (H-1Stage):
This strategy essentially eliminates the offline stage and proceeds with the rest of the heuristic algorithm where all components are eligible for offloading.
Two-Stage Heuristic Algorithm (H-2Stage):
This is the proposed algorithm in which the pre-processing stage described above is used to eliminate some of the components from being considered for offloading. While this reduces the time complexity because fewer components are processed in the heuristic, it may eliminate some eligible components from being considered for offloading in the online stage, thereby sacrificing the net utility. The assignment of preferred components for offloading is performed using the optimizing strategy (OPoff) mentioned above. Note that since the offline optimization problem (OPoff) does not use instantaneous values of the parameters, this scheme will be suboptimal in comparison to H-1Stage. However, there are fewer components for offloading, so system complexity is lower and the algorithm is faster.
Proposed Single Stage Heuristic Under On-Off Model for the Wireless Interfaces (H-1S-OnOff):
In this scheme, we use the proposed single stage heuristic algorithm, where all components are considered for offloading at the online stage, but we only offload the components using one of the wireless interfaces. We select the wireless interface with the best characteristics for that time slot. Although D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012. and P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” in IEEE Proceedings of INFOCOM, April 2013, pp. 195-199, also use On-Off model for the wireless interface, they are different from this proposed variant. In P. Shu, F. Liu, H. Jin, M. Chen, F. Wen, and Y. Qu, “eTime: Energy-efficient transmission between cloud and mobile devices,” the entire application is offloaded and only the cloud strategy is optimized; moreover, it is not a joint scheduling-offloading scheme in that, it does not determine the scheduling order for the components but rather uses a pre-determined, serial execution order for the components. Also, D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” is not an online strategy.
Proposed Two-Stage Heuristics with ON/OFF Wireless Interfaces (H-2S-OnOff):
In this scheme, we use the two-stage algorithm for offloading, but we only use the wireless interface with the best characteristics for data transfers of both the mobile to cloud and the cloud to mobile.
Results and DiscussionWe first study the average net utility (Eqn (1)) as a function of maximum acceptable delay for offloading (Tth) for the five schemes (see
Finally,
The present disclosure presents a new concept of cognitive cloud offloading and introduces online heuristic strategies for computation offloading of multi-component applications in multi-RAT enabled mobile devices. The changes in wireless parameters at all available interfaces (e.g., rate, delay, power) are taken into account while determining the scheduling order of the multiple components of the application with arbitrary component dependency graphs. To obtain the best strategies for uplink and downlink offloading, the percentages of data to be sent by the mobile and the cloud via each wireless interface are updated at each time slot. The present disclosure presents a comprehensive model for the net utility. Satisfying the constraints for schedule order of applications with arbitrary CDGs, the strategy for either offloading or locally executing the components is provided in each time slot using the updated knowledge of wireless parameters. Note that queue stabilities of the mobile and cloud transmission buffers for aggregated interfaces are guaranteed in the offloading strategy. We analyzed performance of the heuristic strategy with real data measurements using a video navigation application on an HTC Vivid smartphone. The computations were offloaded via two wireless interfaces of WiFi and LTE to the Amazon EC2 cloud. Several versions of the heuristic strategy were compared with the globally optimal scheme (obtained by exhaustive search), a recent strategy in dynamic computation offloading, see D. Huang, P. Wang, and D. Niyato, “A dynamic offloading algorithm for mobile computing,” IEEE Transactions on Wireless Communications, vol. 11, no. 6, pp. 1991-1995, June 2012, and the classical strategies where all the components are executed locally and remotely. We observed that our proposed strategy (H-1Stage) consumes 28%, 51%, and 73% less energy in comparison to DOA, remote execution scenario, and local execution scenario, respectively. Also, it consumes only 8% more energy than the optimal solution (obtained via exhaustive search). We also noticed that using the cognitive cloud offloader, percentage allocation of radio interfaces quickly adapts according to changes in rates and delay values from each radio. Moreover, we tested scalability of the proposed scheme by increasing the number of components up to 145 where CDGs are used randomly with Fan-in/Fan-out graphs.
The present disclosure has been expressed in the context of cognitive computation offloading, joint scheduling-offloading, mobile cloud computing, multi-RAT offloading, and spectrum aware mobile computing. It will be understood that the embodiments described herein are merely exemplary and that a person skilled in the art may make many variations and modifications without departing from the spirit and scope of the claimed subject matter. All such variations and modifications are intended to be included within the scope of the disclosure.
Claims
1. A method for distributing a plurality of executable processing components and data used by an application program between a first computer and at least one second computer, the first and second computer connected by a plurality of radio interfaces, comprising the steps of:
- (A) automatically identifying executable processing components of the application program and data used by the application program to be offloaded to the second computer for execution;
- (B) automatically ascertaining which of the plurality of radio interfaces for performing the step of offloading to the second computer;
- (C) determining the relative percentage of the components and data that are to be communicated on each of the plurality of radio interfaces;
- (D) offloading the components and data identified in step (A) from the first computer to the second computer over at least one of the plurality of radio interfaces;
- (E) executing the components offloaded in Step (D) in the second computer, producing processed data;
- (F) communicating the processed data produced by step (E) to the first computer; and
- (G) using the processed data communicated in step (F) in the application program running on the first computer.
2. The method of claim 1, wherein at least a portion of the processing components are executed in the first computer and another portion of the processing components are executed in the second computer.
3. The method of claim 1, wherein the step of automatically identifying is based in part upon CPU utilization in the first computer.
4. The method of claim 1, wherein the step of automatically identifying is based in part upon memory utilization in the first computer.
5. The method of claim 1, wherein the step of automatically ascertaining is based in part upon connectivity strength of each of the plurality of radio interfaces.
6. The method of claim 1, wherein the step of automatically ascertaining is based in part upon data flow capacity of each of the plurality of radio interfaces.
7. The method of claim 1, wherein the first computer is a mobile computing device and the second computer is a server computer.
8. The method of claim 1, wherein the step of automatically identifying is based in part upon connectivity strength and data flow capacity of each of the plurality of radio interfaces.
9. The method of claim 8, wherein the step of automatically identifying is based in part upon a cumulative connectivity strength and data flow capacity of the plurality of radio interfaces at a given time (t).
10. The method of claim 1, wherein the step of automatically identifying is re-evaluated at a plurality of times (t), (t+1)... (tfinal), until completion of the application program.
11. The method of claim 1, wherein the step of automatically ascertaining is re-evaluated at a plurality of times (t), (t+1)... (tfinal), until completion of the application program.
12. The method of claim 1, wherein the step of determining is conducted at a plurality of times (t), (t+1)... (tfinal), until completion of the application program.
13. The method of claim 1, wherein at least one of the first computer and the second computer is connected to a network, the steps of offloading and communicating utilizing the network in addition to the plurality of radio interfaces.
14. The method of claim 1, wherein the step of offloading is conducted over at least two of the plurality of radio interfaces simultaneously.
15. The method of claim 1, wherein the step of identifying is based in part on the comparative amounts of energy consumed by executing a given processing component on the first computer compared to amount of energy used in the steps of offloading and communicating.
16. The method of claim 1, further comprising the step of scheduling the offloading and execution of each of the plurality of components the application based at least partly on a dependency of the plurality of components one to another.
17. The method of claim 1, wherein the steps of identifying and ascertaining are partly based on the data communication capacity from the second computer to the first computer during the step of communicating.
18. The method of claim 17, further comprising the step of automatically ascertaining which of the plurality of radio interfaces are used to perform the step of communicating the processed data produced by step (E) to the first computer.
19. The method of claim 1, wherein the step of automatically identifying is based in part upon a battery life of the first computer.
20. The method of claim 16, wherein the dependency of the plurality of components is modeled by a component dependency graph.
21. The method of claim 2, further comprising a step (H) of executing at least a portion of a component in the first computer at the same time as at least a portion of a component is executed in the second computer during step (E) of executing, whereby parallel processing occurs in the first computer and the second computer.
22. The method of claim 1, wherein the step of offloading is conducted opportunistically with offloading occurring while at least one radio interface is operational, ceasing when no radio interface is operational and resuming when at least one radio interface becomes operational.
23. The method of claim 22, wherein at least a portion of the processing components are executed in the first computer and another portion of the processing components are executed in the second computer, the execution of processing components in the first computer and the second computer occurring opportunistically, such that interruptions in the operability of the plurality of radio interfaces does not impede execution of steps of the processing components that are executable without further communication between the first computer and the second computer and allowing for parallel processing in the first computer and the second computer.
24. The method of claim 14, wherein the step of offloading is conducted over all available radio interfaces simultaneously.
25. The method of claim 14, wherein the step of communicating is conducted over all available radio interfaces simultaneously.
26. A system capable of executing an application program having a plurality of executable components, comprising:
- (A) a first computer with a processor and memory capable of executing at least one of the executable components;
- (B) a second computer with a processor and memory capable of executing at least one of the executable components;
- (C) a plurality of radio interfaces supporting communication between the first computer and the and second computer; and
- (D) a cognitive offloader and scheduler residing on at least one of the first computer or the second computer, the cognitive offloader and scheduler capable of automatically identifying executable processing components of the application program and data used by the application program to be offloaded to the second computer for execution; automatically ascertaining which of the plurality of radio interfaces for performing the step of offloading to the second computer; and determining the relative percentage of the components and data that are to be communicated on each of the plurality of radio interfaces based upon dependencies between each of the plurality of executable components and comparative net utility as affected by energy, memory and CPU cycle costs for the first computer for executing a given executable component at a given time (t).
27. The system of claim 26, wherein the first computer is a mobile computing device and the second computer is a server computer, the cognitive cloud offloader residing on the server computer.
Type: Application
Filed: Nov 30, 2016
Publication Date: Jun 8, 2017
Patent Grant number: 10397829
Applicant: The Trustees of The Stevens Institute of Technology (Hoboken, NJ)
Inventors: Seyed Eman Mahmoodi (Weehawken, NJ), K.P. Subbalakshmi (Holmdel, NJ)
Application Number: 15/364,367