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 A little bit of history The Vector Operating System The Case for VOS Conclusion 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 A little bit of history The Vector Operating System The Case for VOS Conclusion 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 A little bit of history The Vector Operating System The Case for VOS Conclusion 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 A little bit of history The Vector Operating System The Case for VOS Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Example Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Example Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options vec_open() Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Eliminate redundancy Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Vectorize when possible Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Parallelize otherwise Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion Interface options Apache server web requests Maciej Weksej The Vector Operating System
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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
Design Introduction Example The Vector Operating System Case study Conclusion 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 Problems The Vector Operating System Questions? Conclusion 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 Problems The Vector Operating System Questions? Conclusion 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 Problems The Vector Operating System Questions? Conclusion Questions? Thank you for your attention. Maciej Weksej The Vector Operating System
Recommend
More recommend