The Case for VOS The Vector Operating System Maciej Weksej based - - PowerPoint PPT Presentation

the case for vos
SMART_READER_LITE
LIVE PREVIEW

The Case for VOS The Vector Operating System Maciej Weksej based - - PowerPoint PPT Presentation

Introduction The Vector Operating System Conclusion The Case for VOS The Vector Operating System Maciej Weksej based on paper written by Vasudevan, V. and Andersen, D.G 18th January 2012 Maciej Weksej The Vector Operating System


slide-1
SLIDE 1

Introduction The Vector Operating System Conclusion

The Case for VOS

The Vector Operating System Maciej Weksej

based on paper written by Vasudevan, V. and Andersen, D.G

18th January 2012

Maciej Weksej The Vector Operating System

slide-2
SLIDE 2

Introduction The Vector Operating System Conclusion A little bit of history The Case for VOS

Let’s go back in time!

In the 1950s computers worked only on

  • ne task at a time

In the early 1960s the solid state-transistor was invented and the idea of time-sharing appeared

Maciej Weksej The Vector Operating System

slide-3
SLIDE 3

Introduction The Vector Operating System Conclusion A little bit of history The Case for VOS

Let’s go back in time!

In 1996 Intel designed MMX – SIMD instruction set added to x86 architecture In 1998 AMD designed 3DNow! In 1999 Intel released Streaming SIMD Extensions (SSE) In 2001 SSE was expanded to SSE2, and then subsequently to SSE3 in 2004 and to SSE4 in 2006 In 2008 the Advanced Vector Extensions (AVX) were proposed...

first CPU supporting AVX showed up in 2011

New instruction set (FMA) is going to be released in 2013

Maciej Weksej The Vector Operating System

slide-4
SLIDE 4

Introduction The Vector Operating System Conclusion A little bit of history The Case for VOS

Using parallel instructions

Compilers try to produce code which will utilize a vector processor efficiently, automatic vectorization is major research topic in computer science, focused mainly on loop vectorization, as most programs spend most of their execution times within loops. Nowadays each computer has plenty of parallel mechanisms, which aren’t commonly used.

Maciej Weksej The Vector Operating System

slide-5
SLIDE 5

Introduction The Vector Operating System Conclusion A little bit of history The Case for VOS

OS-intensive applications spend a lot of their execution time inside system calls, therefore, a lot of computation power is wasted, because applications don’t use vector extensions. Researchers from Intel Labs outline a new design, the Vector OS, that is able to let OS-intensive applications be efficiently parallel.

Maciej Weksej The Vector Operating System

slide-6
SLIDE 6

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Main design criteria

Vector interface In order to take advantage of vector instructions, we need to specify vector system calls, like vec_open(), vec_read(), etc. Vector interface will focus on three issues to provide efficient parallelism: Eliminate redundancy Vectorize when possible Parallelize otherwise

Maciej Weksej The Vector Operating System

slide-7
SLIDE 7

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Example

Maciej Weksej The Vector Operating System

slide-8
SLIDE 8

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Example

Maciej Weksej The Vector Operating System

slide-9
SLIDE 9

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

vec_open()

Maciej Weksej The Vector Operating System

slide-10
SLIDE 10

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Eliminate redundancy

Maciej Weksej The Vector Operating System

slide-11
SLIDE 11

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Vectorize when possible

Maciej Weksej The Vector Operating System

slide-12
SLIDE 12

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Parallelize otherwise

Maciej Weksej The Vector Operating System

slide-13
SLIDE 13

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Apache server web requests

Maciej Weksej The Vector Operating System

slide-14
SLIDE 14

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Scaling redundancy with load

Best case: coordinated requests

easy to find and remove subsequent calls

Worst case: uncoordinated requests

redundancy is hard to find: calls differ in both type and arrival time, pigeonhole principle: redundancy increases, because a request of each type alredy exists in the system, many modern operating systems batch work at the interrupt level, ”waves” of requests incures additional latency.

Maciej Weksej The Vector Operating System

slide-15
SLIDE 15

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

How is it done? synchronous system calls, sensitive resources are being locked How could it be done? similar work is packaged together, executed efficiently parallel using vector instructions and eliminating redundancy

Maciej Weksej The Vector Operating System

slide-16
SLIDE 16

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Application-agnostic changes

Transparent for application developer, syscalls are issued through libc, which inserts the call into syscall queue,

  • n trigger (eg. a timeout, a number threshold) syscall is

executed using vector interface.

Maciej Weksej The Vector Operating System

slide-17
SLIDE 17

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Application-agnostic changes

Drawbacks application cannot override OS timing logic — tension between application writers and OS implementers, single thread can issue simmilar synchronous calls, that are not parallelizable even if there exists no dependence between them for i in xrange(N):

  • pen("file_%d.txt" % i)

Maciej Weksej The Vector Operating System

slide-18
SLIDE 18

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Explicit vector interface

VOS defines vector system calls (such as vec_open()), application call vector calls when needed. fds = vec_accept(listenSocket); vec_recv(fds, buffers); // SERVER CODE vec_send(fds, buffers); The OS is relieved of deciding how and when to vectorize

Maciej Weksej The Vector Operating System

slide-19
SLIDE 19

Introduction The Vector Operating System Conclusion Design Example Case study Interface options

Libraries and Languages

Build libraries and language support atop VOS primitives, in event-based programming actions could be automatically executed in parallel. CUDA and OpenCS provide SIMT abstraction on top of multi-processor vector hardware, amazing success of general-purpose GPU shows, that programmers who want performance are willing to ”think vector” to get it.

Maciej Weksej The Vector Operating System

slide-20
SLIDE 20

Introduction The Vector Operating System Conclusion Problems Questions?

Heterogeneity

VOS will need to move efficiently between:

single-threaded execution, vector execution (SSE), parallel execution on path diverge.

Probably VOS will require new compiler techniques to handle this, likewise some hardware-specialization.

Maciej Weksej The Vector Operating System

slide-21
SLIDE 21

Introduction The Vector Operating System Conclusion Problems Questions?

Vector interfaces and parallel I/O

Today’s I/O devices have many batched I/O issuing and completion, what makes them tailored for VOS; vector interfaces can drastically reduce the overhead needed to send many requests to a drive, system overhead for these request can cripple the performance of fast SSDs.

Maciej Weksej The Vector Operating System

slide-22
SLIDE 22

Introduction The Vector Operating System Conclusion Problems Questions?

Questions?

Thank you for your attention.

Maciej Weksej The Vector Operating System