SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Threads, SMP, and Microkernels
Μπ A Scalable & Transparent System for Simulating MPI Programs Kalyan S. Perumalla, Ph.D. Senior R&D Manager Oak Ridge National Laboratory Adjunct Professor.
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Back-end Timing Models Core Models.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
CS 584. A Parallel Programming Model We need abstractions to make it simple. The programming model needs to fit our parallel machine model. Abstractions.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Introduction to Systems Architecture Kieran Mathieson.
1 Multi - Core fast Communication for SoPC Multi - Core fast Communication for SoPC Technion – Israel Institute of Technology Department of Electrical.
Figure 1.1 Interaction between applications and the operating system.
Operating Systems CS208. What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the.
Chapter 6: An Introduction to System Software and Virtual Machines
1 I/O Management in Representative Operating Systems.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Router Architectures An overview of router architectures.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Router Architectures An overview of router architectures.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Back-end Timing Models Core Models.
CS-334: Computer Architecture
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Modeling and Parallel Simulation.
The Design Discipline.
Computer System Architectures Computer System Software
German National Research Center for Information Technology Research Institute for Computer Architecture and Software Technology German National Research.
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Multi-core Systems and Coherence.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 2 Parallel Architecture. Moore’s Law The number of transistors on a chip doubles every years. – Has been valid for over 40 years – Can’t.
Chapter 2 Operating System Overview
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
EEE440 Computer Architecture
PARALLEL COMPUTING overview What is Parallel Computing? Traditionally, software has been written for serial computation: To be run on a single computer.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD QSim 1 : Overview  Thread safe multicore.
Workshop BigSim Large Parallel Machine Simulation Presented by Eric Bohm PPL Charm Workshop 2004.
S. Shumilov – Zürich Analytical Visualization Framework - a visual data processing and knowledge discovery system Ivan Denisovich, Serge Shumilov Department.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Building and Running Parallel Simulations.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
CPSC 171 Introduction to Computer Science System Software and Virtual Machines.
Distributed simulation with MPI in ns-3 Joshua Pelkey and Dr. George Riley Wns3 March 25, 2011.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Status & development of the software for CALICE-DAQ Tao Wu On behalf of UK Collaboration.
Application Domains for Fixed-Length Block Structured Architectures ACSAC-2001 Gold Coast, January 30, 2001 ACSAC-2001 Gold Coast, January 30, 2001.
4/27/2000 A Framework for Evaluating Programming Models for Embedded CMP Systems Niraj Shah Mel Tsai CS252 Final Project.
1 of 14 Lab 2: Formal verification with UPPAAL. 2 of 14 2 The gossiping persons There are n persons. All have one secret to tell, which is not known to.
1 of 14 Lab 2: Design-Space Exploration with MPARM.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Introduction to Operating Systems Concepts
NFV Compute Acceleration APIs and Evaluation
The Mach System Sri Ramkrishna.
Parallel Objects: Virtualization & In-Process Components
Assembly Language for Intel-Based Computers, 5th Edition
CS 286 Computer Organization and Architecture
CS703 - Advanced Operating Systems
Part 2: Parallel Models (I)
1-2 – Central Processing Unit
UNISIM (UNIted SIMulation Environment) walkthrough
Presentation transcript:

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System Architecture Execution model Software architecture Simulation kernel Manifold component Building system models 1

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Overview A parallel simulation framework for multicore architectures Consists of: A parallel simulation kernel A (growing) set of architectural components Integration of physical models for energy, thermal, power, and so on Goal: easy construction of parallel simulators of multicore architectures 2 core caches core caches core caches core caches Interconnection network memory controller memory controller memory controller memory controller Ease of composition cache core kernel network memory other Manifold repository

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Execution Model: Overview Instruction stream Generated by i) trace files, ii) Qsim server, iii) Qsim Lib System timing model Multicore model built with Manifold components Components assigned to multiple logical processes (LPs) Each LP assigned to one MPI task; LPs run in parallel Instruction stream System timing model Traces Serial Emulator Parallel Emulator Options Cycle level components High level timing components Physical Models (e.g., Power) backpressure 3

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Execution Model: Software Organization Manifold Kernel Physical Core 0Physical Core 1 Component Kernel – Component API Inter-Kernel API Component models connected to form system models Full system emulation front-end All time management is handled by the simulation kernel APIs  key to integrating mature point tools Logical Process (LP) Component Inter- component API QSim Client/Server Emulator 4 Instruction streams 4

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD An Example System Model Multicore SMP system Core, cache, memory controller models each represented by a Manifold component Network contains multiple components: interfaces, routers core caches core caches core caches core caches Interconnection network memory controller memory controller memory controller memory controller Manifold component Manifold component multiple Manifold components 5

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Execution Model Timing-directed full- system simulation Front-end performs functional emulation; timeless Back-end for timing simulation Front-end is regulated by back-end Qsim proxy Qsim proxy application Linux VCPU Virtual CPU VCPU core L1$ L2$ PSK core L1$ L2$ PSK core L1$ L2$ network MPI PSK logical process (LP) LP Functional front-end Timing back-end TCP/IP shared memory QSim 6

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System Architecture Execution model Software architecture Simulation kernel Manifold component Building system models 7

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Software Architecture (1/2) Layered architecture Standardized component interfaces Goal: Encapsulation of parallel-discrete event simulation functionality Allow components to evolve independently plug-n-play construction of simulators simulation kernel core model network model memory model user model cache model models (components) cross-model simulator 8

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Software Architecture (2/2) Standardized component interfaces allows components to be independent of each other: no compile-time dependence allows components to be interchangeable Example processor-cache interface cache model core model 1 core model 2 cache model core model 1 simulator cache model core model 2 simulator library 9

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Source Code Organization How to get the code? Distribution package: SVN: 10 code |... doc |... kernel |... models | |... cache | |... cross | |... energy_introspector | |... memory | |... network | |... processor |... simulator |... uarch (common micro-architecture classes) |... util (utility programs)

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System Architecture Execution model Software architecture Simulation kernel Manifold component Building system models 11

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Simulation Kernel (1/2) Simulation Kernel provides facilities for creating / connecting components provides clock related functionalities Encapsulates parallel discrete-event simulation (PDES) services Transparent synchronization between parallel LPs All event management Qsim proxy Qsim proxy application Linux VCPU Virtual CPU VCPU core L1$ L2$ PSK core L1$ L2$ PSK core L1$ L2$ network MPI PSK logical process (LP) LP Functional front-end Timing back-end TCP/IP shared memory QSim 12

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Simulation Kernel (2/2) Interface Component functions  create / connect components  send output Clock functions  create clocks  register component with clock  Support for dynamic voltage frequency scaling (DVFS) Simulation functions  start / stop simulation  statistics Encapsulated part PDES engine: event management, event handling, inter- process communication, synchronization algorithms 13

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System Architecture Execution model Software architecture Simulation kernel Manifold component Building system models 14

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Operational Model of a Component (1/3) Component is connected to other components via links For each input port, there should be an event handler Can register one or two functions with a clock; registered functions are called every clock cycle For output, use Send() Paradigm shift: OO  event-driven Instead of comp->function(data), call Send(data) No method invocation: comp->function() May not even have a valid pointer: component could be in another process Kernel ensures receiver’s handler is called at the right moment 15 event_handler(T*) Send(Data*) rising() / falling() component

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Operational Model of a Component (2/3) How is the event handler of component invoked? Example: component c1 sends data at cycle t to component c2; link delay is d cycles What’s expected: c2’s handler is called at cycle (t+d) 16 Case 1: c1 and c2 in same LP When c1 is connected to c2, a LinkOutput object is created that holds a pointer to c2, and a pointer to its handler. When c1’s Send() is called, the LinkOutput object calls kernel’s schedule function to schedule an event that calls c2’s handler at (t+d). c1 c2 kernel LP

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Operational Model of a Component (2/3) 17 Case 2: c1 and c2 in different LPs When c1 is connected to c2, a LinkInput object for c2 is created that holds a pointer to its handler. When c1’s Send() is called, kernel1 sends data to kernel2, which passes it to c2’s LinkInput object, which calls kernel2’s schedule function to schedule an event that calls c2’s handler at (t+d). The same Send() function is used in both cases! LP2 c1 c2 kernel LP1 kernel

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Component (1/2) Must be a subclass of manifold::kernel::Component Must define event handlers for incoming data Must use Send() to send outputs Define functions for rising/falling edge if required For more, see Manifold Component Developer's Guide class MyComponent : public manifold::kernel::Component { public: enum {PORT0=0, PORT1}; void handler0(int, MyDataType0*); void handler1(int, MyDataType1*); void rising(); void falling(); }; 18

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Component (2/2) Important functions in manifold::kernel::Component Create() create a component 5 overloaded template functions Send() send data out of a port to a component connected to the port no recv() function: incoming events handled by event handler. template<typename T, typename T1) void Create(int, T1, CompName); template void Send(int, T); 19

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System Architecture Execution model Software architecture Simulation kernel Manifold component Building system models 20

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Building System Models and Simulation Programs (1/2) Steps for building a simulation program – Initialization – Build system model (see next slide) – Set simulation stop time – Start simulation – Finalization – Print out statistics 21

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Building System Models and Simulation Programs (2/2) Building a system model Create clock(s) (call constructor) Create components (call Component::Create()) Connect components (call Manifold::Connect()) Register clock-driven components with clock, if not already registered. (call Clock::Register()) 22

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Outline Introduction Execution Model and System Architecture Multicore Emulator Front-End Component Models Cores Network Memory System Building and Running Manifold Simulations Physical Modeling: Energy Introspector Some Example Simulators 23