29
MULTIVERSE Automatic Hybridization of Runtime Systems Kyle C. Hale, Conor Hetland, Peter Dinda 1

MULTIVERSEv3vee.org/talks/hpdc16.pdf · 2016. 7. 6. · MULTIVERSE 26 generate a specialized OS kernel (HRT) from a Linux user-space app/runtime system by rebuilding hybridized runtime

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • MULTIVERSEAutomatic Hybridization of Runtime Systems

    Kyle C. Hale, Conor Hetland, Peter Dinda

    1

  • HYBRID PARALLEL RUNTIMESLONG-TERM GOAL:

    let’s reimagine systems S/W stack for parallel runtimes (esp. for high-level parallel languages)

    OS gets in the way: imposed abstractions, hides HW capabilities

    avoid duplicated functionality in the runtime system and OS

    explore new ways of doing things!

    why in the world?

    2

  • A THOUGHT EXPERIMENT

    3

  • 2 ASSUMPTIONS

    1. YOU ARE A HARDCORE OS HACKERexpert parallel programmerelite performance engineer

    you have masochistic tendenciesyou can squash bugs like no one’s business

    4

  • 2 ASSUMPTIONS

    2. YOU HAVE INFINITE TIME ON YOUR HANDS

    5

  • NOW, GO BUILD A PARALLEL RUNTIME SYSTEM

    *on raw hardware

    6

  • HOW DIFFERENT IS YOUR RUNTIME FROM A TYPICAL OS KERNEL?

    7

    [Hale et al., VEE ’16]

    [Hale et al., HPDC ‘15]

  • PROBLEM:you’ve already built a runtime for Linux

    building it from scratch is hard

    8

  • Linux user-space code

    specialized OS kernel

    9

  • OKAY, LESS AMBITIOUS

    10

    I’ll give you a kernel framework

    Now you just have to port, probably add some functionality

  • 11

    instead of starting from scratch, we can port to

    kernel mode:

    DIFFICULT TIME-CONSUMING

    ERROR-PRONE

  • 12

    development cycle:

    ADD FUNCTION

    REBUILD

    BOOT specialized kernel

    do{

    }while(kernelfallsover)

  • 13

    much of the functionality is

    NOT ON THE CRITICAL PATH

    FURTHERMORE

  • Linux user-space code

    specialized OS kernel

    14

  • 15

    MULTIVERSE

  • C/C++ source tree for runtime system

    point Multiverse to runtime’s source tree

    rebuild

    run it (boots as kernel)

    identify hotspots

    bring functionality into your kernel

    16

    Automatic Hybridization

  • WHAT YOU GET

    17

    your runtime system

    Linux Specialized OS environment

    Hardware (Virtual or Physical)

    your runtime system

    leverage general-purpose OS for legacy functionality

    kernel mode

  • MULTIVERSE IMPLEMENTS AUTOMATIC HYBRIDIZATION

    18

    your runtime system

    Linux Specialized OS environment

    Hardware (Virtual or Physical)

    your runtime systemUniverse

    1Universe

    2

  • ON TOP OF VIRTUALIZATION

    19

    your runtime system

    Linux specialized OS

    Hybrid Virtual Machine

    Multiverse runtime layer

    your runtime system

    thread_create()events: page faults, system calls, exceptions

  • FREEBIE: WORKS WITH OUT OF THE BOX PTHREADS APPS

    20

  • FREEBIE: WORKS WITH OUT OF THE BOX PTHREADS APPS

    21

    pthread app

    Linux specialized OS

    Hybrid Virtual Machine

    Multiverse runtime layer pthread applow noise

    environment

  • RACKET

    22

    most widely used Scheme implementation

    runtime system: 800K lines of code

    complex, JIT-based runtime, managed memory, garbage collection, etc.

    complexity makes it good option for testing Multiverse

  • 23

  • 24

  • LOW OVERHEADS

    0

    10

    20

    30

    40

    50

    fannk

    uch-r

    edux

    binary

    -tree-2 fas

    tafas

    ta-3

    nbod

    y

    spec

    tral-n

    orm

    mand

    elbrot

    -2

    Run

    time

    (s)

    NativeVirtual

    Multiverse

    25

  • MULTIVERSE

    26

    generate a specialized OS kernel (HRT) from a Linux user-space app/runtime system by

    rebuilding

    hybridized runtime is bridged with Linux to provide legacy functionality (e.g. system calls)

    very slight overheads (100s of ns) for forwarded events, little effect on performance overall

  • THANKS

    Nautilus Aerokernel Framework: http://nautilus.halek.co

    Prescience Lab: presciencelab.org

    my website: http://halek.co

    27

    Hobbes Project: xstack.sandia.gov/hobbes

    http://nautilus.halek.cohttp://presciencelab.orghttp://halek.cohttp://xstack.sandia.gov/hobbes

  • BACKUPS

    28

  • 29

    v3vee.org v3vee.org/palacios

    nautilus.halek.co