mobile app acceleration via fine-grain offloading to the...

30
Mobile App Acceleration via Fine-Grain Offloading to the Cloud Chit-Kwan Lin H. T. Kung 1 Copyright © 2014 UpShift Labs, Inc. USENIX HotCloud 2014

Upload: others

Post on 17-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Mobile App Acceleration via Fine-Grain Offloading to the

Cloud

Chit-Kwan Lin H. T. Kung

1Copyright © 2014 UpShift Labs, Inc.USENIX HotCloud 2014

Page 2: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Confluence of Forces Points to Offloading to the Cloud

Copyright © 2014 UpShift Labs, Inc. 2

Compute Offloading

Devices• Proliferation of

smartphones & tablets

• Complex tasks (e.g., imaging, learning, recognition)

• Emphasis on battery efficiency

Network

• Internet infrastructure

• Wireless infrastructure (Wi-Fi & cellular)

• High bandwidths & low latencies

Cloud

• Cloud computing infrastructures

• Economies of scale

• On-demand provisioning

Page 3: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

*

Cloud Daemon

A Simple DSM Supports Offloading

Copyright © 2014 UpShift Labs, Inc. 3

Mobile App

Distributed Shared MemoryMemory Memory (replica)

ContinuousReplication

* See last slide for image source references

Object

variable_X

method_Y()

Object

variable_X

method_Y()Dynamic + Fine-grain Offloading

Page 4: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Advantages of Dynamic + Fine-Grain

• Dynamic– Can offload arbitrary work at runtime– Can optimize resource utilization (e.g., battery) at

runtime

• Fine-grain– At the level of a method invocation– Feels more responsive when failure requires local

restart to fix– New class of small workloads for cloud providers

• Useful for leveling out utilization while providing low-latency services for end-users

Copyright © 2014 UpShift Labs, Inc. 4

Page 5: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Challenges• Latency

– Dictates granularity: if update takes 5s, then workloads that run <5s don’t benefit from offloading

• Bandwidth – We should only send deltas, but determining delta encoding has non-

trivial costs • e.g., rsync can take 3 round trips to generate a delta encoding, on top of time

to calculate hashes

• Compute– We should compress to save bandwidth, but compression can be

computationally expensive

• Battery– Shouldn’t end up consuming more battery budget

Copyright © 2014 UpShift Labs, Inc. 5

Page 6: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Compressive Sensing

• Randomly mix signal elements by random projection onto lower-dimensional space

• Random Φ preserves Euclidean length/distance of sparse vectors with high probability when M ≥ O(K log N/K)

• Decode x from y by solving y = Φx via optimization (linear programming)

=×Φ yx

M × N M × 1

N × 1

Random samplingmatrix (M < N)

K-sparse signal

Compressive samples

6

Page 7: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Key Insight

Writes (deltas) to memory typically constitute a sparse signal that can

be compressively sampled

Copyright © 2014 UpShift Labs, Inc. 7

Page 8: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Compressive Replication (1)

Copyright © 2014 UpShift Labs, Inc. 8

Device Server

x0

Time t0

Memory starts out synchronized, with byte values x0

Both device and server know Φ

Server calculates y0 = Φx0y0 = Φx0

x0

Page 9: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Compressive Replication (2)

Copyright © 2014 UpShift Labs, Inc. 9

Device Server

x1

Time t1

x0

Some values in memory change, resulting in x1

Device calculates

Device transmits y1 = Φx1 to server

y0 = Φx0

y1 = Φx1y1 = Φx1

y1 = Φx1

Page 10: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

y’ = y0 – y1y' = Φx0 – Φx1y' = Φ(x0 – x1)y' = Φx’

Compressive Replication (3)

Copyright © 2014 UpShift Labs, Inc. 10

Device Server

x1

Time t1

x0

y0 = Φx0

y1 = Φx1

Server calculates

y’ = Φx’ has same form as compressive sensing decoding problem, so server solves for x’

y’ = y0 – y1y’ = y0 – y1

x’ = x0 – x1 is the delta encoding!

Page 11: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Compressive Replication (4)

Copyright © 2014 UpShift Labs, Inc. 11

Device Server

x1

Time t1

x0

x0 – x’ = x0 – (x0 – x1) = x1

x1

Server calculates x0 – x’ = x1, which is the new memory state

Server is now updated

Page 12: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Novel Characteristics• All-in-one

– Delta encoding + compression

• Delta encoding figured out by server, not device– Automatically recovered during decoding– Just send compressive samples; no add’l network

costs

• Codec is resource-commensurate– Device: low-complexity encoder – Server: higher-complexity decoder – Unlike traditional compressors

Copyright © 2014 UpShift Labs, Inc. 12

Page 13: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

What do we compare against?• No similar replication methods

– Compressive replication gives all-in-one delta encoding + compression– e.g., rsync

• Compression is an add’l step• Needs multiple round-trips to determine delta encoding

• Compressed snapshots probably fairest– No add’l round-trip overheads– Just compress the whole memory page (snapshot)– snappy, zlib

• Metrics– Replicate 64KB memory block– Total Latency = encoding + network + decoding – Compression ratio (bandwidth cost)

Copyright © 2014 UpShift Labs, Inc. 13

Page 14: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Latency/Compression Trade-off

Copyright © 2014 UpShift Labs, Inc. 14

Encoding (ms)

Network (ms)

Decoding (ms)

Total Latency

(ms)

CompressionRatio

UpdateSize (KB)

snappy 4 15 -- 19 3.8 : 1 17.2

zlib 487 13 -- 500 6.0 : 1 10.9

compressive replication 53 12 70 135 7.3 : 1 9.0

Near ~100ms threshold of user-perceptible app delay

Highest compression ratio

Page 15: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Latency/Compression Trade-off

Copyright © 2014 UpShift Labs, Inc. 15

Encoding (ms)

Network (ms)

Decoding (ms)

Total Latency

(ms)

CompressionRatio

UpdateSize (KB)

snappy 4 15 -- 19 3.8 : 1 17.2

zlib 487 13 -- 500 6.0 : 1 10.9

compressive replication 53 12 70 135 7.3 : 1 9.0

Unlike snappy/zlib, comp ratio fixed & b/w cost predictable because y = Φx is independent of input’s Kolmogorov complexity

Remains good w/ high Kolmogorov complexity, which would confound snappy/zlib

Page 16: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Example Handwriting Recognition App

• UpShift platform for compressive offloading of iOS apps

• SVM for Chinese handwriting recognition– Stroke count is measure of task

complexity

• Device: iPad (3rd gen)• Server: Amazon g2.xlarge

– GPU for compressive replication decoding

– CPU for SVM evaluation• Network: 802.11g

– Office setting– 19ms RTT to us-east-1a server

Copyright © 2014 UpShift Labs, Inc. 16

Page 17: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

App Speedup

Copyright © 2014 UpShift Labs, Inc. 17

More complex tasks have greater speedup

On-device execution time scales poorly with task complexity

Offloaded execution time stays short due to low overhead of compressive offloading. Users expect this.

Page 18: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Battery Savings

Copyright © 2014 UpShift Labs, Inc. 18

Offloading allows 60% more work to be done with the same battery budget.

High task complexity (25 strokes), 250 iterations

Page 19: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Summary• Low-latency DSM updates enable fine-grain offloading

• UpShift supports offloading ~100ms workloads, while keeping resource utilization low

• Achieves significant speedups and battery savings

• Key insight: memory writes are a sparse signal that can be compressively sampled

• Implications for future ARM-based DC’s or x86-based devices

Copyright © 2014 UpShift Labs, Inc. 19

Page 20: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Copyright © 2014 UpShift Labs, Inc. 20

[email protected]

Page 21: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Copyright © 2014 UpShift Labs, Inc. 21

Page 22: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Backup Slides

Copyright © 2014 UpShift Labs, Inc. 22

Page 23: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

What about the reverse direction?• Note that the system is asymmetric

– Downlink is typically not as constrained as uplink– Servers can do zlib compression very fast

• So the snapshot method is OK for reverse direction

• Our results are obtained under a unidirectional replication constraint (replicas are read-only). Can we relax this?– If both ends can write to their memories independently, then we

have a data consistency problem– However, latency is low enough that we can probably support

synchronous offloading (i.e., block device until result is returned) – If app is already written under asynchronous model, then no

consistency problem to begin with

Copyright © 2014 UpShift Labs, Inc. 23

Page 24: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

How to trigger an update?

• How do we know when k writes have been made to memory?

• Inject statistics collection into Objective-C setter methods– Can do it at compile-time (preprocessing) or at

run-time (method swizzling)

Copyright © 2014 UpShift Labs, Inc. 24

Page 25: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

What if there are lots of memory writes?

• Examples– Large block initialization (calloc)

• However, large block allocation is OK since most modern memory managers defer allocation until initialization

– Reading large file into memory

• The signal is no longer sparse, so compressive sensing can no longer help

• Fall back to snapshotting– Can probably get away with it since users have some

expectation of delayCopyright © 2014 UpShift Labs, Inc. 25

Page 26: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Cloud Daemon

UpShift Platform Prototype

• Mobile app links against libupshift

• Objects are allocated from privately managed memory heap

• Replication agent manages replication of this memory

• Offloading is done via method swizzling (Objective-C is late binding)

• Offloadable objects are abstracted out into cross-compiled libraries, so server has class definitions

• Address spaces are fully managed by UpShift so we do address translation

Copyright © 2014 UpShift Labs, Inc. 26

Mobile App

libupshift

* See last slide for image source references

method offloading

Memory Replication agent

Offloading agent

Object

variable_X

method_Y()

Replication agent

Offloading agent

Mobile App Sandbox

Memory (replica)

Object

variable_X

method_Y()

compressive replication

Page 27: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Compressive Sensing Decoding

• A linear program solves the L1-norm minimization:

FastIncorrect ✘

L2-norm minimization

IntractableCorrect ✘

L0-norm minimization

TractableCorrect (usually)✔

L1-norm minimization

27

Page 28: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Image Source References• http://www.computerhistory.org/timeline/images/1944_harvard_markI_larg

e.jpg• http://history-computer.com/ModernComputer/Electronic/Images/PDP-

1.jpg• http://oldcomputers.net/pics/Altair_8800.jpg• http://oldcomputers.net/pics/ibm5150.jpg• http://media.t3.com/img/resized/ib/xl_IBM_ThinkPad_greatest_624.jpg• http://www1.pcmag.com/media/images/383992-first-iphone.jpg?thumb=y• http://zapp1.staticworld.net/reviews/graphics/products/uploaded/apple_ipa

d_family_710821_g2.jpg• http://cdn.gottabemobile.com/wp-content/uploads/2014/01/Nest-Cooling-2-

300x300.jpg• http://i.dell.com/das/xa.ashx/global-site-design%20WEB/25b9106d-0ab1-

0508-371f-f79a549236dc/1/OriginalPng?id=Dell/Product_Images/Dell_Enterprise_Products/Enterprise_Systems/PowerEdge/PowerEdge_R310/hero/server-poweredge-r310-left-hero-504x350.psd

Copyright © 2014 UpShift Labs, Inc. 28

Page 29: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

Copyright © 2014 UpShift Labs, Inc. 29

Page 30: Mobile App Acceleration via Fine-Grain Offloading to the Cloudhtk/publication/2014-hotcloud-lin-kung---presentation.pdfCompressive Sensing • Randomly mix signal elements by random

scratch

Copyright © 2014 UpShift Labs, Inc. 30