GithubHelp home page GithubHelp logo

princetonuniversity / muchisim Goto Github PK

View Code? Open in Web Editor NEW
28.0 3.0 5.0 172.18 MB

Simulator framework for analysis of performance, energy consumption, area and cost of multi-node multi-chiplet tile-based manycore designs

License: Other

C++ 49.67% Makefile 0.06% Python 16.80% Shell 5.20% C 28.27%
cost-model data-centric data-local energy-model execution manycore multi-chip network performance-modeling-and-analysis pgas

muchisim's Introduction

Muchisim is a Simulation Framework for Design Exploration of Multi-Chip Manycore Systems We evaluate Muchisim at simulating systems with up to a million interconnected processing elements (PEs) while modeling data movement and communication in a cycle-accurate manner. In addition to performance, Muchisim reports the energy, area, and cost of the simulated system, and it comes with a benchmark application suite and two data visualization tools. Muchisim supports various parallelization strategies and communication primitives such as task-based parallelization and message passing, making it highly relevant for architectures with software-managed coherence and distributed memory. Via a case study, we show that Muchisim helps users explore the balance between memory and computation units and the constraints related to chiplet integration and inter-chip communication. Muchisim enables scaling up the systems in which new techniques or design parameters are evaluated, opening the gate for further research in this area.

For detailed information, check out our full paper. To cite Muchisim, please use

@inproceedings{muchisim,
    title={Muchisim: A Simulation Framework for Design Exploration of Multi-Chip Manycore Systems},
    author={Orenes-Vera, Marcelo and Tureci, Esin and Martonosi, Margaret and Wentzlaff, David},
    booktitle={Proceedings of 2024 International Symposium on Performance Analysis of Systems and Software (ISPASS)},
    year={2024},
    url={https://doi.org/10.48550/arXiv.2312.10244}
}
muchiSim

Requirements

This simulator is written entirely in C/C++. It has been tested with G++ version 12 and 13 and Intel C++ Compiler version 2021.1.2 It requires OpenMP or pthreads. The scripts inside the plots folder require Python version 3. These scripts parse the simulator traces generated by the experiments to create plots.

Usage

Because many parameters are passed as macros, the simulator is compiled every time that a new experiment is launched. There are scripts that launch experiments. Those are stored in the exp/ folder. For example one can use the following command to run Sparse Matrix Vector Multiplication (SPMV), which corresponds to application #4 out of the applications that are included in this simulator by default (SSSP, Pagerank, BFS, WCC, SPMV, Histogram, 3D-FFT and SPMM)

exp/run_app.sh 4 0 A

The '0' refers to the configuration set inside the run_app.sh script. The 'A' refers to the name we are giving to the experiment. This 'A' is also considered the name for the binary created inside the bin folder.

Simulator parameters

The simulator has many configuration parameters inside src/configs. Other parameters are set as C macros inside exp/run.sh which is the file where the simulator gets compiled. The reason why some parameters are macros is for simulation efficiency, so that the code inside the ifdef macros is only executed if that parameter is set.

Folder structure

src containss the source files of the simulator

doall contain the sequential or doall implementations of some of the applications included as benchmarks inside this simulator.

sim_logs is the folder where simulation traces are generated into.

bin contains the binary files created by the compilation of different experiments.

datasets contains the datasets in binary format and TSV format.

exp contains experiments scrips.

gui contains a PyQt5 GUI to show plots based on simulation traces. (Installation instructions contained inside that folder.)

plots contains python scripts to plot heatmaps and other characterization plots for different experiments.

More information

More information about muchiSim concepts are found on src/README.md

Research using MuchiSim

MuchiSim has helped evaluating "Tascade: Hardware Support for Atomic-free, Asynchronous and Efficient Reduction Trees ", and "DCRA: A Distributed Chiplet-based Reconfigurable Architecture for Irregular Applications".

The artifacts are available for both Tascade and DCRA.

muchisim's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.