tessellation
play

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,


  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

  2. Problem 04/04/16 Tessellation OS 2

  3. Idea 07/015/14 Tessellation OS 3

  4. Tessellation Architecture 04/04/16 Tessellation OS 4

  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 04/04/16 Tessellation OS 5

  6. Cell Types Cell Type Description Gang-Scheduling Algorithm Non-Multiplexed The cell is given dedicated access to the Permanent activation hardware threads and the other managed resources. Time-Triggered The cell is active for some time during Earliest Deadline (TT) periodic time intervals. First (EDF) Event-Triggered The cell is activated upon the arrival of an Constant Bandwidth (ET) event. Once activated, the cell remains Server (CBS) “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. Best-Effort (BE) These cells have no strong guarantees, but CBS with cells the kernel ensures that they have the chance always available for to be activated (i.e., make progress) and are activation and small multiplexed in a fair manner among reservations. themselves. 04/04/16 Tessellation OS 6

  7. Resource Redistribution ● Gang-scheduling → – active and inactive schedulers – mux layer establishes global timebase – muxers synchornously exchange schedulers 04/04/16 Tessellation OS 7

  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 04/04/16 Tessellation OS 8

  9. Benchmarks (NPB EP) 04/04/16 Tessellation OS 9

  10. Service Guarantees 04/04/16 Tessellation OS 10

  11. Service Guarantees 04/04/16 Tessellation OS 11

  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) 04/04/16 Tessellation OS 12

  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? 04/04/16 Tessellation OS 13

Recommend


More recommend