operating system support for application-specific speculation

29
Operating System Support for Application-Specific Speculation Benjamin Wester Peter Chen and Jason Flinn University of Michigan

Upload: kaiser

Post on 24-Feb-2016

18 views

Category:

Documents


0 download

DESCRIPTION

Operating System Support for Application-Specific Speculation. Benjamin Wester Peter Chen and Jason Flinn University of Michigan. Speculative Execution. Sequential dependent tasks Predict results of Task A to break dependence Execute Task B in parallel Isolate all effects - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Operating System Support for Application-Specific Speculation

Operating System Support for Application-Specific Speculation

Benjamin WesterPeter Chen and Jason Flinn

University of Michigan

Page 2: Operating System Support for Application-Specific Speculation

EuroSys 2011 2

Speculative Execution Sequential dependent tasks Predict results of Task A

to break dependence Execute Task B in parallel

Isolate all effects Correct prediction: commit Wrong prediction: abort

A

BB

TIM

E

Predict A

Page 3: Operating System Support for Application-Specific Speculation

EuroSys 2011 3

Speculation Everywhere!

Discrete event simulation I/O prefetching Distributed shared memory Distributed file systems Deadlock detection Remote displays Web page pre-rendering

Page 4: Operating System Support for Application-Specific Speculation

EuroSys 2011 4

Speculation as a Service to Apps

How is this system designed?In what ways can it be customized for an app?How can those customizations be specified?

Page 5: Operating System Support for Application-Specific Speculation

EuroSys 2011 5

Outline

Introduction Designing Speculation as a Service Implementation Evaluation Conclusion

Page 6: Operating System Support for Application-Specific Speculation

EuroSys 2011 6

Design 1: In-App Speculation+ Complete semantic info+ Predict arbitrary app

operations+ Safe operations allowed

‒ No reuse: significant development needed

‒ Scope is limited: unsafe operations blockApp 1

Data

App 2

Data

Page 7: Operating System Support for Application-Specific Speculation

EuroSys 2011 7

OS

Design 2: Generic OS Speculation+ Apps need no modifications+ Wide scope: unsafe

operations taint

‒ Lacks semantic understanding of app

‒ Predict system calls only‒ Handle application

conservativelyApp 2

App 1

Page 8: Operating System Support for Application-Specific Speculation

EuroSys 2011 8

Separate Mechanism and Policy

Mechanism implements isolationPolicy describes customizationsBest of both extremes Mechanism built in OS

o Common implementationo Wide scope

Policy specified in Applicationso Expose semantic information

Page 9: Operating System Support for Application-Specific Speculation

EuroSys 2011 9

OS

Design 3: Expose Predictions+ Predict arbitrary app

operations+ Reuse OS mechanism

(with app assistance)+ Wide scope for taint

propagation

‒ Limited semantic info‒ Speculative external output

never allowed‒ Commit on identical results

App 2 App 1

Page 10: Operating System Support for Application-Specific Speculation

EuroSys 2011 10

OS

Design 4: Expose Safety+ Predict arbitrary app

operations+ Reuse OS mechanism

(with app assistance)+ Wide scope for taint

propagation

+ More semantic info+ Allow safe output+ Commit on equivalent results

App 2 App 1

Page 11: Operating System Support for Application-Specific Speculation

EuroSys 2011 11

Customizable Policy

CreationoWhat tasks are predictableo How to predict them

OutputoWhat output is safe to allow

CommitoWhich results are acceptable to commit

Page 12: Operating System Support for Application-Specific Speculation

EuroSys 2011 12

Outline

Introduction Designing Speculation as an OS Service Implementation Evaluation Conclusion

Page 13: Operating System Support for Application-Specific Speculation

EuroSys 2011 13

Implementation

Mechanism built in OSo Based on Speculator kernelo Checkpoints & logs processes, files, IPC, etc.

Policies expressed using system call API

Page 14: Operating System Support for Application-Specific Speculation

EuroSys 2011 14

SpeculativeProcess

ControlProcess

spec_fork()TI

ME

spec_fork

predict A

B

commit

A

abort

BC

Page 15: Operating System Support for Application-Specific Speculation

EuroSys 2011 15

API Exampleint main() {

int x;int prediction = get_prediction();if (spec_fork() == SPECULATIVE) {

x = prediction;} else {

x = slow_function();if (equiv(x, prediction))

commit();else

abort();}set_output_policy(stdout, ALLOW);printf(“%d”, x);

}

Output Policy

Creation Policy

Commit Policy

Page 16: Operating System Support for Application-Specific Speculation

EuroSys 2011 16

Outline

Introduction Designing Speculation as an OS Service Implementation Evaluation Conclusion

Page 17: Operating System Support for Application-Specific Speculation

EuroSys 2011 17

Evaluation

Can apps effectively use APIto increase parallelism?

Case studies1. Predictive application launching in Bash2. SSL certificate checks in Firefox3. Replicated service in PBFT-CS

Page 18: Operating System Support for Application-Specific Speculation

EuroSys 2011 18

Check command

App 1: Predictive Launching in BashTI

ME Run program …finished

bwester $ ▌

…finishedbwester $ grep foo –r .▌

grep foo –r .

Creation Policy:Use machine learningto predict user input

Commit Policy:Normalize user input before comparisonOutput Policy:

Safe X11 Messages: Allow

Page 19: Operating System Support for Application-Specific Speculation

EuroSys 2011 19

How Much Work Can Be Hidden?

LaTeX build

Bash m

ake

GIMP Lo

ad

OpenOffice Lo

ad0

1

2

3

4

5

6

Run

Tim

e (s

econ

ds)

TIM

E

Non-Speculative45

Speculative

Prompt

Get cmd

Spec.Execute

cmd

Execute

Prompt

Executecmd

Get cmd

Page 20: Operating System Support for Application-Specific Speculation

EuroSys 2011 20

How Much Work Can Be Hidden?

LaTeX build

Bash m

ake

GIMP Lo

ad

OpenOffice Lo

ad0

1

2

3

4

5

6

Run

Tim

e (s

econ

ds)

TIM

E

SpeculativeNon-Speculative45Up to 86% hidden

Prompt

Get cmd

Spec.Execute

cmd

Execute

Prompt

Executecmd

Get cmd

Page 21: Operating System Support for Application-Specific Speculation

EuroSys 2011 21

Done

Request page

App 2: Firefox SSL ConnectionsTI

ME

Web Server

Validation Server

Open https://

Check cert.

ValidateGet session key

GET /index.html?id=0123

Creation Policy:Predict certificate is valid

Output Policy:Alow SSL connection

Output Policy:Block private data

Page 22: Operating System Support for Application-Specific Speculation

EuroSys 2011 22

Connection Latency Hidden?TI

ME

Non-Speculative Speculative

Google Acco

unts

Windows Live

ID

Chase.co

m0

100

200

300

400

500

600

Conn

ect T

ime

(mill

isec

onds

)

https://

Check cert.

Session key

Done

Request

https://

Check cert.

Session key

Done

RequestValidate

Page 23: Operating System Support for Application-Specific Speculation

EuroSys 2011 23

Connection Latency Hidden?TI

ME

Non-Speculative Speculative

Google Acco

unts

Windows Live

ID

Chase.co

m0

100

200

300

400

500

600

Conn

ect T

ime

(mill

isec

onds

)

Avg 60ms hiddenhttps://

Check cert.

Session key

Done

Request

https://

Check cert.

Session key

Done

RequestValidate

Page 24: Operating System Support for Application-Specific Speculation

EuroSys 2011 24

App 3: PBFT-CS ProtocolTI

ME

Send Request Distributed Replicated

Service(Reply, sig1)

Check reply

Check reply

Request

(Reply, sig2)

Work…

Creation Policy:Agree on 1st reply

Output Policy:PBFT-CS Messages: Allow

Page 25: Operating System Support for Application-Specific Speculation

EuroSys 2011 25

Improved Client Throughput?TI

ME

Non-Speculative

0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

100200300400500600700800900

Latency between replicas (mil-liseconds)

Clie

nt O

ps p

er S

econ

d

Speculative

Request1

1st Reply

VerifyRequest2

1st Reply

Request1

1st Reply

Verify

Request2

1st Reply

Null requests

Page 26: Operating System Support for Application-Specific Speculation

EuroSys 2011 26

Improved Client Throughput?TI

ME

Non-Speculative Speculative

0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

100200300400500600700800900

Latency between replicas (mil-liseconds)

Clie

nt O

ps p

er S

econ

d

1.9x Throughput

Request1

1st Reply

VerifyRequest2

1st Reply

Request1

1st Reply

Verify

Request2

1st Reply

Null requests

Page 27: Operating System Support for Application-Specific Speculation

EuroSys 2011 27

Cost of Generic Mechanism

0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

100200300400500600700800900

Latency between replicas (mil-liseconds)

Clie

nt O

ps p

er S

econ

d

App-specific MechShared OS MechNon-speculative

Null requests

Page 28: Operating System Support for Application-Specific Speculation

EuroSys 2011 28

Cost of Generic Mechanism

0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

100200300400500600700800900

Latency between replicas (mil-liseconds)

Clie

nt O

ps p

er S

econ

d

App-specific:8% faster

App-specific MechShared OS MechNon-speculative

Null requests

Page 29: Operating System Support for Application-Specific Speculation

EuroSys 2011 29

Conclusion Mechanism

o Common: checkpoints, output buffering, taint propagationo Implemented in OS

Policyo App-specific: Controls creation, output, and commito Implemented in applications

Demonstrated with 3 case studieso Improved parallelismo Small overhead relative to app-specific mechanism

Questions?