![Page 1: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/1.jpg)
Mark Gordon 1
COMET: Code Offload byMigrating Execution Transparently
OSDI'12
Mark Gordon, Anoushe Jamshidi,Scott Mahlke, Z. Morley Mao, and Xu Chen
University of Michigan, AT&T Labs - Research
![Page 2: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/2.jpg)
Mark Gordon 2
Overview
● Introduction● Distributed Shared Memory● COMET Design● Evaluation● Summary
![Page 3: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/3.jpg)
Mark Gordon 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?
![Page 4: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/4.jpg)
Mark Gordon 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
![Page 5: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/5.jpg)
Mark Gordon 5
COMET's Goals
1. Improve mobile computation speed
2. Require no programmer effort
3. Generalize well with existing applications
4. Resist network failures
![Page 6: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/6.jpg)
Mark Gordon 6
Overview
● Introduction● Distributed Shared Memory● COMET Design● Evaluation● Summary
![Page 7: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/7.jpg)
Mark Gordon 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
![Page 8: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/8.jpg)
Mark Gordon 8
X=123
X=555
X=555
X=555
X=?
X=?
X=123
DSM (continued)
● Conventional DSM (Munin)
X=123●Waited an RTT for a write●Read could take RTT also
![Page 9: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/9.jpg)
Mark Gordon 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
![Page 10: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/10.jpg)
Mark Gordon 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
![Page 11: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/11.jpg)
Mark Gordon 11
Overview
● Introduction● Distributed Shared Memory● COMET Design● Evaluation● Summary
![Page 12: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/12.jpg)
Mark Gordon 12
VM-synchronization
● Used to establish 'happens-before' relation● Directed operation between pusher and puller● Synchronizes
– Bytecode sources– Java thread stacks– Java heap
![Page 13: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/13.jpg)
Mark Gordon 13
Bytecode Update (Step 1 of 3)
● Operation begins by sending any new code
I loaded file xyz.dex I have xyz.dex cachedSend xyz.dex[xyz.dex]
Pusher
Puller
![Page 14: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/14.jpg)
Mark Gordon 14
Stack Update (Step 2 of 3)
● Next we send over thread stacks
Thread id: 2job2::run pc:5 registers[42, 555, 0]workLoop pc:6 registers[0, [obj:9]]start pc:3 Registers[101, [obj:9]]
PusherPuller
![Page 15: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/15.jpg)
Mark Gordon 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
PusherPuller
[obj:2].y = 1[obj:4].z = [obj:3]...
![Page 16: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/16.jpg)
Mark Gordon 16
Lock ownership
● Annotate with lock ownership flag● Establish 'happens-before' with VM-sync
![Page 17: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/17.jpg)
Mark Gordon 17
Thread Migration
● Thread migration trivial– Push VM-sync– Transfer lock ownership
PusherPuller
![Page 18: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/18.jpg)
Mark Gordon 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
![Page 19: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/19.jpg)
Mark Gordon 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)
![Page 20: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/20.jpg)
Mark Gordon 20
Tau-Scheduler
Τ = 2 * VM-synchronization time
![Page 21: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/21.jpg)
Mark Gordon 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);
![Page 22: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/22.jpg)
Mark Gordon 22
Overview
● Introduction● Distributed Shared Memory● COMET Design● Evaluation● Summary
![Page 23: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/23.jpg)
Mark Gordon 23
Evaluation Setup
● Samsung Captivate (1 GHz Hummingbird)
● 2 x 3.16GHz quad core Xeon X5460 cores
![Page 24: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/24.jpg)
Mark Gordon 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
![Page 25: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/25.jpg)
Mark Gordon 25
Rhino
● Java JavaScript Interpreter– Ran with SunSpider JavaScript benchmark
![Page 26: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/26.jpg)
Mark Gordon 26
Overview
● Introduction● Distributed Shared Memory● COMET Design● Evaluation● Summary
![Page 27: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/27.jpg)
Mark Gordon 27
Summary
● Offloading+DSM=COMET– Improve computation speed– No programmer effort– Generalize well– Resist network failures
![Page 28: Mark Gordon1 COMET: Code Offload by Migrating Execution Transparently OSDI'12 Mark Gordon, Anoushe Jamshidi, Scott Mahlke, Z. Morley Mao, and Xu Chen University](https://reader036.vdocuments.us/reader036/viewer/2022062313/56649f455503460f94c67245/html5/thumbnails/28.jpg)
Mark Gordon 28
Contributions
● Design/Impl. with four simultaneous goals– Fine granularity offloading– Mutli-threading support
● Field based DSM coherency