MyThOS — Scalable OS Design for Extremely Parallel Applications

Many-core architectures trade single-thread performance for a larger number of cores. Scalable throughput can be attained only by a high degree of parallelism, minimized synchronization. Whilst this is achievable for many applications, the operating system still introduces bottlenecks through non-local sharing, synchronization,, message passing. A particular challenge for highly dynamic applications, for example invasive HPC applications, elastic compute clouds, is the management of short-living application threads, processes. This paper discusses OS architecture choices based on microkernel, multikernel, distributed systems designs, our development experience in the context of the MyThOS project. Initial experiments show a much faster thread creation, activation compared to monolithic systems like Linux while providing a more flexible protection, threading model that is better suited for dynamic scenarios. However, despite significant progress in the overall domain of operating systems, the design space for scalable many-core operating systems is yet to be fully explored.

[1]  Gernot Heiser,et al.  L4 Microkernels: The Lessons from 20 Years of Research and Deployment , 2016, TOCS.

[2]  Peter A. Dinda,et al.  Palacios and Kitten: New high performance operating systems for scalable virtualized and native supercomputing , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[3]  Donald E. Porter,et al.  Rethinking the library OS from the top down , 2011, ASPLOS XVI.

[4]  Konstantinos Sagonas,et al.  Queue Delegation Locking , 2014, IEEE Transactions on Parallel and Distributed Systems.

[6]  Michiel W. van Tol A Characterization of the SPARC T3-4 System , 2011, ArXiv.

[7]  Jörg Henkel,et al.  OctoPOS : A Parallel Operating System for Invasive Computing , 2011 .

[8]  A. Barbalace Popcorn : a replicated-kernel OS based on Linux , 2014 .

[9]  Stefanos Kaxiras,et al.  Turning Centralized Coherence and Distributed Critical-Section Execution on their Head: A New Approach for Scalable Distributed Shared Memory , 2015, HPDC.

[10]  Udo Steinberg,et al.  NOVA: a microhypervisor-based secure virtualization architecture , 2010, EuroSys '10.

[11]  Robert Tappan Morris,et al.  An Analysis of Linux Scalability to Many Cores , 2010, OSDI.

[12]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[13]  Zhenman Fang,et al.  Measuring Microarchitectural Details of Multi- and Many-Core Memory Systems through Microbenchmarking , 2015, ACM Trans. Archit. Code Optim..

[14]  Yang Zhang,et al.  Corey: An Operating System for Many Cores , 2008, OSDI.

[15]  KruchtenPhilippe The 4+1 View Model of Architecture , 1995 .

[16]  Amit Kumar Singh,et al.  Mapping on multi/many-core systems: Survey of current and emerging trends , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[17]  Rolf Riesen,et al.  mOS: an architecture for extreme-scale operating systems , 2014, ROSS@ICS.

[18]  Thomas Steinke,et al.  FFMK: A Fast and Fault-Tolerant Microkernel-Based System for Exascale Computing , 2016, Software for Exascale Computing.

[19]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[20]  Pradeep Dubey,et al.  Larrabee: A Many-Core x86 Architecture for Visual Computing , 2009, IEEE Micro.

[21]  Jürgen Teich,et al.  Invasive Computing: An Overview , 2011, Multiprocessor System-on-Chip.

[22]  Jochen Liedtke,et al.  Toward real microkernels , 1996, CACM.

[23]  Yutaka Ishikawa,et al.  Design of Direct Communication Facility for Many-Core Based Accelerators , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[24]  David F. Heidel,et al.  An Overview of the BlueGene/L Supercomputer , 2002, ACM/IEEE SC 2002 Conference (SC'02).

[25]  Kevin Klues,et al.  Improving per-node efficiency in the datacenter with new OS abstractions , 2011, SoCC.

[26]  Michael von Tessin The clustered multikernel: An approach to formal verification of multiprocessor OS kernels , 2012 .

[27]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[28]  Michael Stumm,et al.  Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system , 1999, OSDI '99.

[29]  Xiaola Lin,et al.  Analysis of optimal thread pool size , 2000, OPSR.