Tessellation: Space-Time Partitioning in a Manycore Client OS Rose - - PowerPoint PPT Presentation

tessellation space time partitioning in a manycore client
SMART_READER_LITE
LIVE PREVIEW

Tessellation: Space-Time Partitioning in a Manycore Client OS Rose - - PowerPoint PPT Presentation

Tessellation: Space-Time Partitioning in a Manycore Client OS Rose Liu 1,2 , Kevin Klues 1 , Sarah Bird 1 , Steven Hofmeyr 3 , Krste Asanovic 1 , John Kubiatowicz 1 1 Parallel Computing Laboratory, UC Berkeley 2 Data Domain 3 Lawrence Berkeley


slide-1
SLIDE 1

Tessellation: Space-Time Partitioning in a Manycore Client OS

Rose Liu1,2, Kevin Klues1, Sarah Bird1, Steven Hofmeyr3, Krste Asanovic1, John Kubiatowicz1

1Parallel Computing Laboratory, UC Berkeley 2Data Domain 3Lawrence Berkeley National Laboratory

slide-2
SLIDE 2

Client Device

 Single-user device  Runs a heterogeneous mix of interactive, real-time and batch

applications simultaneously

 Generally battery constrained

slide-3
SLIDE 3

Why a new Client OS?

 Enter the Manycore world  Must address parallelism

 Current client OSs weren’t designed for parallel

applications

 Existing OSs addressing parallelism targets servers or

HPC contexts, not clients

 Servers – emphasis on throughput vs.  Client – emphasis on user experience/responsiveness  HPC – machine dedicated to one parallel application vs.  Client – runs many heterogeneous parallel applications  Client - Longer battery life

slide-4
SLIDE 4

Outline

 Why a new OS for Manycore Clients?  A Case for Space-time Partitioning

 Define space-time partitioning  Use cases for space-time partitioning

 Implementing Space-Time Partitioning in a Manycore OS  Status

slide-5
SLIDE 5

Spatial Partitions

5

Memory Radio

Isolated unit containing a subset of physical machine resources

slide-6
SLIDE 6

Spatial Partitions

6

Memory Radio

Isolated unit containing a subset of physical machine resources

slide-7
SLIDE 7

Spatial Partitions

7

Memory Radio

Isolated unit containing a subset of physical machine resources

slide-8
SLIDE 8

Spatial Partitions

8

Memory Radio

Isolated unit containing a subset of physical machine resources QoS enforced share of interconnect bandwidth

slide-9
SLIDE 9

Spatial Partitions

9

Memory Radio

Isolated unit containing a subset of physical machine resources Energy or Power Budget

slide-10
SLIDE 10

Machine divided into spatial partitions

10

Wireless radio Memory

slide-11
SLIDE 11

Put applications in spatial partitions

11

Radio Memory Media Player Browser

slide-12
SLIDE 12

Benefits of spatial partitions

12

Radio Memory Media Player Browser

  • Each app can run a custom user-level runtime for best performance
  • Provides apps with resource guarantees for performance predictability
  • Functional & Performance

Isolation

  • Natural unit for fault

containment, energy management

slide-13
SLIDE 13

Put OS Services in spatial partitions

13

Wireless radio Memory Media Player Network Driver Filesystem Browser

slide-14
SLIDE 14

Put sub-components in spatial partitions

14

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI

slide-15
SLIDE 15

Put virtual machines in spatial partitions

15

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

slide-16
SLIDE 16

Partitions need to communicate

16

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM Spatial Communication

  • ccurs without a

context switch

slide-17
SLIDE 17

Communication Challenges

17

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

Communication relaxes the isolation boundaries of partitions and introduces issues like:

  • Security
  • Service-level QoS and/or

resource accounting of requestors within service partitions

slide-18
SLIDE 18

Space-time partitioning virtualizes spatial partitions

18

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

De-scheduled Partitions

  • Partition Context Switch

Cost ~ Process Context Switch Cost

  • Time multiplex at a

coarse granularity to allow for user-level scheduling

slide-19
SLIDE 19

Space-Time Partition Scheduling

Time

Partition resources put in low power state

Descheduled Partitions:

Real-time app is always scheduled Partitions are dynamically resized while running without a reboot or application restart

slide-20
SLIDE 20

Space-Time Partition Scheduling

Time Descheduled Partitions: Challenges:

  • 1. How to determine the right

resource allocation for a partition?

  • 2. What granularity to time

multiplex each partition? Don’t need to use same time quanta for all partitions.

  • 3. We can deschedule partitions

from each type of resource

  • independently. E.g. time

multiplex off cores more frequently than multiplex partition data off caches. How to determine ‘best’ policy?

Partitions are dynamically resized while running without a reboot or application restart

slide-21
SLIDE 21

Communication in space and time

21

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

De-scheduled Partitions

slide-22
SLIDE 22

Outline

 Why a new OS for Manycore Clients?  A Case for Space-time Partitioning  Implementing Space-Time Partitioning in a Manycore OS

(Tessellation)

 Status

slide-23
SLIDE 23

Tessellation OS

23

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

De-scheduled Partitions

Video Driver Virus Checker USB Driver

slide-24
SLIDE 24

Tessellation Kernel

24

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters

Application Or OS Service

Custom Scheduler Library OS Functionality Message Passing

slide-25
SLIDE 25

Tessellation Kernel

25

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters

Application Or OS Service

Custom Scheduler Library OS Functionality Message Passing

Marshalls syscalls into messages for the respective OS Service Partition App-specific scheduler for best parallel performance. (See Lithe talk on user-level scheduling.)

slide-26
SLIDE 26

Tessellation Kernel

26

Tessellation Kernel

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters

Application Or OS Service

Custom Scheduler Library OS Functionality Message Passing

slide-27
SLIDE 27

Tessellation Kernel

27

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Message Passing

slide-28
SLIDE 28

Partition Mechanism Layer

28

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure Partition Resources enforced by HW at runtime Message Passing

slide-29
SLIDE 29

Partition Mechanism Layer

29

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime

slide-30
SLIDE 30

Partition Management Layer

30

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime Partition Allocator

slide-31
SLIDE 31

Partition Management Layer

31

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime Partition Allocator Partition Resizing Callback API

slide-32
SLIDE 32

Partition Management Layer

32

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime Partition Allocator Partition Resizing Callback API Res. Reqs.

slide-33
SLIDE 33

Partition Management Layer

33

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime Partition Allocator Partition Scheduler Comm Reqs Partition Resizing Callback API Res. Reqs.

slide-34
SLIDE 34

Partition Management Layer

34

Tessellation Kernel

Partition Management Layer

Hardware Partitioning Mechanisms

CPUs Physical Memory Interconnect Bandwidth Cache Performance Counters Partition Mechanism Layer (Trusted)

Application Or OS Service

Custom Scheduler Library OS Functionality Configure HW-supported Communication Message Passing Configure Partition Resources enforced by HW at runtime Partition Allocator Partition Scheduler Comm. Reqs Sched Reqs. Partition Resizing Callback API Res. Reqs.

slide-35
SLIDE 35

Outline

 Why a new OS for Manycore Clients?  A Case for Space-time Partitioning

 Define space-time partitioning  Use cases for space-time partitioning

 Implementing Space-Time Partitioning in a Manycore OS  Status

slide-36
SLIDE 36

Implementation status

 Basics of Tessellation kernel and primitive OS service up

and running

 Provides rudimentary partition interface  Boots on standard x86 hardware  No I/O yet – statically linked applications and kernel

TOS OS Services User App 0 User App 1 Manycore HW Tesselation Kernel

slide-37
SLIDE 37

 Build fast cross-core communication mechanisms for

system calls

 Context-switch free system calls  APIC driven message notification with shared memory

 Add support for the 19 newLib system calls in TOS OS

Service partition

TOS OS Services User App 0 User App 1

Next Steps

Syscall Syscall Newlib C Newlib C

slide-38
SLIDE 38

Intermediate Infrastructure

Existing I/O Drivers I/O Server Process

 TOS OS Service doesn’t have all drivers, so run BSD with

existing drivers on one core to service I/O from TOS OS Service

 Tessellation runs on rest of the cores

TOS OS Service User App 0 User App 1 Manycore HW Syscall Syscall BSD Kernel Newlib C Newlib C Pinned Shared Memory Channel

slide-39
SLIDE 39

Acknowledgements

 We would like to thank the entire ParLab OS group and

several people at LBNL for their invaluable contribution to the ideas presented here.

 Research supported by Microsoft Award #024263 and

Intel Award #024894 and by matching funding from U.C. Discovery (Award #DIG07-102270).

 This work has also been in part supported by an NSF

Graduate Research Fellowship.

slide-40
SLIDE 40

Thanks! Questions?

40

Wireless radio Memory Media Player Network Driver Filesystem Browser Video decoder GUI Windows VM

De-scheduled Partitions