Skip to content

Repository files navigation

MQSim Pro Studio

An extensible, high-fidelity GUI platform for the MQSim SSD Simulator. This tool provides a modern interface for configuring SSD architectures, designing workload scenarios, and visualizing performance metrics through parameter sweeps and experiments.

Screenshots

Main Interface Figure 1: The main dashboard showing SSD Architecture and Console output.

Experiment Results Figure 2: Visualizing parameter sweep results for IOPS and Latency.

Features

  • SSD Architecture Designer: Visual configuration of NAND flash parameters, host interfaces (NVMe/SATA), and FTL settings.
  • Workload Manager: Support for synthetic traffic generation and real-world ASCII trace execution.
  • Experiment Suite: Automate parameter sweeps to see how specific hardware changes impact performance (IOPS, Latency, WAF).
  • Interactive Graphs: Real-time visualization of simulation results using Matplotlib.
  • Plugin System: Easily extend the studio with custom analysis or configuration tools.
  • Trace Factory: Integrated editor for creating and modifying I/O traces.

Prerequisites

  1. MQSim Binary: You must have the compiled MQSim binary.
    • On Linux: Run make in the root directory.
    • On Windows: Build the MQSim.sln in Visual Studio.
  2. Python 3.8+

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/MQSim-Studio.git
    cd MQSim-Studio
  2. Install dependencies:

    pip install -r requirements.txt

Usage

  1. Launch the application:

    python main.py
  2. Configure the Binary Path: Since this is a standalone tool, you need to point it to your compiled MQSim binary.

    • Use the ... button next to the "MQSim Binary" field in the top toolbar.
    • Select your compiled MQSim (Linux) or MQSim.exe (Windows).
    • The tool will remember this path if you save your project workspace.
  3. Run a Simulation:

    • Adjust settings in the SSD Architecture and Workload Scenario tabs.
    • Click [ RUN SIMULATION ].
    • Use the Graph Manager tree to toggle which metrics to visualize and group them by checking parent nodes.
    • View results in the Console Output and Graphs & Results tabs.

Project Structure

  • main.py: The primary GUI application logic (PySide6).
  • mqsim_core.py: Backend wrapper for MQSim execution and XML generation.
  • workspace/: Temporary directory for generated configurations and simulation results.
  • plugins/: Folder for custom user-defined plugins.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue for feature requests.

Credits & Citation

This studio is a graphical wrapper and analysis suite for MQSim, originally developed by the SAFARI Research Group. If you use this tool in your research, please cite the original MQSim paper:

Arash Tavakkol, Mohammad Sadrosadati, Saugata Ghose, Jeremie Kim, Nicholas Netze, Onur Mutlu, "MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices," in Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST 2018), Oakland, CA, USA, February 2018.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A qt GUI for MQSim

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages