Cyber foraging helps small devices perform heavy tasks by opportunistically discovering and utilising available resources (such as computation, storage, bandwidth, etc.) held by larger, nearby peers. This offloading is done in an ad-hoc manner, as larger machines will not always be within reach. In order to facilitate cyber foraging, an application has to be split up into locally executable code (e.g., GUI-code) and remotely executable tasks. Most cyber foraging systems strive to keep these tasks as large as possible, so that the benefits of executing code on a faster machine outweighs the cost of remote execution. Working with large, atomic tasks has some limitations, e. g., with regards to mobility and efficient use of remote resources. In order to dynamically allocate available resources in a manner most suitable for a given job, a task can be broken down into sub-tasks and services, and arranged in an directed graph. Using this graph combined with information about available, nearby peers, a cyber foraging scheduler can distribute tasks across multiple peers, allowing the user to do more with less. This paper presents the Locusts cyber foraging framework, with special focus on the task description language and the associated scheduler.
Middleware Conference: Proceedings of the 1st Workshop on Mobile Middleware: Embracing the Personal Communication Device, 2008
cyber foraging; distributed computing; middleware
Main Research Area:
Mobile Middleware: Embracing the Personal Communication Device, 2008