Presentation is loading. Please wait.

Presentation is loading. Please wait.

Instructor: Li Erran Li 6998-10Spring2013/ 4/2/2013: Mobile Cloud Computing 1 Cellular.

Similar presentations


Presentation on theme: "Instructor: Li Erran Li 6998-10Spring2013/ 4/2/2013: Mobile Cloud Computing 1 Cellular."— Presentation transcript:

1 Instructor: Li Erran Li (lel2139@columbia.edu) http://www.cs.columbia.edu/~lierranli/coms 6998-10Spring2013/ 4/2/2013: Mobile Cloud Computing 1 Cellular Networks and Mobile Computing COMS 6998-10, Spring 2013

2 Review of Previous Lecture Push notification service Track service 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) 2

3 Review of Previous Lecture (Cont’d) What is the difference between APNS, GCM and Thialfi? 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) 3

4 Review of Previous Lecture (Cont’d) Push notification service – Unreliable: APNS, GCM – Reliable: Thialfi (has a notion of objects) 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) 4

5 Thialfi Architecture Client Bigtable Client Bigtable Matcher: Object ID  registered clients, version Registrar: Client ID  registered objects, notifications Client Registrar Matcher Object Bigtable Object Bigtable Data center Notifications Application Backend Registrations, notifications, acknowledgments Client library 54/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Adya et al. Each server handles a contiguous range of keys, Each server maintains an in-memory version Bigtable: log structured, fast write

6 C1: x, v7 C2: x, v7 C1: x, v5 C2: x, x: v5; C1, C2 x: v7; C1, C2 x Thialfi: Life of a Notification Client Bigtable Client Bigtable C1: x, v7 C2: x, v7 Notify: x, v7 Client C2 Matcher Object Bigtable Object Bigtable Data center Publish(x, v7) x, v7 Ack: x, v7 6 Registrar 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Adya et al.

7 Review of Previous Lecture (Cont’d) How to classify location based services? 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) 7

8 A Taxonomy of Applications Class of applications enabled by StarTrack 84/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

9 StarTrack System ST Client Insertion Application Location Manager Retrieval Manipulation Comparison … Application ST Client Insertion ST Server 94/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

10 What are System Challenges of Track Service? 1.Handling error-prone tracks 2.Flexible programming interface 3.Efficient implementation of operations on tracks 4.Scalability and fault tolerance 104/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

11 Challenges of Using Raw Tracks Advantages of Canonicalization: – More efficient retrieval and comparison operations – Enables StarTrack to maintain a list of non-duplicate tracks 114/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

12 StarTrack API Track Collections (TC): Abstract grouping of tracks – Programming Convenience – Implementation Efficiency Prevent unnecessary client-server message exchanges − Enable delayed evaluation − Enable caching and use of in-memory data structures 124/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

13 StarTrack API: Track Collections  TC JoinTrackCollections (TC tCs[], bool removeDuplicates)  TC SortTracks (TC tC, SortAttribute attr)  TC TakeTracks(TC tC, int count)  TC GetSimilarTracks (TC tC, Track refTrack, float simThreshold)  TC GetPassByTracks (TC tC, Area[] areas)  TC GetCommonSegments(TC tC, float freqThreshold)  Track[] GetTracks (TC tC, int start, int count) Manipulation Retrieval Creation  TC MakeCollection(GroupCriteria criteria, bool removeDuplicates) 134/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

14 API Usage: Ride-Sharing Application // get user’s most popular track in the morning TC myTC = MakeCollection(“name = Maya”, [0800 1000], true); TC myPopTC = SortTracks(myTC, FREQ); Track track = GetTracks(myPopTC, 0, 1); // find tracks of all fellow employees TC msTC = MakeCollection(“name.Employer = MS”, [0800 1000], true); // pick tracks from the community most similar to user’s popular track TC similarTC = GetSimilarTracks(msTC, track, 0.8); Track[] similarTracks = GetTracks(similarTC, 0, 20); // Verify if each track is frequently traveled by its respective owner User[] result = FindOwnersOfFrequentTracks(similarTracks); 144/2/13 Cellular Networks and Mobile Computing (COMS 6998-10) Courtesy: Maya et al.

15 Outline Mobile cloud platform services (previous lecture) Existing programming model for code offloading – MAUI (Nishtha Agarwal and Shuo Qiu) – Odessa (Junyang Lu and Xiaoji Li) – CloneCloud – COMET: code offloading using distributed shared memory Advancing the state of mobile cloud computing (Deepika Tunikoju and Rashmi Prithyani) 3/26/13 Cellular Networks and Mobile Computing (COMS 6998-10) 15

16 Mobile Cloud Computing (mCloud) today Apple iCloud – Store content in cloud and sync to all registered devices – Hosted by Windows Azure and Amazon AWS – iCloud Storage APIs support third-party app document syncing 16 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

17 Mobile Cloud Computing today (Cont’d) Amazon Silk browser – Accelerates web access – Learns user behavior and precache – Intelligently partition work between local and Amazon cloud 17 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

18 mCloud Fundamental Challenges What architecture best supports mCloud? What programming model best enables client to tap mCloud resources? What are basic services or building blocks for mCloud? What best supports service interaction? 18 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

19 mCloud Architecture Resource-intensive mobile applications – Face recognition for social networking app – Gesture recognition for control media app – Object and post recognition for augmented reality app End-to-end latency and througput matters for crisp interaction – Augmented reality need to display results within 1 sec – Need high data rate processing capability, low frame rate can miss gesture 19 Delay, loss on frame rate of video stream transfer [Odessa, 2011] Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

20 mCloud Architecture (Cont’d) WAN performance – First hop latency in 3G is 200ms – Verizon LTE :128ms, 6.44 Mbps downlink, 5Mbps uplink [Pcworld, March 2011] There is a need for a middle tier cloudlet = (compute cluster + wireless access point + wired Internet access + no battery limitations) “data center in a box”  “data center in a box” 20 “ Anatomizing Application Performance Differences on Smartphones”, MobiSys 2010 (Huang et al) Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

21 mCloud Architecture (Cont’d) Cloudlet possible locations Cellular providers has a unique advantage 21 BS Wireless Core Internet WiFi AP RDC A1 RDC A2 RDC B1 RDC B2 Regional Data centers (RDC) RNC Storage nodes Compute nodes Possible locations of cloudlet Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

22 mCloud Programming Model MAUI: RPC based offloading architecture CloneCloud: tight synchronization between cloud and phone Odessa: data-flow graph to exploit parallelism in perception applications COMET: distributed shared memory MAUI, CloneCloud, Odessa all have profiler, solver 22 MAUICloneCloudOdessaCOMET Remote execution unit Methods (RMI) Threads (method entry/exit) TasksThreads (any place) Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

23 mCloud Programming Model: MAUI Combine extensive profiling with an ILP solver – Makes dynamic offload decisions – Optimize for energy reduction – Profile: device, network, application Leverage modern language runtime (.NET CLR) – Portability: Mobile (ARM) vs Server (x86).NET Framework Common Intermediate Language – Type-Safety and Serialization: Automate state extraction – Reflection: Identifies methods with [Remoteable] tag Automates generation of RPC stubs 23 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

24 Maui server Smartphone Application Client Proxy Profiler Solver Maui Runtime Server Proxy Profiler Solver Maui Runtime Application RPC Maui Controller mCloud Programming Model: MAUI (Cont’d) Intercepts Application Calls Synchronizes State Chooses local or remote Handles Errors Provides runtime information MAUI architecture Cellular Networks and Mobile Computing (COMS 6998-10) 24 Source: MAUI Mobisys presentation 4/2/13

25 MAUI Profiler Profiler Callgraph Execution Time State size Network Latency Network Bandwidth Device Profile CPU Cycles Network Power Cost Network Delay Computational Delay Computational Power Cost Computational Delay Annotated Callgraph Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 254/2/13

26 MAUI Solver B 900 mJ 15ms C 5000 mJ 3000 ms 1000mJ 25000 mJ D 15000 mJ 12000 ms 10000 mJ A Computation energy and delay for execution Energy and delay for state transfer A sample callgraph Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 264/2/13

27 Is Global Program Analysis Needed? FindMatch 900 mJ InitializeFace Recognizer 5000 mJ 1000mJ 25000 mJ DetectAndExtract Faces 15000 mJ 10000 mJ User Interface Yes! – This simple example from Face Recognition app shows why local analysis fails. Cheaper to do local Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 274/2/13

28 Is Global Program Analysis Needed? FindMatch 900 mJ InitializeFace Recognizer 5000 mJ 1000mJ 25000 mJ DetectAndExtract Faces 15000 mJ 10000 mJ User Interface Yes! – This simple example from Face Recognition app shows why local analysis fails. Cheaper to do local Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 284/2/13

29 Is Global Program Analysis Needed? FindMatch InitializeFace Recognizer 1000mJ DetectAndExtract Faces User Interface 25900mJ Cheaper to offload Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 294/2/13

30 Can MAUI Adapt to Changing Conditions? Adapt to: – Network Bandwidth/Latency Changes – Variability on method’s computational requirements Experiment: – Modified off the shelf arcade game application – Physics Modeling (homing missiles) – Evaluated under different latency settings Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 304/2/13

31 DoLevel HandleMissiles DoFrame HandleEnemies HandleBonuses 11KB + missiles missiles *Missiles take around 60 bytes each 11KB + missiles Required state is smaller Complexity increases with # of missiles Can MAUI Adapt to Changing Conditions? Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 314/2/13

32 Case 1 DoLevel HandleMissiles DoFrame HandleEnemies HandleBonuses *Missiles take around 60 bytes each  Zero Missiles  Low latency (RTT < 10ms) Computation cost is close to zero Offload starting at DoLevel Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 324/2/13

33 Case 2 DoLevel HandleMissiles DoFrame HandleEnemies HandleBonuses *Missiles take around 60 bytes each  5 Missiles  Some latency (RTT = 50ms) Most of the computation cost Very expensive to offload everything Little state to offload Only offload Handle Missiles Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 334/2/13

34 MAUI Implementation Platform – Windows Mobile 6.5 –.NET Framework 3.5 – HTC Fuze Smartphone – Monsoon power monitor Applications – Chess – Face Recognition – Arcade Game – Voice-based translator Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 344/2/13

35 Questions How much can MAUI reduce energy consumption? How much can MAUI improve performance? Can MAUI Run Resource-Intensive Applications? Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 354/2/13

36 How much can MAUI reduce energy consumption? Big savings even on 3G An order of magnitude improvement on Wi-Fi Face Recognizer Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 364/2/13

37 How much can MAUI improve performance? Improvement of around an order of magnitude Face Recognizer Source: MAUI presentation Cellular Networks and Mobile Computing (COMS 6998-10) 374/2/13

38 Latency to server impacts the opportunities for fine-grained offload Up to 40% energy savings on Wi-Fi Solver would decide not to offload Arcade Game Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 384/2/13

39 Can MAUI Run Resource-Intensive Applications? CPU Intensive even on a Core 2 Duo PC Can be run on the phone with MAUI Translator Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 394/2/13

40 Conclusions MAUI enables developers to: – Bypass the resource limitations of handheld devices – Low barrier entry: simple program annotations For a resource-intensive application – MAUI reduced energy consumed by an order of magnitude – MAUI improved application performance similarly MAUI adapts to: – Changing network conditions – Changing applications CPU demands Source: MAUI Mobisys presentation Cellular Networks and Mobile Computing (COMS 6998-10) 404/2/13

41 mCloud Programming Model: CloneCloud Offloading decision done at beginning of execution 41 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

42 The Before-After Picture Cellular Networks and Mobile Computing (COMS 6998-10) 42 Courtesy: Byung-Gon Chun et. al. 4/2/13

43 CloneCloud v1 Architecture Cellular Networks and Mobile Computing (COMS 6998-10) 43 Courtesy: Byung-Gon Chun et. al. 4/2/13

44 AppVM Clones Virtual machine of entire client device – Android x86 VM natively executed on VMWare in an x86 machine Synchronized file systems Cellular Networks and Mobile Computing (COMS 6998-10) 44 Courtesy: Byung-Gon Chun et. al. 4/2/13

45 Partitioning Where to partition code, satisfying any constraints for correctness, so as to optimize for current conditions Cellular Networks and Mobile Computing (COMS 6998-10) 45 Courtesy: Byung-Gon Chun et. al. 4/2/13

46 Automatic Partitioning Framework Partition Analyzer Application binary Partitioning constraints Static analysis location- constraints Profiling inputs Dynamic profiling cost-annotated executions Optimization solver Optimal partitioning points Identify valid split points Construct cost models Pick best choice for an objective Cellular Networks and Mobile Computing (COMS 6998-10) 46 Courtesy: Byung-Gon Chun et. al. 4/2/13

47 Partitioning: Static Analysis Partitioning points – Restrict to method entry/exit Identify “pinned” methods – Identify framework library methods Identify mutually dependent native state – Class natives stay together Collect static control flow – Who calls whom Cellular Networks and Mobile Computing (COMS 6998-10) 47 Courtesy: Byung-Gon Chun et. al. 4/2/13

48 Partitioning: Profiling Pick k invocations For each invocation – Run app on mobile device – Run app on clone For each method – Execution time – Context size entry/exit – Estimate of energy consumption Cellular Networks and Mobile Computing (COMS 6998-10) 48 Courtesy: Byung-Gon Chun et. al. 4/2/13

49 Partitioning: Intuition Partitioning points splice profile trees together Context size used to estimate network cost Cellular Networks and Mobile Computing (COMS 6998-10) 49 Courtesy: Byung-Gon Chun et. al. 4/2/13

50 Partitioning: Optimization List all partitioning choices Remove partitioning choices that do not meet the constraints For each choice, compute total time Find the minimum Cellular Networks and Mobile Computing (COMS 6998-10) 50 Courtesy: Byung-Gon Chun et. al. 4/2/13

51 Distributed Execution How to seamlessly execute the partitions of an application locally and remotely Cellular Networks and Mobile Computing (COMS 6998-10) 51 Courtesy: Byung-Gon Chun et. al. 4/2/13

52 Migration Architecture Cellular Networks and Mobile Computing (COMS 6998-10) 52 Courtesy: Byung-Gon Chun et. al. 4/2/13

53 Migration: Suspend-Transmit-Resume Mobile device Clone Transmit At migration point Suspend thread Capture context Transmit Launch process Patch migrated context Resume thread Suspend thread Capture context Merge migrated context Resume thread At reintegration point Cellular Networks and Mobile Computing (COMS 6998-10) 53 Courtesy: Byung-Gon Chun et. al. 4/2/13

54 Migration Challenges Regular IDs (references) not globally unique – Address space difference between mobile device and clone System objects created at boot everywhere Cellular Networks and Mobile Computing (COMS 6998-10) 54 Courtesy: Byung-Gon Chun et. al. 4/2/13

55 Migration: References in Motion Cellular Networks and Mobile Computing (COMS 6998-10) 55 Courtesy: Byung-Gon Chun et. al. 4/2/13

56 The CloneCloud v1 Prototype On Android platform + x86 VM clones Modified DalvikVM to support thread-level migration and dynamic profiling Implemented NodeManager to handle registration and communication Static analysis using JChord Cellular Networks and Mobile Computing (COMS 6998-10) 56 Courtesy: Byung-Gon Chun et. al. 4/2/13

57 Evaluation Setup Test applications – Image search – Virus scanning – Privacy-preserving user profiling Phone: Android Dev Phone 1 Clone VM: a server with a 3.0GHz Xeon CPU running VMWare ESX 4.1 in Intel IT infrastructures Wireless connection: WiFi, T-mobile 3G Cellular Networks and Mobile Computing (COMS 6998-10) 57 Courtesy: Byung-Gon Chun et. al. 4/2/13

58 Execution Time Comparison (Image Search) Execution time (seconds) 20x 1x Cellular Networks and Mobile Computing (COMS 6998-10) 58 Courtesy: Byung-Gon Chun et. al. 4/2/13

59 Energy Consumption Comparison (Image Search) Energy consumption (J) 20x 1x Cellular Networks and Mobile Computing (COMS 6998-10) 59 Courtesy: Byung-Gon Chun et. al. 4/2/13

60 Discussion Applicability is application-specific – Application characteristics – Execution mechanism A design point with focus on automation – Apps structured to be more amenable to migration Clone VMs in untrusted environments Cellular Networks and Mobile Computing (COMS 6998-10) 60 Courtesy: Byung-Gon Chun et. al. 4/2/13

61 Conclusion CloneCloud: automatic partitioning and migration to enhance mobile applications – Use of clones – Flexible app partitioning – Seamless migration Cellular Networks and Mobile Computing (COMS 6998-10) 61 Courtesy: Byung-Gon Chun et. al. 4/2/13

62 Cellular Networks and Mobile Computing (COMS 6998-10) 62 mCloud Programming Model: COMET 1. Improve mobile computation speed 2. Require no programmer effort 3. Generalize well with existing applications 4. Resist network failures Courtesy: Mark Gordon et. al. 4/2/13

63 Cellular Networks and Mobile Computing (COMS 6998-10) 63 Distributed Shared Memory COMET is offloading + DSM  Offloading bridges computation disparity  DSM provides logically shared address space DSM usually applied to cluster environments  Low latency, high throughput Mobile relies on wireless communication Courtesy: Mark Gordon et. al. 4/2/13

64 Cellular Networks and Mobile Computing (COMS 6998-10) 64 X=123 X=555 X=? X=123 DSM (continued) Conventional DSM (Munin) X=123 Waited an RTT for a write Read could take RTT also Courtesy: Mark Gordon et. al. 4/2/13

65 Cellular Networks and Mobile Computing (COMS 6998-10) 65 Java Memory Model Dictates which writes a read can observe Specifies 'happens-before' partial order  Access in single thread totally ordered  Lazy Release Consistency locking Fundamental memory unit is the field  Known alignment, known width Courtesy: Mark Gordon et. al. 4/2/13

66 Cellular Networks and Mobile Computing (COMS 6998-10) 66 Field DSM Track dirty fields locally Need 'happens-before' established?  Transmit dirty fields! (mark fields clean) Not clear it scales well past two endpoints  Not important to our motivation  Use classic cluster DSM on server Courtesy: Mark Gordon et. al. 4/2/13

67 Cellular Networks and Mobile Computing (COMS 6998-10) 67 VM-synchronization Used to establish 'happens-before' relation Directed operation between pusher and puller Synchronizes  Bytecode sources  Java thread stacks  Java heap Courtesy: Mark Gordon et. al. 4/2/13

68 68 Bytecode Update (Step 1 of 3) Operation begins by sending any new code I loaded file xyz.dex I have xyz.dex cached Pusher Puller Courtesy: Mark Gordon et. al. 4/2/13 Cellular Networks and Mobile Computing (COMS 6998-10)

69 69 Stack Update (Step 2 of 3) Next we send over thread stacks Thread id: 2 job2::run pc:5 registers[42, 555, 0] workLoop pc:6 registers[0, [obj:9]] start pc:3 Registers[101, [obj:9]] Pusher Puller nom 4/2/13

70 Cellular Networks and Mobile Computing (COMS 6998-10) 70 Heap Update (Step 3 of 3) Finally send over heap update  We send updates to any changed (or new) field  Only send updates of 'shared' heap Pusher Puller [obj:2].y = 1 [obj:4].z = [obj:3]... 4/2/13

71 Cellular Networks and Mobile Computing (COMS 6998-10) 71 Lock ownership Annotate with lock ownership flag Establish 'happens-before' with VM-sync Courtesy: Mark Gordon et. al. 4/2/13

72 Cellular Networks and Mobile Computing (COMS 6998-10) 72 Thread Migration Thread migration trivial  Push VM-sync  Transfer lock ownership Pusher Puller 4/2/13

73 Cellular Networks and Mobile Computing (COMS 6998-10) 73 Native Methods Written in C with bindings for Java  Math.sin(), OSFileSystem.write(), VMThread.currentThread() Native methods exist to  Access device resources (file system, display, etc)  For performance reasons  To work with existing libraries Not generally safe to run on either endpoint  Manually white list safe native methods Courtesy: Mark Gordon et. al. 4/2/13

74 Cellular Networks and Mobile Computing (COMS 6998-10) 74 X=555X=557 Thread 1 foo() r0=[X] r0=r0+1 [X]=r0 > bar() X=556 Thread 1 foo() r0=[X] r0=r0+1 [X]=r0 > bar() X=556 Failure Recovery VM-synchronization is recovery safe Always leave enough information on client If server is lost resume threads running locally! Thread 1 > foo() r0=[X] r0=r0+1 [X]=r0 bar() Thread 1 > foo() r0=[X] r0=r0+1 [X]=r0 bar() X=555 Courtesy: Mark Gordon et. al. 4/2/13

75 Cellular Networks and Mobile Computing (COMS 6998-10) 75 X=556X=555 Thread 1 foo() r0=[X] r0=r0+1 [X]=r0 > bar() Thread 1 foo() r0=[X] r0=r0+1 [X]=r0 > bar() X=556 Failure Recovery VM-synchronization is recovery safe Always leave enough information on client If server is lost resume threads running locally! Thread 1 > foo() r0=[X] r0=r0+1 [X]=r0 bar() Thread 1 > foo() r0=[X] r0=r0+1 [X]=r0 bar() X=555 Courtesy: Mark Gordon et. al. 4/2/13

76 Cellular Networks and Mobile Computing (COMS 6998-10) 76 Tau-Scheduler Τ = 2 * VM-synchronization time Courtesy: Mark Gordon et. al. 4/2/13

77 Cellular Networks and Mobile Computing (COMS 6998-10) 77 Implementation Built from gingerbread CyanogenMod source ~5000 lines of C code JIT not included Engine.c:offMigrateThread() offWriteU1(self, OFF_ACTION_MIGRATE); deactivate(self); offThreadWaitForResume(self); Courtesy: Mark Gordon et. al. 4/2/13

78 Cellular Networks and Mobile Computing (COMS 6998-10) 78 Evaluation Setup Samsung Captivate (1 GHz Hummingbird) 2 x 3.16GHz quad core Xeon X5460 cores Courtesy: Mark Gordon et. al. 4/2/13

79 Cellular Networks and Mobile Computing (COMS 6998-10) 79 Benchmarks 8 applications from Google Play  Average speed-up of 2.88X on WiFi / 1.28X on 3G  Average energy saving of 1.51X on WiFI / 0.84X on 3G 2 computation benchmark applications  10.4X speed-up w/ WiFi on Linpack  200+X speed-up w/ multi-threaded factoring Courtesy: Mark Gordon et. al. 4/2/13

80 Cellular Networks and Mobile Computing (COMS 6998-10) 80 Rhino Java JavaScript Interpreter  Ran with SunSpider JavaScript benchmark 4/2/13

81 Cellular Networks and Mobile Computing (COMS 6998-10) 81 Conclusion Offloading+DSM=COMET  Improve computation speed  No programmer effort  Generalize well  Resist network failures 4/2/13

82 Cellular Networks and Mobile Computing (COMS 6998-10) 82 Contributions Design/Impl. with four simultaneous goals  Fine granularity offloading  Mutli-threading support Field based DSM coherency 4/2/13

83 mCloud Programming Model: Odessa Data flow graph: vertices are stages; edges are connectors; stages share nothing 83 Face Recognition Gesture Recognition Cellular Networks and Mobile Computing (COMS 6998-10) Object Pose Estimation Source: Odessa Mobisys presentation 4/2/13

84 mCloud Programming Model: Odessa (Cont’d) Offloading DEcision System for Streaming Applications Network Application Sprout Odessa Mobile Device Application Sprout Odessa Profiler Cloud Infrastructure Odessa Runtime Profiler Decision Engine Cellular Networks and Mobile Computing (COMS 6998-10) 84 Source: Odessa Mobisys presentation 4/2/13

85 mCloud Programming Model: Odessa (Cont’d) 85 B2 Network C BAB1A Application Data Flow Graph Screen C Local Execution Cost Local Execution Cost Remote Execution Cost Remote Execution Cost > Cellular Networks and Mobile Computing (COMS 6998-10) Smartphone Cloud Infrastructure Incremental decisions adapt quickly to input and platform variability. Source: Odessa Mobisys presentation 4/2/13

86 Support for Service Interaction Synergy of mCloud services – Shared basic services enables more efficient usage of cloud resources(e.g. shared memcache eliminates data duplication of individual services) – Co-location makes mashed-up applications to achieve native performance (file transfer becomes an object reference) mCloud offers shared platform services mCloud optimizes service interaction through active VM migration 86 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

87 Closing Thoughts Cloud computing needs to advance in architecture, programming model, platform services to revolutionize mobile computing 87 Cellular Networks and Mobile Computing (COMS 6998-10) 4/2/13

88 Useful Tools Hprof: a heap/CPU profiling tool Jchord: a static analysis tool on Java bytecode Dummynet (ipfw): simulates/enforces queue and bandwidth limitations, delays, packet losses OpenCV: a library of programming functions for real time computer vision Cellular Networks and Mobile Computing (COMS 6998-10) 884/2/13


Download ppt "Instructor: Li Erran Li 6998-10Spring2013/ 4/2/2013: Mobile Cloud Computing 1 Cellular."

Similar presentations


Ads by Google