Skip to content

Primo: Practical Learning-Augmented Systems with Interpretable Models

License

Notifications You must be signed in to change notification settings

S-Lab-System-Group/Primo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

    ____       _               
   / __ \_____(_)___ ___  ____ 
  / /_/ / ___/ / __ `__ \/ __ \
 / ____/ /  / / / / / / / /_/ /
/_/   /_/  /_/_/ /_/ /_/\____/ 
                   

Primo

Primo is a unified framework that assists developers to design practical learning-augmented systems with interpretable models. To learn more about how Primo works, please refer our ATC '22 paper.

Installation

pip install pyprimo

Artifacts

This folder contains the artifact for the ATC paper. Specifically, we provide the Primo implementation for each case study (Section 4: LinnOS, Section 5: Clara, Section 6: Pensieve):

System Scenario ML Algorithm Offical Repo
LinnOS (OSDI '20) Flash Storage I/O DNN LinnOS Code
Clara (SOSP '21) SmartNIC Offloading Mixture(LSTM, GBDT, SVM) Clara Code
Pensieve (SIGCOMM '17) Adaptive Video Streaming RL Pensieve Code

You can use these scripts to learn how to leverage Primo model in different system scenarios and reproduce the results presented in our paper.

Acknowledgements

Primo build on top of many great open-source repositories, including

interpret | scikit-learn | scikit-optimize | viper

Citation

@inproceedings{Primo,
  title     = {Primo: Practical Learning-Augmented Systems with Interpretable Models},
  author    = {Qinghao Hu and Harsha Nori and Peng Sun and Yonggang Wen and Tianwei Zhang},
  booktitle = {2022 {USENIX} Annual Technical Conference},
  publisher = {{USENIX} Association},
  year      = {2022},
  series    = {{USENIX} {ATC} '22}
}