A Survey of Computation Offloading for Mobile Systems

A Survey of Computation Offloading for Mobile Systems

10 April 2012 | Karthik Kumar · Jibang Liu · Yung-Hsiang Lu · Bharat Bhargava
This paper provides a survey of computation offloading for mobile systems. Mobile systems have limited resources such as battery life, network bandwidth, storage capacity, and processor performance. Computation offloading is a technique that sends heavy computations to resourceful servers and receives results from them. This paper reviews the background, techniques, systems, and research areas of computation offloading, and identifies future research directions. Mobile systems have expanded the usage of computers from desktops and mainframes to mobile and embedded applications. These applications often run on systems with limited resources. Many of these applications use wireless networks with lower bandwidths than wired networks. Meanwhile, increasingly complex programs are running on these systems, creating a gap between the demand for complex programs and the availability of limited resources. Offloading is a solution to augment mobile systems' capabilities by migrating computation to more resourceful computers (servers). This is different from traditional client-server architecture and grid computing. Offloading is similar to efforts like SETI@home, where requests are sent to surrogates for performing computation. The key difference is that SETI@home involves thousands of users, whereas offloading is typically used to augment the computational capability of a resource-constrained device for a single user. A significant amount of research has been performed on computation offloading, including making it feasible, making offloading decisions, and developing offloading infrastructures. Prior to 2000, researchers focused on making offloading feasible due to limitations in wireless networks. In the early 2000s, the focus moved to developing algorithms for making offloading decisions. Improvements in virtualization technology, network bandwidths, and cloud computing infrastructures have made computation offloading more practical. Offloading may save energy and improve performance on mobile systems. However, this usually depends on parameters such as network bandwidths and data exchanged through networks. Many algorithms have been proposed to make offloading decisions to improve performance or save energy. The decisions are usually made by analyzing parameters including bandwidths, server speeds, available memory, server loads, and the amounts of data exchanged between servers and mobile systems. Offloading requires access to resourceful computers for short durations through networks. These servers may use virtualization to provide offloading services so that different programs and their data can be isolated and protected. Isolation and protections have motivated research on developing infrastructures for offloading at various granularities. This paper serves as a collective reference for the algorithmic mechanisms and the associated infrastructures, and identifies existing barriers and directions for research. It surveys the common approaches used to make offloading decisions, and classifies these approaches based on various factors. The paper is organized as follows: Section 2 describes a brief history of enabling technologies. Section 3 explains two objectives for offloading: reduce execution time and save energy, and describe infrastructures and tools developed to address the challenges of offloading. Section 4 describes why offloading will become increasingly important in the years to come,This paper provides a survey of computation offloading for mobile systems. Mobile systems have limited resources such as battery life, network bandwidth, storage capacity, and processor performance. Computation offloading is a technique that sends heavy computations to resourceful servers and receives results from them. This paper reviews the background, techniques, systems, and research areas of computation offloading, and identifies future research directions. Mobile systems have expanded the usage of computers from desktops and mainframes to mobile and embedded applications. These applications often run on systems with limited resources. Many of these applications use wireless networks with lower bandwidths than wired networks. Meanwhile, increasingly complex programs are running on these systems, creating a gap between the demand for complex programs and the availability of limited resources. Offloading is a solution to augment mobile systems' capabilities by migrating computation to more resourceful computers (servers). This is different from traditional client-server architecture and grid computing. Offloading is similar to efforts like SETI@home, where requests are sent to surrogates for performing computation. The key difference is that SETI@home involves thousands of users, whereas offloading is typically used to augment the computational capability of a resource-constrained device for a single user. A significant amount of research has been performed on computation offloading, including making it feasible, making offloading decisions, and developing offloading infrastructures. Prior to 2000, researchers focused on making offloading feasible due to limitations in wireless networks. In the early 2000s, the focus moved to developing algorithms for making offloading decisions. Improvements in virtualization technology, network bandwidths, and cloud computing infrastructures have made computation offloading more practical. Offloading may save energy and improve performance on mobile systems. However, this usually depends on parameters such as network bandwidths and data exchanged through networks. Many algorithms have been proposed to make offloading decisions to improve performance or save energy. The decisions are usually made by analyzing parameters including bandwidths, server speeds, available memory, server loads, and the amounts of data exchanged between servers and mobile systems. Offloading requires access to resourceful computers for short durations through networks. These servers may use virtualization to provide offloading services so that different programs and their data can be isolated and protected. Isolation and protections have motivated research on developing infrastructures for offloading at various granularities. This paper serves as a collective reference for the algorithmic mechanisms and the associated infrastructures, and identifies existing barriers and directions for research. It surveys the common approaches used to make offloading decisions, and classifies these approaches based on various factors. The paper is organized as follows: Section 2 describes a brief history of enabling technologies. Section 3 explains two objectives for offloading: reduce execution time and save energy, and describe infrastructures and tools developed to address the challenges of offloading. Section 4 describes why offloading will become increasingly important in the years to come,
Reach us at info@study.space