Modeling and Parallel Simulation of Multicore Systems with Manifold

Tentative outline  [pdf].


The transition to multicore and the dominating influence of power and energy have opened a growing gap between simulation capacity (traditional serial simulation) and simulation demand (multicore models). Manifold is a parallel simulation framework for multicore architectures. It is an infrastructure for integrating component models into serial or parallel multicore simulation models ranging from full system cycle level simulators to those comprised of coarse grain, trace driven analytic models. Manifold simulators boot a copy of Linux, and can execute supported application binaries – currently 32-bit x86. Manifold adopts a layered software architecture that separates the parallel discrete event simulation (PDES) kernel and the component models into different layers, allowing users to construct parallel simulators with little to no knowledge of PDES. The distinguishing features of Manifold are i) component based support for models at all levels of complexity, from high level analytic models to detailed cycle-level models, ii) transparent parallel execution, iii) support for mixed time-stepped and discrete event simulation, and iv) integration of physical models for power, thermal, cooling and reliability via standardized interface to an extensible library of public domain models. In particular, the project seeks to make it easy to employ and integrate Point tools that already exist, e.g., memory simulators, core simulators, etc. The standard interfaces also make it easy to integrate third party components, allowing users to contribute to the system and share their models with other users.

Target Audience

This tutorial gives a detailed introduction to the Manifold framework, focusing on building system models and setting up serial or parallel simulation using the facilities provided by Manifold. It also demonstrates how to write components for Manifold so that attendees can port their existing models to Manifold. This tutorial is intended for researchers and students who use simulation for their research work in computer architecture. The tutorial requires basic knowledge of C++, particularly templates.


Half-day tutorial (http://manifold.gatech.edu/)


  • Jun Wang, Georgia Tech
  • Sudhakar Yalamanchili, Georgia Tech
  • Tom Conte, Georgia Tech
  • George Riley, Georgia Tech


  1. Introduction
    1. Project Goals
    2. Manifold Structure
    3. Running a Simulation
  2. Manifold Execution Model and System Components
    1. Simulation Kernel
    2. Component Models
    3. Building System Models
  3. Manifold Architectural Components
    1. QSim Multithreaded, Multicore Emulator Front- End
    2. Back-end Timing Model Components: Interconnection Network, and Memory System. Cores (x86), Coherent Cache
  4. Building and Running Parallel Simulations
    1. Component and Simulator Kernel Interfaces
    2. Simulator Construction
    3. Logs and Statistics
  5. Energy Introspector (EI) Physical Modeling Library
    1. Available Physical Models and Component Interfaces
    2. Example: Building Coupled Power and Thermal Simulation Models
    3. Example: Building Coupled Power, Thermal, and Reliability Simulation Models
  6. Examples of Building Alternative Simulators with Manifold