Clone-Cloud. Motivation With the increasing use of mobile devices, mobile applications with richer functionalities are becoming ubiquitous But mobile.

Slides:



Advertisements
Similar presentations
Remus: High Availability via Asynchronous Virtual Machine Replication
Advertisements

Chapter 5: Tree Constructions
Performance Testing - Kanwalpreet Singh.
Mobile Cloud Computing: A Comparison of Application Models Group #6 Chandra Shekhar Jammi( ) Venkata Sri Krishnakanth Pulla( ) Prashant Tiwari.
A Process Splitting Transformation for Kahn Process Networks Sjoerd Meijer.
Architecture-dependent optimizations Functional units, delay slots and dependency analysis.
LIBRA: Lightweight Data Skew Mitigation in MapReduce
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Software Design Process A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Towards Virtual Routers as a Service 6th GI/ITG KuVS Workshop on “Future Internet” November 22, 2010 Hannover Zdravko Bozakov.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
1 “White box” or “glass box” tests “White Box” (or “Glass Box”) Tests.
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
An Energy Consumption Framework for Distributed Java-Based Systems Chiyoung Seo Software Architecture Research Group University of Southern California.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Online Data Gathering for Maximizing Network Lifetime in Sensor Networks IEEE transactions on Mobile Computing Weifa Liang, YuZhen Liu.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Mobile Ambients Luca Cardelli Digital Equipment Corporation, Systems Research Center Andrew D. Gordon University of Cambridge, Computer Laboratory Presented.
On Exploiting Dynamic Execution Patterns for Workload Offloading in Mobile Cloud Applications Wei Gao, Yong Li, and Haoyang Lu The University of Tennessee,
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
ThinkAir: Dynamic Resource Allocation and Parallel Execution in Cloud for Mobile Code Offloading Sokol Kosta, Pan Hui Deutsche Telekom Labs, Berlin, Germany.
Software Design Processes and Management
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
Computation Offloading
Performance Evaluation of Hybrid MPI/OpenMP Implementation of a Lattice Boltzmann Application on Multicore Systems Department of Computer Science and Engineering,
Interpreting the data: Parallel analysis with Sawzall LIN Wenbin 25 Mar 2014.
P ARALLEL P ROCESSING I NSTITUTE · F UDAN U NIVERSITY 1.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Unit - 1 Basic Computer Architecture P. Sugin Benzigar.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Improving Network I/O Virtualization for Cloud Computing.
Repeaters and Hubs Repeaters: simplest type of connectivity devices that regenerate a digital signal Operate in Physical layer Cannot improve or correct.
The Best of Both Worlds with On-Demand Virtualization Thawan Kooburat and Michael M. Swift On-Demand Virtualization allows systems to benefit from virtualization.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
LATA: A Latency and Throughput- Aware Packet Processing System Author: Jilong Kuang and Laxmi Bhuyan Publisher: DAC 2010 Presenter: Chun-Sheng Hsueh Date:
1 Devon M. Simmonds University of North Carolina, Wilmington CSC450 Software Engineering WorkFlow Modeling with Activity Diagrams.
Computing Simulation in Orders Based Transparent Parallelizing Pavlenko Vitaliy Danilovich, Odessa National Polytechnic University Burdeinyi Viktor Viktorovych,
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Autumn 2006CSE P548 - Dataflow Machines1 Von Neumann Execution Model Fetch: send PC to memory transfer instruction from memory to CPU increment PC Decode.
Requirements Analysis Review Modeling Team Matt Weyant 26 Oct 1999.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Dynamic Mobile Cloud Computing: Ad Hoc and Opportunistic Job Sharing.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Network Layer COMPUTER NETWORKS Networking Standards (Network LAYER)
Computer System Structures
Marilyn Wolf1 With contributions from:
Instructor Materials Chapter 7: Network Evolution
Control Flow Testing Handouts
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 4 Control Flow Testing
Walter Binder Giovanna Di Marzo Serugendo Jarle Hulaas
Outline of the Chapter Basic Idea Outline of Control Flow Testing
Cloud Computing By P.Mahesh
CSCI1600: Embedded and Real Time Software
“White box” or “glass box” tests
An Introduction to Software Architecture
CSCI1600: Embedded and Real Time Software
Presentation transcript:

Clone-Cloud

Motivation With the increasing use of mobile devices, mobile applications with richer functionalities are becoming ubiquitous But mobile devices are limited by their resources for computing and power consumption Cloud – the place for abundant resources Clouds provide opportunity to do huge computations quickly and accurately So why not use cloud for mobile computations??

CloneCloud CloneCloud envisions at an architecture that uses cloud to do computations that consume resources badly on mobiles. It uses the “connectivity” abilities of the mobile devices as a substitute for computational abilities. It believes in the intuition that “as long as execution on the cloud is significantly faster than execution on the mobile device, paying the cost for sending the relevant data and code from the device to the cloud and back may be worth it.” It aims at finding the right spots in an application automatically where the execution can be partitioned and migrated to the cloud.

CloneCloud This model is primarily applicable to application layer VMs (virtual machines) since the instruction sets in it are bytecodes and hence provide hardware and OS independence It exhibits opportunistic but conservative consistency The partitioning component for finding migration points uses – static analysis to find the constraints and the dynamic profiling for building the cost model for execution and migration It finally uses an optimizer that uses the above constraints and cost models to derive the partitions

Partitioning The partitioning mechanism yields the partitions in the application that are optimal at execution time and energy consumption It is run multiple time under different conditions and objective functions – stores all partitions in a database At run time, the execution picks a partition among these and modifies the executable before invocation It has three components – static analyzer, dynamic profiler and optimization solver

Partitioning Fig 5: Partitioning Analysis Framework

Static Analyzer The static analyzer identifies the legal partitions of the application executable according to a set of constraints Migration is restricted to the method entry and exit points Two more restrictions for simplicity – Migration is allowed only at the boundaries of application methods but not core system library methods – Migration is allowed at the VM-layer method boundaries but not native method boundaries Example…

Static Analyzer - example Fig 6: Flow Diagram in a Static Analyzer

Static Analyzer - constraints Three properties of any legal partition – Methods that access specific features of a machine must be pinned to the machine [V M ] Static analysis marks the declaration of such methods with a special annotation M Done once for each platform, not repeated for each application – Methods that share native state must be collocated at the same machine [V Natc ] When an image processing class has initialize, detect and fetchresult methods that access native state, they need to be collocated – Prevent nested migration Static analysis of the control flow graph to identify the set of methods called directly by a method (DC) and transitively (TC)

Dynamic Profiler Profiler collects data that will be used to construct the cost model Currently using randomly chosen set of inputs – Future work is to explore symbolic-execution-based techniques since randomly chosen inputs may not explore all execution paths Each execution is run once on mobile device and once on the clone in the cloud Profiler outputs set of executions S and a “profile tree”, for both mobile device and the clone Example…

Dynamic Profiler- example Fig 7: Example of Dynamic Profiler

Profile tree One node for each method invocation Every non-leaf node also has a leaf child called its residual node Residual node holds residual cost which represents the cost of running the body of code excluding the costs of the methods called by it Each edge is annotated with the state size at the time of invocation of the child node, plus the state size at the end of that invocation – Amount of data that the migrator needs to capture and transmit in both directions if the edge were to be a migration point Computation cost Cc(i, l); l=0 on mobile device and filled from T, l=1 on the clone and filled from T’ Migration cost Cs(i); sum of a suspend/resume cost and the transfer cost

Dynamic Profiler For energy consumption model, we do the energy measurements with off-board equipment. CPU activity (processing/idle), display state (on/off), and network state (transmitting or receiving/idle), and translate them to a power value using func P Cc(i, 0)= P(CPUOn, ScrOn, NetIdle)* T[i] Cc(i,1)= P(CPUIdle, ScrOn, NetIdle) Cs(i) = * P(CPUOn, ScrOn, NetOn)

Optimization Solver It aims at picking up application methods to migrate to the clone from the mobile device, so as to minimize the expected cost of the partitioned application. Decision variable R(m) m= method in the application. R(m)=1 -> partitioner places a migration point at the entry point of the method. But not all partitioning choices for R(.) are legal

Optimization problem Using the decision variables R(.), the auxiliary decision variables L(.), the method sets V M and V NatC for all classes C defined during static analysis, and the relations I, DC and TC

Cost of a partition

Distributed Execution Two unique features of CloneCloud Thread granularity migration: migration operates at the granularity of a thread Native-Everywhere: enables migrated threads to use native non-virtualized hardware(GPUs, Cryptographic accelerators etc.)

Migration Overview

Suspend and capture Thread migrator suspends migrant thread Captures its state, passes it to node manager Node manager transfers the capture to clone

Resume and Merge Clone's thread migrator captures and packages the thread state Node manager transfers the capture back to the mobile device Migrator in the original process is given the capture for resumption

Evaluation

Conclusion A design that achieves basic augmented execution of mobile applications on the cloud Prototype delivers up to 20x speed up and 20x energy reduction Programmer involvement is not required Opens up a path for a rich research agenda in hybrid mobile-cloud systems