Tessellation Tessellation: Refactoring the OS around Explicit - - PowerPoint PPT Presentation

tessellation
SMART_READER_LITE
LIVE PREVIEW

Tessellation Tessellation: Refactoring the OS around Explicit - - PowerPoint PPT Presentation

Tessellation Tessellation: Refactoring the OS around Explicit Resource Containers with Continuous Adaptation Juan A. Colmenares, Gage Eads, Steven Hofmeyr, Sarah Bird, Miquel Moret, David Chou, Brian Gluzman, Eric Roman, Davide B. Bartolini,


slide-1
SLIDE 1

Tessellation

Tessellation: Refactoring the OS around Explicit Resource Containers with Continuous Adaptation

Juan A. Colmenares, Gage Eads, Steven Hofmeyr, Sarah Bird, Miquel Moretó, David Chou, Brian Gluzman, Eric Roman, Davide B. Bartolini, Nitesh Mor, Krste Asanovic, John D. Kubiatowicz The Parallel Computing Laboratory, UC Berkeley, Berkeley, CA, USA Lawrence Berkeley National Laboratory, Berkeley, CA, USA Samsung Research America - Silicon Valley, San Jose, CA, USA DAC 2013

slide-2
SLIDE 2

04/04/16 Tessellation OS 2

Problem

slide-3
SLIDE 3

07/015/14 Tessellation OS 3

Idea

slide-4
SLIDE 4

04/04/16 Tessellation OS 4

Tessellation Architecture

slide-5
SLIDE 5

04/04/16 Tessellation OS 5

SoA and Adaptivity

  • Services can also be Resources and need to be managed
  • RAB Service allocates and manages hardware resources
  • Distributes them to cells (reevaluates situation and adjust

to periodically)

  • RAB service gets input from cell on performance goals

(e.g. framerate)

– Evaluation sources: Heartbeats and Performance

Counters

slide-6
SLIDE 6

04/04/16 Tessellation OS 6

Cell Types

Cell Type Description Gang-Scheduling Algorithm Non-Multiplexed The cell is given dedicated access to the hardware threads and the other managed resources. Permanent activation Time-Triggered (TT) The cell is active for some time during periodic time intervals. Earliest Deadline First (EDF) Event-Triggered (ET) The cell is activated upon the arrival of an

  • event. Once activated, the cell remains

“runnable” and is multiplexed with other cells until its user-level runtime requests the cell to yield all the resources via the cell_yield() system call. Once the cell yields it does not become runnable until another event arrives. Constant Bandwidth Server (CBS) Best-Effort (BE) These cells have no strong guarantees, but the kernel ensures that they have the chance to be activated (i.e., make progress) and are multiplexed in a fair manner among themselves. CBS with cells always available for activation and small reservations.

slide-7
SLIDE 7

04/04/16 Tessellation OS 7

Resource Redistribution

  • Gang-scheduling →

– active and inactive schedulers – mux layer establishes global timebase – muxers synchornously exchange schedulers

slide-8
SLIDE 8

04/04/16 Tessellation OS 8

User Level Runtime

  • Schedulers can be implemented using a framework

enter() → Thread start (at the same time on each core)

tick(context) → timer tick, gets interrupted thread ctx

yield() → called when a thread yields

done() → called on thread termination

adapt(prev_num_harts, new_num_harts) → change of

number of hardware threads

slide-9
SLIDE 9

04/04/16 Tessellation OS 9

Benchmarks (NPB EP)

slide-10
SLIDE 10

04/04/16 Tessellation OS 10

Service Guarantees

slide-11
SLIDE 11

04/04/16 Tessellation OS 11

Service Guarantees

slide-12
SLIDE 12

04/04/16 Tessellation OS 12

In A Nutshell

  • A hypervisor-like partition layer to partition hardware

resources

  • A resource manager to control the (dynamic) allocation of

these resources to partitions

  • Schedulers inside them
  • Benchmarks (of a tiny portion of the claimed system)
slide-13
SLIDE 13

04/04/16 Tessellation OS 13

Seriously? – or – Discussion

  • They needed 13 People for >=4 years to write this

Paper/OS?

  • No paging
  • Thats all they benchmark? ~20MB/s on a Gigabit NIC? Only

non-muxed?

  • Do you need a special policy for each resource in the RAB?

Modify the kernel for each new resource / application?

  • How / where do they use performance counters? Partition

placement?