Solving and Sharing the Puzzle: Modeling and Simulation of Computer Architectures with SST and OCCAM

Solving and Sharing the Puzzle: Modeling and Simulation of Computer Architectures with SST and OCCAM


Full day tutorial at The 44th International Symposium on Computer Architecture (ISCA 2017), June 24th 2017

Bruce Childers1, Luís Oliveira1, Arun Rodrigues2, Branden Moore2, Richard Murphy3,4, Noel Wheeler5, Marcel Fallet5
1University of Pittsburgh, 2Sandia National Labs (SNL), 3Micron Technology, Inc., 4Boise State University, 5Laboratory for Physical Sciences (ACS)

Overview

Modeling and simulation are critical in the development and understanding of HPC hardware and design. Often, simulation is the foremost method of affordable exploration to understand the intricacies of design space trade-offs, novel architectures, emerging components, and interconnect infrastructures to generate vital statistics. There is an urgency for interoperability, consistency, and communication between simulation tools and developers. To facilitate this use of node-level simulations, a standard communication system between models is needed. The Structural Simulation Toolkit (SST), developed by Sandia National Laboratories, is a scalable, open-source, parallel discrete-event framework designed to act as a unifying tool for hardware simulation and component analysis. The University of Pittsburgh’s Open Curation for Computer Architecture Modeling (OCCAM) program allows for reproducible, customizable, and simplified integration of simulation tools for easing community development, deployment, and reproducibility. This tutorial will introduce the fundamental components and key features of SST. Examples are presented that will build on introductory concepts and illustrate the creation of new simulation components. The OCCAM platform will be introduced, enabling participants to explore SST with an example set of simulations. Participants will also be invited to explore a series of instructor-led customization and testing techniques, with a focus on model expansion and analysis.

Tutorial Goals

As the science of supercomputing evolves, there is an urgent need for simulation to become more unified, while facilitating collaboration and reproducibility among academic, industrial, and government partners. OCCAM allows users to collaborate on and quickly reproduce experiments through a powerful and clean web interface and back-end services. This makes open discussion, co-design, and reproducibility among many users seamless and intuitive. SST offers users open-ended, powerful tools to create, integrate, and test current and novel architectures. As a parallel discrete event-driven framework, SST provides a Python and C++ code base and a large array of customization options for simulator production of various types.

Tutorial participants will be introduced to modeling and simulation of computer architectures in a novel, reproducible, and expandable environment. Through a shared process of presentation, tutorial examples, and hands-on lab exercises, students will be exposed to the Open Curation for Computer Architecture Modeling (OCCAM) tool suite and the Structural Simulation Toolkit (SST) simulation framework. Participants will experience how this web-based interface can be used to seamlessly provide customizable, reproducible hardware architecture simulations in an open source environment.

Target Audience and Prerequisites

Undergraduate and graduate students with a focus in computer architecture and simulation will gain knowledge and experience in a collaborative experimental framework with easy integration into their research models. Faculty members and industrial partners will also see the benefit of this useful simulation tool suite.
As a prerequisite, it is recommended that participants have some coding knowledge (C, C++, Python), but it is not a requirement.

Tutorial Outline

  1. Modeling and Simulation Overview Presentation
    • Motivation
  2. OCCAM & SST Integration
    • Interactive demo of OCCAM
  3. Exercise 1 - Introduction to OCCAM and SST
    • Wrapping and importing an SST simulator into OCCAM
    • Running experiments within OCCAM
  4. Catch-up session
    • High level overview of OCCAM
    • Advantages of containerization
  5. Exercise 2 - Features of OCCAM
    • Running comparative analyses
    • Sharing results and reproducibility
  6. Catch-up session
    • What's the purpose?
    • Building collaboration
  7. SST overview
    • Running simulations: Input decks and connectivity
    • Components and sub-components
  8. Exercise 3 - Architecture in Collaboration
    • Collaboration within OCCAM

Prerequisites

The tutorial environment will be made available in a VirtualBox machine. Please make sure you have VirtualBox
installed in order to be able to use it.

Previous Version of Tutorial

This tutorial was previously presented during the SC16 conference in Salt Lake City (November 13th).
It was presented under the same name, "Solving and Sharing the Puzzle: Modeling and Simulation of Computer Architectures with SST and OCCAM", as a half-day tutorial with 22 attendees. As a result of the audience feedback, many changes were made.

The slides for the tutorial exercises can be found on the following links:

Resources

Follow these links for SST and OCCAM:

Presenters

Dr. Bruce Childers, University of Pittsburgh

Bruce Childers is a Professor of Computer Science (CS) at the University of Pittsburgh. He graduated from the University of Virginia with a PhD (CS, 2000) and from the College of William and Mary with a BS (CS, 1991). research spans the software-hardware boundary for improved energy, performance and reliability, with an emphasis on embedded systems. Childers is a passionate advocate of increasing accountability in computer systems research for more reproducible and open experimentation. is a Professor of Computer Science (CS) at the University of Pittsburgh. He graduated from the University of Virginia with a PhD (CS, 2000) and from the College of William and Mary with a BS (CS, 1991). research spans the software-hardware boundary for improved energy, performance and reliability, with an emphasis on embedded systems. Childers is a passionate advocate of increasing accountability in computer systems research for more reproducible and open experimentation. He has developed techniques at both the software layer (dynamic binary translation, compiler optimization, debugging and software testing) and the hardware layer (asynchronous custom processors, speed scaling, reliable cache design, and storage class memory).

Dr. Luís Oliveira, University of Pittsburgh

Luis Oliveira received his Master’s degree from the University of Aveiro, Portugal in 2009, and the PhD in electrical and computer engineering from the University of Porto, Portugal in 2016. He is currently a Post-Doctoral Associate in the University of Pittsburgh. His research interests include real-time wireless networks, control architectures for mobile robot teams, and, more recently, reproducibility and accountability in computer systems simulation.

Dr. Arun Rodrigues, Sandia National Laboratories

Dr. Rodrigues is a Principal Member of the Technical Staff at Sandia National Laboratories where he focuses on architectural simulation and memory systems. Since joining Sandia he has spearheaded the Structural Simulation Toolkit (SST), a framework of parallel architectural simulators that is used by industry, academic, laboratory, and government to analyze current and future architectures. He is the PI of the Data Movement Dominates project which examines aspects of data movement in the processor, memory, and interconnect and seeks to improve performance though changes at the device level, packaging, and architecture.