Download The Case for VOS - The Vector Operating System

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Unix security wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Distributed operating system wikipedia , lookup

Copland (operating system) wikipedia , lookup

Mobile operating system wikipedia , lookup

Security-focused operating system wikipedia , lookup

Transcript
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
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
one 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
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
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
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
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
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Example
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Example
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
vec_open()
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Eliminate redundancy
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Vectorize when possible
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Parallelize otherwise
Maciej Weksej
The Vector Operating System
Introduction
The Vector Operating System
Conclusion
Design
Example
Case study
Interface options
Apache server web requests
Maciej Weksej
The Vector Operating System
Design
Example
Case study
Interface options
Introduction
The Vector Operating System
Conclusion
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
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
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,
on trigger (eg. a timeout, a number threshold) syscall is
executed using vector interface.
Maciej Weksej
The Vector Operating System
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):
open("file_%d.txt" % i)
Maciej Weksej
The Vector Operating System
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
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
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
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
Introduction
The Vector Operating System
Conclusion
Problems
Questions?
Questions?
Thank you for your attention.
Maciej Weksej
The Vector Operating System