@misc{bench:polybench,
    title={{PolyBench/C}: The polyhedral benchmark suite, version 4.2},
    author={Louis-No{\"e}l Pouchet and Tomofumi Yuki},
    note={\url{http://polybench.sf.net}},
    year={2016}
}

@inproceedings{bench:spec,
  author    = {James Bucek and
               Klaus{-}Dieter Lange and
               J{\'{o}}akim von Kistowski},
  editor    = {Katinka Wolter and
               William J. Knottenbelt and
               Andr{\'{e}} van Hoorn and
               Manoj Nambiar},
  title     = {{SPEC CPU2017}: Next-Generation Compute Benchmark},
  booktitle = {Companion of the 2018 {ACM/SPEC} International Conference on Performance
               Engineering, {ICPE} 2018},
  pages     = {41--42},
  publisher = {{ACM}},
  month     = {April},
  year      = {2018},
  location  = {Berlin, Germany},
  url       = {https://doi.org/10.1145/3185768.3185771},
  doi       = {10.1145/3185768.3185771},
  timestamp = {Wed, 21 Nov 2018 12:44:17 +0100},
  biburl    = {https://dblp.org/rec/conf/wosp/BucekLK18.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

@inproceedings{carmot,
author = {Deiana, Enrico Armenio and Suchy, Brian and Wilkins, Michael and Homerding, Brian and McMichen, Tommy and Dunajewski, Katarzyna and Dinda, Peter and Hardavellas, Nikos and Campanoni, Simone},
title = {Program State Element Characterization},
year = {2023},
isbn = {9798400701016},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3579990.3580011},
doi = {10.1145/3579990.3580011},
abstract = {Modern programming languages offer abstractions that simplify software development and allow hardware to reach its full potential. These abstractions range from the well-established OpenMP language extensions to newer C++ features like smart pointers. To properly use these abstractions in an existing codebase, programmers must determine how a given source code region interacts with Program State Elements (PSEs) (i.e., the program's variables and memory locations). We call this process Program State Element Characterization (PSEC). Without tool support for PSEC, a programmer's only option is to manually study the entire codebase. We propose a profile-based approach that automates PSEC and provides abstraction recommendations to programmers. Because a profile-based approach incurs an impractical overhead, we introduce the Compiler and Runtime Memory Observation Tool (CARMOT), a PSEC-specific compiler co-designed with a parallel runtime. CARMOT reduces the overhead of PSEC by two orders of magnitude, making PSEC practical. We show that CARMOT's recommendations achieve the same speedup as hand-tuned OpenMP directives and avoid memory leaks with C++ smart pointers. From this, we argue that PSEC tools, such as CARMOT, can provide support for the rich ecosystem of modern programming language abstractions.},
booktitle = {Proceedings of the 21st ACM/IEEE International Symposium on Code Generation and Optimization},
pages = {199–211},
numpages = {13},
keywords = {program characterization, dynamic analysis, code optimization},
location = {Montr\'{e}al, QC, Canada},
series = {CGO 2023}
}

@INPROCEEDINGS{bench:rodinia,
	author={Che, Shuai and Boyer, Michael and Meng, Jiayuan and Tarjan, David and Sheaffer, Jeremy W. and Lee, Sang-Ha and Skadron, Kevin},
	booktitle={2009 IEEE International Symposium on Workload Characterization (IISWC)}, 
	title={Rodinia: A benchmark suite for heterogeneous computing}, 
	year={2009},
	volume={},
	number={},
	pages={44-54},
	doi={10.1109/IISWC.2009.5306797}
}
