1 Introduction
Cloud offloading has become a recognized solution for delivering computationally intensive applications (e.g., video-intensive games, computer vision-based applications [1], and real-time visual information reporting) on resource-constrained mobile devices [2], [3]. Typically, energy and time (or delay) constraints have played a strong role in determining offloading policies. Recently, we argued that the burden placed on the wireless networks supporting this offloading must also be taken into consideration [4] when developing offloading strategies. In [4], we proposed an optimal offloading policy for applications with sequential component dependency graphs and multi-radio enabled mobile devices, that minimizes the energy consumed by the mobile device such that overall execution time of the application will be below a given threshold while simultaneously determining optimal percentage of data (associated with computation offloading) to be transferred via each of the multiple wireless interfaces. In this paper, we address the problem of cloud offloading for mobile applications with arbitrary dependency graphs rather than sequential dependencies or pre-determined compiler generated schedule order. To this end, we must consider wireless-aware scheduling of the application components jointly with the offloading strategy. We optimally maximize a net utility function, which trades-off the energy saved at the resource constrained device with the time and energy costs involved in offloading while meeting the precedence constraints and execution deadline of the application in single radio enabled mobile devices. To the best of our knowledge, this is the first work that proposes joint scheduling–offloading for mobile applications. By optimizing the scheduling of the individual components along with cloud offloading decisions, taking into account the wireless parameters, allows for an overall better solution compared to optimizing only the offloading decisions using a pre-determined compiler-generated schedule order of execution for the individual components. Besides, using the general dependency graphs (without imposing a sequential ordering for processing) and an optimal joint scheduling-offloading scheme can potentially allow for parallel scheduling of components in the mobile and cloud at the same time, thus reducing time to completion for the application.