PyMimircache: a Python3 cache analysis platform

Release v0.0.2.103.

Welcome to the documentation of PyMimircache, a Python3 cache analysis platform. The target users of PyMimircache are researchers and system administrators. The goal behind PyMimircache is to provide a platform that

  • allows researchers to study and design cache replacement algorithms easily and efficiently.
  • allows system administrators to analyze and visualize their cache performance easily and efficiently.

The power of PyMimircache:

_images/github_HRC.png _images/github_heatmap1.png

An example of hit ratio curve plot and hit ratio heatmap.

>>> from PyMimircache import Cachecow
>>> c = Cachecow()
>>> c.vscsi("trace.vscsi")      # this file is in the data folder on GitHub, other data types also supported
>>> print(c.stat())
>>> print(c.get_reuse_distance())
[-1 -1 -1 -1 -1 -1 11 7 11 8 8 8 -1 8]
>>> print(c.get_hit_ratio_dict("LRU", cache_size=20))
{0: 0.0, 1: 0.025256428270338627, 2: 0.031684698608964453, ... 20: 0.07794716875087819}
>>> c.plotHRCs(["LRU", "LFU", "Optimal"])
>>> c.heatmap('r', "hit_ratio_start_time_end_time", time_interval=10000000)

Supported Features

  • Cache replacement algorithms simulation.
  • trace visualization.
  • A variety of cache replacement algorithms, including LRU, LFU, MRU, FIFO, Clock, LinuxClock, TEAR, Random, ARC, SLRU, Optimal and etc.
  • Hit/miss ratio curve (HRC/MRC) plotting.
  • Efficient reuse distance calculation for LRU.
  • Heatmap plotting for visualizing cache dynamics.
  • Reuse distance distribution plotting.
  • Cache replacement algorithm comparison.

Customization

Now you can customize PyMimircache to fit your own need. You can write

  • your own cache reader for reading your special cache trace files.
  • your own cache replacement algorithms.
  • a middleware for sampling your cache traces for analysis.

Indices and tables