Clonecloud: Elastic execution between mobile device and cloud [1] ACM, Intel, Berkeley, Princeton 2011
Cloud Systems Utility Computing Resources As A Service Distributed Internet VPN Reliable and Secure
Mobile Computing Very Popular iphones Android Very Pervasive Phones Tablets Clothes Way of the future
Diverse Architectures Traditional machines: x86 Mobile platforms: ARM Others Security Portability Communication
Power/Cycle Limitations Short battery life Resources used for screen/auxiliary services Low speed processors Undervolted to save power Need to improve performance
Virtual Machines Desktop virtualisation Abstraction between hardware and software Common usage VMware Java Mobile platforms ios Gingerbread
Managed Languages Garbage Collection Threading/Parallelising Security/Access control Ease of programming Mobile developers are busy people
Native Methods Methods which must be run on certain platforms Mobile API to interface with hardware Camera GPS Microphone/Speaker Screen Partitioning needs to be aware of this
Duality Binary cloud-mobile split Cloud offers computation service to connected mobile Wi-fi 3G/4G Mobiles choose to offload execution to cloud
Migration Limitations Accessing native methods Methods accessing the phone s hardware API must be located on the mobile Shared variables Methods which share state must be co-located Nested deadlocking Methods blocking for migrated code may not migrate more code before the completion of previous migration Save power Save time
Static Analysis Determine points of migration Locked to method boundaries (can we do better?) Per-thread basis Under-approximate migration points. Reachability is undecidable
Automatic Profiling Determine how well code runs on cloud/mobile Ad hoc experimentation Run on both platforms Run under varying (random) conditions Run for different migrations
Optimisation Determine migration strategy Optimise for: Time (synchronous) Energy No tradeoff Constraints: migration limitations
Management Management Threads Migration Manager Serializes objects/data Blocks when migrated data is requested Node Manager Connects with cloud Determines what is best to migrate Partition Database Records possible partitionings Used by Node Manager
State Capture/Transmission Objects Java Garbage collector runs on both mobile and clone New object created Synchronises mobile and cloud
Implementation HTC G1 Cupcake Wi-fi and 3G Server Xeon 3.0 Ghz VMWare Extensive code modification Benchmarks: Virus Scan Image Search Privacy Preserving Advertisement
Profiles
Speedup
Power Saving
Benchmarks Made their own Virus scan Facial recognition Advertising Representative? Business?
Execution Machines Only one phone Better on phones with more serious networking? Bluetooth Infra-red Only one server Worse on servers under heavy load?
References I,,,, and. Clonecloud: Elastic execution between mobile device and cloud. In Proceedings of the sixth conference on Computer systems, pages 301 314. ACM, 2011.
Questions?