technion-csl / mosmodel

GNU General Public License v3.0
0 stars 4 forks source link

Introduction

Mosmodel is primarily useful for architectural virtual memory studies. It allows researchers to construct mathematical models that predict the runtime of applications from their virtual memory performance (e.g., the L1/L2 TLB miss rate and the latency of page table walks). Such models are a key component in the partial simulation methodology, which architects use to predict the performance of a newly proposed virtual memory design. Mosmodel is built on top of Mosalloc, a new memory allocator for hugepages. This repo is fully automated and contains all required tools (including Mosalloc) to produce the Mosmodel for any workload on any x86-64 Linux system.

More details about Mosmodel and Mosalloc can be found in the MICRO'20 paper: "Predicting execution times with partial simulations in virtual memory research: why and how" by Mohammad Agbarya, Idan Yaniv, Jayneel Gandhi, Dan Tsafrir

Quick Start

Simply clone this repo, enter the repo directory, and run make. This will produce Mosmodel for the toy benchmark (random access over a 1GB array, takes ~15 seconds) provided in the repo.

Software Prerequisites

Hardware Prerequisites

Setup and Configuration

Before you start building and running Mosmodel, you need to set and configure the following:

Mosmodel Directory Structure

Limitations (Future Work)