2014 I/O Scheduling Studies

Introduction

This repository includes some basic experiments that were conducted to determine how computer systems perform when workloads that hit various portions of the cache heirarchy are co-scheduled with each other. The repository includes the code used to conduct the experiments, the datasets generated by the experiments and some of the R scripts used to analyze the data, as well as the results and figures.

Currently, this repository just includes studies using small simple microbenchmarks found in cachebench.

cachebench/

This contains the code used to run the experiments. Code is included for both iOS and Linux. The former can be found in cachebench/ in the form of a hacked up XCode project and includes a separate README that explains what is going on. The latter is in the form of C code in files for each test performed on the memory heirarchy. Compiled binaries are included in both of these directories. In theory, these were the same binaries used in our experiments. In practice, these were the binaries I found on the machine afterward when I put this repository together. I believe they're the same as the ones I ran.

datasets/

This contains the raw output of the runs used to generate data in publications. These include the original outputs saved with the prefixes L1_, L2_, L3_, and MM_ as well as various subsets of the numbers from these files split into flat files starting with desk_ or mobile_. Finally, the datasets_mobile and datasets_desktop files include the datasets as loaded into R for analysis. Files with 1c in the name were run with all but one core disabled. The desktop files were run on an Intel i5 650 processor with two cores, each hyperthreaded and capable of running two tasks at once. The mobile files were run on an Apple A5 processor in a jailbroken iPhone 4S running iOS 7.0.4.

analysis/

This contains the R script used to analyze the data, as well as the stddev and mean results of that analysis, in the form of flat files.

figures/

This contains the resulting figures generated from some of this data in the form of eps files which display graphs.

Tags

  • tag: prerelease - The best effort to tag the correct version of these datasets, scripts and code used for pre-release drafts of publications based on these experiments.

Fidelity

While my hope is that I correctly got the correct versions of the code, datasets and analysis scripts, I can't be sure I did. If something here doesn't make sense, I may have made a mistake. Drop me a line and let's talk.