Code Offloading

download Code Offloading

of 16

Transcript of Code Offloading

  • 8/13/2019 Code Offloading

    1/16

    Intelligent Offloading

    Strategies for COMET

    Ajit Aluri

    Silky AroraSupriya Rao

  • 8/13/2019 Code Offloading

    2/16

    Contents

    Introduction to COMET

    Scheduling in COMET

    Our Approach

    Intelligent Code Offload Infrastructure and Results

    Conclusions and Future Work

  • 8/13/2019 Code Offloading

    3/16

    Introduction to COMET

    Extends DalvikVM to freely migrate threads between end

    points using distributed shared memory (DSM) at the

    granularity of fields.

    Uses VM synchronization primitives to maintain a consistent

    state between the end points

    Supports multiple threads by using lazy release consistency.

    Prior work: CloneCloud, JMM, Jessica

    DSMDSM

  • 8/13/2019 Code Offloading

    4/16

    END POINT 1 END POINT 2

    Bar()

    Foo()

    Foo()

  • 8/13/2019 Code Offloading

    5/16

    Scheduling in COMET

    =syncCount lastSyncTime + 1 syncCount RTT

    10

    okTime = currTime lastUnsafePoint

    Offload when okTime >

    okTime represents the time since the last native method

    execution

  • 8/13/2019 Code Offloading

    6/16

    Our Approach

    COMET currently focuses on howto offload as compared to

    whento offload

    Our Goal - Improve the offloading decision engine of COMET

    using the following

    Incorporating bandwidth in the scheduling decision

    Static Analysis of applications

    Dynamic profiling to get method execution times

  • 8/13/2019 Code Offloading

    7/16

  • 8/13/2019 Code Offloading

    8/16

    Static Analysis

    WALA profiler for generating call graphs for an application

    Helps in identification of native methods and their parents

    0

    2

    4

    6

    8

    10

    12

    ProportionofNativeMethods(%) % of Native Methods

  • 8/13/2019 Code Offloading

    9/16

    Dalvik Debug Monitor Server (DDMS) for dynamic profiling

    Helps in identifying methods that run a significant amount of

    time before calling a native method

    0

    100

    200

    300

    400

    500

    600

    700

    800

    900

    1000

    0 10 20 30 40 50 60

    ExecutionTimet

    oNativeMethod(uS)

    Parent Methods

    com.adobe.psmobile

    com.wimolife.fractal

    com.magmamobile.game.checkers

    Dynamic Analysis

  • 8/13/2019 Code Offloading

    10/16

    Native-to-NextNative

    Execution time Heuristic

    Parent-to-NativeExecution

    time Heuristic

    Intelligent Code Offload

    Parent Pa

    Native Na

    t1

    Parent Pa

    Native Na

    Native Nb

    t2

    t3

  • 8/13/2019 Code Offloading

    11/16

    Infrastructure

    Server cairo.eecs.umich.edu

    o 8 core Intel i7 with 3.40 Ghz processor and 32 GB RAM

    Client - Samsung Galaxy Nexuso Cyanogenmod 10.0 tc enabled kernel

  • 8/13/2019 Code Offloading

    12/16

    Results

    0

    5

    10

    15

    20

    25

    30

    35

    40

    0.51 0.91 2 5 7 9

    Executiontimeinsec

    Bandwidth in Mbits/sec

    Intelligent Offload

    Baseline COMET

  • 8/13/2019 Code Offloading

    13/16

    Results

    100

    105

    110

    115

    120

    125

    130

    0.51 0.91 2 5 7 9

    ExecutionTimeinsec

    Bandwidth in Mbits/sec

    Intelligent Offload

    Baseline COMET

  • 8/13/2019 Code Offloading

    14/16

    Results

    Iterations BaselineCOMET IntelligentOffload % Improvement

    5 36.6 33 10%

    10 45.67 41.33 9.5%

    15 60 48 20%25 71.6 51 28.7%

    50 112.67 102 9.5%

    100 188 179 4.8%

    Performance improvement of 4.5% for com.adobe.psmobile applicationusing Heuristic 1 (Parent-to-Native)

    Results for further experiments on synthetic application at 900Kbps forHeuristic 2 (Native-to-NextNative):

  • 8/13/2019 Code Offloading

    15/16

    Future Work

    Include the methods of interest inside the applications

    executable

    Compute last execution time of methods of interest without

    relying on DDMS

    Cleaner way to recover from aborting the sync based on

    bandwidth measurements

    Improve the calculation of last sync time

  • 8/13/2019 Code Offloading

    16/16

    Thank You!