cellular networks and mobile computing coms 6998-8, spring 2012

Download Cellular Networks and Mobile Computing COMS 6998-8, Spring 2012

Post on 24-Feb-2016




0 download

Embed Size (px)


Cellular Networks and Mobile Computing COMS 6998-8, Spring 2012. Instructor: Li Erran Li ( lel2139@columbia.edu ) http:// www.cs.columbia.edu /~coms6998-8 / 1/23/2012: Mobile Cloud Computing. Mobile Cloud Computing ( mCloud ) today. Apple iCloud - PowerPoint PPT Presentation


Cellular Networks and Mobile Computing COMS 6998-8, Spring 2012

Cellular Networks and Mobile ComputingCOMS 6998-8, Spring 2012Instructor: Li Erran Li (lel2139@columbia.edu)http://www.cs.columbia.edu/~coms6998-8/1/23/2012: Mobile Cloud Computing1Mobile Cloud Computing (mCloud) todayApple iCloudStore content in cloud and sync to all registered devicesHosted by Windows Azure and Amazon AWSiCloud Storage APIs support third-party app document syncing2

1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)2Mobile Cloud Computing today (Contd)Amazon Silk browserAccelerates web accessLearns user behavior and precacheIntelligently partition work between local and Amazon cloud


1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)3mCloud Fundamental ChallengesWhat 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?41/23/12Cellular Networks and Mobile Computing (COMS 6998-8)4mCloud ArchitectureResource-intensive mobile applicationsFace recognition for social networking appGesture recognition for control media app Object and post recognition for augmented reality appEnd-to-end latency and througput matters for crisp interactionAugmented reality need to display results within 1 secNeed high data rate processing capability, low frame rate can miss gesture5

Delay, loss on frame rate of video stream transfer [Odessa, 2011]1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)5mCloud Architecture (Contd)WAN performanceFirst hop latency in 3G is 200msVerizon LTE :128ms, 6.44 Mbps downlink, 5Mbps uplink [Pcworld, March 2011] There is a need for a middle tiercloudlet = (compute cluster+ wireless access point+ wired Internet access+ no battery limitations) data center in a box6Anatomizing Application Performance Differences on Smartphones, MobiSys 2010 (Huang et al)

1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)6mCloud Architecture (Contd)Cloudlet possible locationsCellular providers has a unique advantage7


Wireless Core


WiFi APRDCA1RDCA2RDCB1RDCB2Regional Data centers (RDC)


Storage nodesComputenodesPossible locationsof cloudlet1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)7mCloud Programming ModelMAUI: RPC based offloading architectureOdessa: data-flow graph to exploit parallelism in perception applicationsCloneCloud: tight synchronization between cloud and phoneOrelans: a new programming model based on grainsMAUI, CloneCloud , Odessa all have profiler, solver8MAUICloneCloudOdessaOrleansRemote execution unitMethods (RMI)ThreadsTasksGrains1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)mCloud Programming Model: MAUICombine extensive profiling with an ILP solverMakes dynamic offload decisionsOptimize for energy reductionProfile: device, network, application

Leverage modern language runtime (.NET CLR)To simplify program partitioningReflection, serialization, strong typingIdentifies methods with [Remoteable] tagAutomates generation of RPC stubs

91/23/12Cellular Networks and Mobile Computing (COMS 6998-8)9Maui serverSmartphoneApplicationClient ProxyProfilerSolverMaui RuntimeServer ProxyProfilerSolverMaui RuntimeApplicationRPCRPCMaui ControllermCloud Programming Model: MAUI (Contd)Intercepts Application CallsSynchronizes StateChooses local or remoteHandles ErrorsProvides runtime informationMAUI architecture

1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)10the MAUI coordinator, which handles authenticationand resource allocation for incoming requests to instantiate a partitionedapplication.10mCloud Programming Model: CloneCloudOffloading decision done at beginning of execution11

1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)11mCloud Programming Model: OdessaData flow graph: vertices are stages; edges are connectors; stages share nothing 12

Face RecognitionGesture Recognition1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)

Object Pose EstimationFigure 2(a) shows the application graph for facerecognition. The application consists of two main logical blocksconsisting of face detector and the classifier. Face detection is doneusing the default OpenCV [4] Haar Classifier. The face classifiertakes as input the detected faces and runs an online semi-supervisedlearning algorithm [17] to recognize the faces from a data set of 10people.Object and Pose Recognition Figure 2(b) shows the data-flowgraph for the object instance and pose recognition application [26].The application consists of four main logical blocks. As shownin the figure, each image first passes through a proportional downscaler.SIFT features [20] are then extracted from the image, andmatched against a set of previously constructed 3D models for theobjects of interest. The features for each object are then clusteredby position to separate distinct instances. A random sample consensus(RANSAC) algorithm with a non-linear optimization is usedto recognize each instance and estimate its 6D pose.Gesture Recognition. Figure 2(c) shows the application graph fora gesture recognition application. Each video frame is sent to twoseparate tasks, face detection and motion extraction. The latter accumulatesframe pairs, and then extracts SIFT-like features that encodeoptical flow in addition to appearance [6]. These features,filtered by the positions of detected faces, are aggregated over awindow of frames using a previously-generated codebook to createa histogram of occurrence frequencies. The histogram is treated asan input vector to a set of support vector machines trained for thecontrol gestures.

Programming Model. Applications in the Sprout framework arestructured as a data flow graphs; the data flow model is particularlywell suited for media processing applications that perform a seriesof operations to an input video or audio stream. The vertices ofthe graph are processing steps called stages and the edges are connectorswhich represent the data dependencies between the stages.Stages within an application employ a shared-nothing model: theyshare no state, and interact only through connectors. This restrictionkeeps the programming complexity of individual stages comparableto that of sequential programming, and allows concurrencyto be managed by the Sprout runtime. This programming modelallows programmers to express coarse-grained application parallelismwhile hiding much of the complexity of parallel and distributedprogramming from the application developer.Automated data transfer. Sprout connectors define data dependenciesand perform data transfer between processing stages. Theunderlying implementation of a connector depends on the locationof the stage endpoints. If the connected stages are running inthe same process, the connector is implemented as an in-memoryqueue. Otherwise, a TCP connection is used. The Sprout runtimedetermines the connector type, and handles serialization and datatransport through connectors transparently. This allows a processingstage to be written in a way that is agnostic to whether it orrelated processing steps have been off-loaded.Parallelism Support. The Sprout runtime supports coarse-graineddata parallelism and pipeline parallelism. Data parallelism is supportedby having multiple instances of a stage execute in parallel onseparate processor cores. Pipeline parallelism is supported by havingmultiple frames be processed simultaneously by the differentprocessing stages of the application.The relationship between Sprout and Odessa. Sprout providesprogrammers with mechanisms to dynamically adjust running applications,change the degree of parallelism, and migrate processingstages between machines. In Odessa, we develop adaptive techniquesfor determining when and which stages to offload, and decidinghow much pipelining and data-parallelism is necessary inorder to achieve low makespan and high throughput, and then leveragethe Sprout mechanisms to effect the changes.12mCloud Programming Model: Odessa (Contd)Offloading DEcision System for Streaming Applications

NetworkApplicationSproutOdessaMobile DeviceApplicationSproutOdessa ProfilerCloud InfrastructureOdessaRuntimeProfilerDecisionEngine1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)1313mCloud Programming Model: Odessa (Contd)14B2

NetworkCBAB1AApplication Data Flow Graph ScreenCLocal ExecutionCostRemoteExecutionCost>1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)SmartphoneCloud InfrastructureIncremental decisions adapt quickly to input and platform variability.mCloud Programming Model: Orleans15Software framework and runtime to make cloud programming easier and more productiveShift burden of correctness and performance from developer to Orleans systemExperimental system from Microsoft ResearchRadically simplified, prescriptive programming model ActorsAsynchronous messagingLightweight transactionsPersistenceAdaptive performance management1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)15mCloud Programming Model: Orleans (Contd)Actor based: fine-grain distributed objects are natural abstractionGrains partition dataSecure and isolated computation with clear points of communicationsEnable computation replicationNatural integration with persistent storageGrain resides on disk until activated161/23/12Cellular Networks and Mobile Computing (COMS 6998-8)mCloud Programming Model: Orleans (Contd)17FieldValueNameJohn DoeEmailjohn.doe@hotmail.comAddress123 Main St., Anywhere UR 01234ProductsGrain ID1Grain ID2Checkout



Grain (actor)Customer GrainMessagesStateMethodsMessage Queue1/23/12Cellular Networks and Mobile Computing (COMS 6998-8)17mCloud Building BlocksBasic services: platform services and application services



View more >