COMET: Code Offload by Migrating Execution - OSDI'12 Summary

Slide Note
Embed
Share

The research paper discusses COMET, a system for transparently offloading computation from mobile devices to network resources to improve performance. It outlines the goals of COMET, its design, and evaluation, focusing on distributed shared memory and bridging computation disparity through offloading. The paper also covers related work, the Java memory model, and how offloading can enhance mobile computation speed while requiring minimal programmer effort.


Uploaded on Sep 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University of Michigan, AT&T Labs - Research Mark Gordon 1

  2. Overview Introduction Distributed Shared Memory COMET Design Evaluation Summary Mark Gordon 2

  3. What is offloading? Mobile devices Have limited resources Are well connected Can we bring network resources to mobile? Can a system transparently make this available? Mark Gordon 3

  4. Related Work MAUI and CloneCloud Utilize server resources Computation, energy, memory, disk 'Capture and migrate' method level offloading Areas for improvement Thread and synchronization support Offload part of methods Mark Gordon 4

  5. COMET's Goals 1. Improve mobile computation speed 2. Require no programmer effort 3. Generalize well with existing applications 4. Resist network failures Mark Gordon 5

  6. Overview Introduction Distributed Shared Memory COMET Design Evaluation Summary Mark Gordon 6

  7. 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 Mark Gordon 7

  8. DSM (continued) Conventional DSM (Munin) X=555 X=? X=555 X=123 X=555 X=? X=123 X=123 Waited an RTT for a write Read could take RTT also Mark Gordon 8

  9. 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 Mark Gordon 9

  10. 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 Mark Gordon 10

  11. Overview Introduction Distributed Shared Memory COMET Design Evaluation Summary Mark Gordon 11

  12. VM-synchronization Used to establish 'happens-before' relation Directed operation between pusher and puller Synchronizes Bytecode sources Java thread stacks Java heap Mark Gordon 12

  13. Bytecode Update (Step 1 of 3) Operation begins by sending any new code I have xyz.dex cached Send xyz.dex I loaded file xyz.dex [xyz.dex] Pusher Mark Gordon 13 Puller

  14. Stack Update (Step 2 of 3) Next we send over thread stacks nom 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 Mark Gordon 14 Puller

  15. 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 [obj:2].y = 1 [obj:4].z = [obj:3] ... Pusher Mark Gordon 15 Puller

  16. Lock ownership Annotate with lock ownership flag Establish 'happens-before' with VM-sync Mark Gordon 16

  17. Thread Migration Thread migration trivial Push VM-sync Transfer lock ownership Pusher Mark Gordon 17 Puller

  18. 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 Mark Gordon 18

  19. Failure Recovery VM-synchronization is recovery safe Always leave enough information on client If server is lost resume threads running locally! A few caveats (native methods) Mark Gordon 19

  20. Tau-Scheduler = 2 * VM-synchronization time Mark Gordon 20

  21. 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); Mark Gordon 21

  22. Overview Introduction Distributed Shared Memory COMET Design Evaluation Summary Mark Gordon 22

  23. Evaluation Setup Samsung Captivate (1 GHz Hummingbird) 2 x 3.16GHz quad core Xeon X5460 cores Mark Gordon 23

  24. 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 500+X speed-up w/ multi-threaded factoring Mark Gordon 24

  25. Rhino Java JavaScript Interpreter Ran with SunSpider JavaScript benchmark Mark Gordon 25

  26. Overview Introduction Distributed Shared Memory COMET Design Evaluation Summary Mark Gordon 26

  27. Summary Offloading+DSM=COMET Improve computation speed No programmer effort Generalize well Resist network failures Mark Gordon 27

  28. Contributions Design/Impl. with four simultaneous goals Fine granularity offloading Mutli-threading support Field based DSM coherency Mark Gordon 28

  29. Questions? Mark Gordon 29

  30. Macrobenchmarks Mark Gordon 30

  31. Macrobenchmarks (continued) Mark Gordon 31

Related


More Related Content