Dynamic Mobile Cloud Computing: Ad Hoc and Opportunistic Job Sharing
Introduction Challenges on Mobile Computing – Resource scarceness – Finite energy – Low connectivity Rise of “Cloud Computing” – Offloaded/distributed computing – SaaS/PaaS/IaaS Motivation – Overcoming problems of mobile computing Computational capability Battery Power Connectivity
Motivation Mobile Cloud: ‘cloud’ of mobile and stationary resources that could be utilize to achieve a common goal in a distributed manner.
4 Proposed Architecture
Work Distribution Mechanism Flow 1.Resource Discovery 2.Calculate costs Comparison of potential clients, user priorities, requirements and constraints 3.Distribute jobs 4.Run the jobs 5.Collect the results 6.Cleanup 7.Handle micropayments 5
Cost Model Experiment Environment – Two phones Nokia X6 Nokia 6500 – PC Windows 7 Enterprise Inter Core Duo CPU E /267 GHz RAM 2GB – Bluetooth Communication Consume less energy Improving speed of communication 6
Cost Model – Cost Formulae Sharing Jobs Offloading – Parameters for offloading in the master’s perspective 7 T m : Total time to complete the job in Master T pt : Time to establish piconet T d : Time to partition/distribute jobs to slaves T w&r : Time the master spends waiting for slaves T s : Time to complete the master’s job T sl : Total time to complete the job in Slave T cn : Time to connect to the master T rcv : Time to receive the job parameter T cp : Time to complete the slave’s job T sr : Time to send the completed result backs T mOff : Total time to complete the job in the Master node T sOff : Total time to complete the job in the Slave node T oj : Time to send job parameters to slaves T piconetOff
Cost Model – Cost Formulae Analytical Model – Offloading to n slaves – Equal job sharing Assume that a job is uniformly partitioned – Speedup S : Computational time for Slave(i) : Computational time for Slave(i) : communication overhead : communication overhead 8 T i : Time for i th job Ki : Ratio of computational times between master and slave communication overhead Computational time for Slave(i)
Cost Model – Cost Formulae Condition of Speedup, from offloading on n devices – If the ratio between the CPU of the slaves and the master device is greater than sum(communication cost of master) and max(computation + communication cost), there would be speedup 9
Cost Model – Pseudo Codes 10
Prototype Implementation Distributed Mandelbrot Set Generation – Mandelbrot Set A fractal model – Parallelizing Assign each device a continuous block of the image 11 A complex number c is part of the Mandelbrot set if, when starting with z 0 = 0 and applying the iteration repeatedly, the absolute value of z n remains bounded however large n gets.
Experiment Result 12 Speedup = T1/Tm
Related Works Partitioning application – Scavenger – MAUI (w/ VMM) – Cuckoo – Hyrax: for Android smartphone application whih are distributed both in terms of data and computation – MMPI VM migration – CloneCloud: to offload to a server through 3G or WiFi for Android phones 13
Conclusion Equal job sharing – Speedup When (Capability of Master) < (Capablities of Slave nodes) Future works – Job distribution regarding device capabilities – “Work stealing” for effective load balancing 14
To offload or not to offload: an efficient code partition algorithm for mobile cloud computing
Introduction Code Partition Problem – Energy/time-efficient way of allocating the components of the target application Characteristic of Good Code Partitioning – Real-time adaptability – Partition Efficiency Code Partitioning Approach – Call graph model MAUI – 0-1 ILP solver Proposed algorithm – Call Link approach
Mobile Cloud System Architecture (in MAUI)
Design Rationale Call graph model – Vertex : Method – Edge(Directed, weighted) – Calling relationship – Weights of vertices and edges Vertex – Execution cost in mobile/cloud Edge – Transferring cost(Input/Response) – Unremoteable methods User Interaction I/O (Sensor, Actuator) Security
Design Rationale Clustered Offloading Property – The offloading methods are likely to be executed sequentially – Sequential offloading saves the cost by reducing the execution cost and extra transferring cost of discrete offloads
Code Partition Algorithm Overview – The best offloading/integrating points on a call graph Finding them on the corresponding call link(derived by DFS) – Linear-time searching strategy – Time Complexity O(V+E)
Code Partition Algorithm Call link – Finding the best offloading and integrating points – NP problem – Sequential execution of call graph in a single thread From the timeline of execution, the call graph can be converted into a call link (executing order in DFS) Finding the best offloading/integrating points – (in a call graph) = (in a call link) Searching complexity of DFS – O(V+E)
Code Partition Algorithm One time offload property – The optimal number of the offloading and integrating points for the each sub-call link is one. – Proof : If more than one point exist, then there should be methods that are embedded between the offloaded methods, which is running with bigger cost on mobile
Code Partition Algorithm Optimal substructure – For a given sub call link, every offloading points share the same optimal integrating point, and the performance improvement of offloading from i is (1) – U i : The utility or performance improvements when offloading starts from method i to its corresponding best integrating point – M i, C i : Execution cost of method i on mobile/cloud – I i, R i : Transferring cost of method i for input/return state – K : the number of methods on the sub call link
Code Partition Algorithm Linear time searching
Code Partition Algorithm Linear time searching
Evaluation Environment – Implementation of the algorithm on C – Cloud Agent CPU – Dual core 2.0Ghz RAM – 4GB – Mobile Agent Samsung Galaxy ACE(GT-S5830) RAM 278MB Android Comparison with 0-1 ILP Solver
Evaluation Comparison in execution time – Face recognition application 19 remoteable methods – NLP application 73 remoteable methods Evaluation with real target apps. – Reverse-engineering to generate the call graphs – Generate weights randomly – focus on the running speed
Evaluation Performance evaluation by RTT