Real-Time Musical Applications On An Experimental OS For Multi-Core Processors 林鼎原 Department of Electrical Engineering National Cheng Kung University.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chap 4 Multithreaded Programming. Thread A thread is a basic unit of CPU utilization It comprises a thread ID, a program counter, a register set and a.
Distributed Multimedia Systems
Introduction CSCI 444/544 Operating Systems Fall 2008.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
Chapter 13 Embedded Systems
Chapter 11 Operating Systems
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
What is Concurrent Programming? Maram Bani Younes.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Chapter 9 Elements of Systems Design
Computer System Architectures Computer System Software
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Operating Systems  A collection of programs that  Coordinates computer usage among users  Manages computer resources  Handle Common Tasks.
An Introduction to Software Architecture
Tessellation: Refactoring the OS around explicit resource containers with continuous adaptation 1 張力升 Dept. of Electrical Engineering National Cheng Kung.
Threads, Thread management & Resource Management.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3: Operating Systems Computer Science: An Overview Tenth Edition.
Computing and the Web Operating Systems. Overview n What is an Operating System n Booting the Computer n User Interfaces n Files and File Management n.
◦ What is an Operating System? What is an Operating System? ◦ Operating System Objectives Operating System Objectives ◦ Services Provided by the Operating.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architectural Support for Fine-Grained Parallelism on Multi-core Architectures Sanjeev Kumar, Corporate Technology Group, Intel Corporation Christopher.
A Real-Time, Parallel GUI Service in Tesselation OS Albert Kim, Juan A. Colmenares, Hilfi Alkaff, and John Kubiatowicz Par Lab, UC Berkeley.
Tessellation: Space-Time Partitioning in a Manycore Client OS Rose Liu 1,2, Kevin Klues 1, Sarah Bird 1, Steven Hofmeyr 3, Krste Asanovic 1, John Kubiatowicz.
Chapter 101 Multiprocessor and Real- Time Scheduling Chapter 10.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Processes Introduction to Operating Systems: Module 3.
Adaptive Multi-Threading for Dynamic Workloads in Embedded Multiprocessors 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan,
Run-time Adaptive on-chip Communication Scheme 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C.
Operating Systems CSE 411 CPU Management Sept Lecture 10 Instructor: Bhuvan Urgaonkar.
Energy-Aware Resource Adaptation in Tessellation OS 3. Space-time Partitioning and Two-level Scheduling David Chou, Gage Eads Par Lab, CS Division, UC.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 OS 1.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Tessellation: Space-Time Partitioning in a Manycore Client OS 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
Course Book Course Objective - The student will be able to describe various operating system concepts as they are applied to memory, process, file system.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Distributed Sequencing for Resource Sharing in Multi-Applicative Heterogeneous NoC Platforms 林鼎原 Department of Electrical Engineering National Cheng Kung.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
INTRODUCTION TO COMPUTERS. A computer system is an electronic device used to input data, process data, store data for later use and produce output in.
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
Introduction to Operating Systems Concepts
Introduction to threads
An Overview of the Computer System
Lecture 21 Concurrency Introduction
Introduction to Operating System (OS)
Quick Introduction to OS
Looking Inside the machine (Types of hardware, CPU, Memory)
An Overview of the Computer System
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
Introduction to Operating Systems
Multithreaded Programming
Operating System Introduction.
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Presentation transcript:

Real-Time Musical Applications On An Experimental OS For Multi-Core Processors 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C 2015/12/7 1 隱藏之投影片 ★★★ Xen ??? To be studied :

2 一、 Abstract  A natural approach to increasing the performance of musical applications is to exploit their inherent parallel structure on general-purpose multi-core architectures  In this paper, We discuss opportunities for exploiting parallelism in audio DSP graphs as well as within select audio processing components.  We describe Tessellation OS, an experimental operating system  structured around resource distribution, performance isolation, and QoS guarantees,  and Lithe, a user-level runtime framework that enables construction of composable, application-specific schedulers.

3 二、 Introduction  In this paper we discuss how a signal flow graph can be dynamically parallelized and how to meet the needs of parallel plug-ins.  We show how a multi-core operating system can be architected to support musical applications.  Of particular interest is the fact that musical applications often require simultaneous execution of real-time, interactive, and parallel computations.  Tessellation OS, our experimental operating system, has two distinctive features:  (1) It provides performance isolation and strong partitioning of resources,  (2) It separates global decisions about resource allocation from application-specific scheduling of resources (i.e., two level scheduling)

4 二、 Introduction( 續 )  Central to Tessellation’s approach are user-level runtime frameworks, such as Lithe, that produce composable, module-specific schedulers.  Via Lithe, Tessellation supports a variety of parallel programming models in a uniform and composable way.  In this paper, we also present the design of a real-time parallel musical application on top of Tessellation OS.

5 三、 Overview Of Tessellation OS  Tessellation OS is an experimental multi-core operating system focused on enforcing resource guarantees for client applications.  Its development is driven by the needs of real-time audio applications (intended for use in live performances) and other next-generation client applications (e.g., a parallel web browser ).  Tessellation’s primary goal is to provide adequate support for a simultaneous mix of real-time, interactive, and high-throughput parallel applications.  Other goals include providing scalable performance for parallel client applications and enabling the system to quickly adapt to changes in the application workload and availability of resources.

6 三、 Overview Of Tessellation OS ( 續 )  Tessellation OS is built on two complementary design principles often used in real-time computing.  (1) Space-Time Partitioning (2) Two-Level Scheduling.  Space-Time Partitioning provides performance isolation and partitioning of resources among software components.  Tessellation divides the hardware into a set of simultaneously-resident partitions as shown in Figure 3.

7 三、 Overview Of Tessellation OS ( 續 )  Two Level Scheduling:  Split monolithic scheduling into two pieces:  Coarse-Grained Resource Allocation and Distribution  Chunks of resources (CPUs, Memory Bandwidth, QoS to Services) distributed to application (system) components  Option to simply turn off unused resources (Important for Power)  Fine-Grained Application-Specific Scheduling  Applications are allowed to utilize their resources in any way they see fit  Other components of the system can not interfere with their use of resources Monolithic CPU and Resource Scheduling Resource Allocation And Distribution Application Specific Scheduling

8 三、 Overview Of Tessellation OS ( 續 )  First Level: Global partitioning of resources  Goals: Power Budget, Overall Responsiveness/QoS, Security  Adjust resources to meet system level goals  Partitioning of CPUs, Memory, Interrupts, Devices, other resources  Constant for sufficient period of time to:  Allow time for partition-level scheduling to be effective  Hard boundaries  interference-free use of resources  Allows Auto Tuning of code to work well in partition  Second Level: Application-Specific Scheduling  Goals: Performance, Real-time Behavior, Responsiveness, Predictability  Fine-grained, rapid switching  CPU scheduling tuned to specific applications  Resources distributed in application-specific fashion  External events (I/O, active messages, etc.) deferrable as appropriate

9 三、 Overview Of Tessellation OS ( 續 )  Important Idea: Spatial Partitioning  Spatial Partition: group of processors within hardware boundary  Boundaries are “hard”, communication between partitions controlled  Anything goes within partition

10 三、 Overview Of Tessellation OS ( 續 )  Key Idea: Performance and Security Isolation  Each Partition receives a vector of resources  Some number of dedicated processors  Some set of dedicated resources (exclusive access)  Complete access to certain hardware devices  Dedicated raw storage partition  Some guaranteed fraction of other resources (QoS guarantee):  Memory bandwidth, Network bandwidth  fractional services from other partitions

11 三、 Overview Of Tessellation OS ( 續 )  Partitions are virtualized and exported to applications and OS services through an abstraction called a Cell,  which is a container for parallel software components with guaranteed access to resources.  Two-Level Scheduling, on the other hand, separates global decisions about resource allocation to Cells (first level) from application-specific scheduling of resources within Cells (second level).  Applications in Tessellation are divided into performance-isolated cells that communicate through efficient and secure channels (see Fig. 4)

12 三、 Overview Of Tessellation OS ( 續 )  Once resources have been assigned to Cells, user-level schedulers within Cells may utilize the resources as they wish  without interference from other Cells.  It is the separation of resource distribution from usage that we believe makes this two-level approach more scalable and better able to meet the demands of parallel client applications than other approaches.  Inter-cell channels provide performance and security isolation between Cells.  In addition, partitioned resources assigned to Cells can vary with the needs of the applications and OS (i.e., Cells can “shrink” and “grow”).  Tessellation attempts to strike a balance between maximizing resource utilization to achieve performance goals and selectively idling resources to provide quality-of-service (QoS) guarantees.

13 三、 Overview Of Tessellation OS ( 續 )  Spatial Partitioning varies over Time  Partitioning adapts to needs of the system  Some partitions persist, others change with time  Cells may be time-multiplexed, as implied by the “time” component of the term Space-Time Partitioning.  Hardware thread contexts and other resources are, however, gang-scheduled such that Cells are unaware of this multiplexing  unexpected virtualization of physical resources does not occur Time Space Space

14 三、 Overview Of Tessellation OS ( 續 )  Tessellation provides several time-multiplexing policies for cells, some of them offering high degrees of time predictability they are:  1) no-multiplexing policy (cell given dedicated access to cores)  2) time-triggering policy (cell active during predetermined time windows)  3) event-triggering policy (cell activated upon event arrivals, but never exceeds its assigned fraction of processor time),  4) best-effort policy (cell with no time guarantees).  Tessellation incorporates admission control (as part of the policy) to prevent cells from compromising the timing behavior of other cells.

15 三、 Overview Of Tessellation OS ( 續 )  Lithe: Framework for User-level Scheduling  A Cell-level runtime operates at user-level and manages all resources within the Cell.  Central to Tessellation’s approach are user-level scheduling frameworks, such as Lithe, that enable construction of application-specific schedulers.  Lithe enables support for a variety of parallel programming models in a uniform and composable way (see Figure 5).  Via Lithe, applications can effectively utilize one or more parallel libraries without worrying about oversubscription  (a situation that occurs when libraries create more threads than there are physical cores in the system).

16 三、 Overview Of Tessellation Os ( 續 )  Lithe provides the necessary primitives and interfaces for composing such parallel libraries efficiently.

17 四、 A Musical Application On Tessellation OS  Figure 6. depicts the general structure of a live performance music application that we are currently developing on Tessellation OS.  The application interacts with analog audio inputs and outputs and MIDI controllers via an Ethernet audio I/O device  The device has 10 input and 10 output channels and operates at 44.1kHz.

18 四、 A Musical Application On Tessellation OS( 續 )  Tessellation’s Network Service provides the application a guaranteed communication path to the Ethernet audio device.  The Network Service guarantees a minimum communication bandwidth to our application (for both incoming and outgoing messages).  (In Figure 6) our proposed music application comprises three Cells:  Cell A hosts the audio processing and synthesis engine (or audio engine) and most of the audio objects and plug-ins defined in the audio DSP graph.  Cell B hosts a highly-tuned parallel plug-in implementing a computationally intensive DSP process.  Cell C contains the GUI application components.

19 四、 A Musical Application On Tessellation OS( 續 )  The audio engine in Cell A is central to our application because it controls the execution of the audio graph.  It receives input audio data and MIDI control messages from the audio device through the Network Service and returns audio output data.  To enable parallel execution of the audio graph, Cell A allocates multiple CPU cores and the user-level runtime within the Cell implements an event- driven deadline-based dynamic scheduler.  This scheduler is preemptive and can accommodate long-running tasks without placing extra burden on plug-in programmers.

20 四、 A Musical Application On Tessellation OS( 續 )  Cell B holds another part of the audio graph, deployed in a separate Cell to avoid interference from the execution of other graph elements.  Such highly-optimized parallel plug-ins are likely to require hierarchical composition of parallel libraries.  The runtime system in Cell B is thus implemented on top of Lithe.  Finally, the GUI components in Cell C allow the user to compose and manipulate audio graphs.  (e.g., enable and disable specific modules in the graph).  The GUI components interact with the GUI Service, which controls user input and output devices such as display, keyboard, and mouse.  This service guarantees high-confidence response times to user events. Cell C uses an event-triggering policy and its runtime implements an earliest-deadline-first scheduler

21 四、 A Musical Application On Tessellation OS( 續 )  GUI Service  Tessellation's GUI Service offers general window management, with graphical, video, and image processing services to applications.  It exploits task parallelism for improved service times, while at the same time providing differentiated service and soft service-time guarantees to graphical applications.  GUI Service resides in a dedicated cell with sole control of the video output devices (e.g., framebuffer) and human-interface devices (e.g., keyboard and mouse).

22 四、 A Musical Application On Tessellation OS( 續 )  Parallelizing Audio DSP Graphs  Real-time audio processing applications are often represented by an audio DSP graph (or “audio graph”), a directed tree structure to specify transformations of audio streams.  We discuss techniques for parallelizing such graphs.  Using task-level parallelism is natural in the execution of an audio graph.  Independent modules in the audio graph can be executed in parallel as separate tasks.  Data-level parallelism, on the other hand, can be exploited by dividing the block of input audio samples into segments  such that multiple processing elements perform the same transformation on different segments

23 四、 A Musical Application On Tessellation OS( 續 )

24 五、 Conclusion  We describe Tessellation OS, an experimental operating system  structured around resource distribution, performance isolation, and QoS guarantees  We present the design and implementation of a real-time parallel musical application on top of Tessellation OS.