Simone Campanoni

Tenure-track assistant professor
Department of Computer Science at Northwestern University

Simone Campanoni

Department of Computer Science
Northwestern University

Publications Publications



MARC: Mining Advantages in non-deteRministic Code

The application landscape is rapidly evolving including more often non-deterministic (e.g., randomized) algorithms. Current compilers ignore whether or not a program being compiled is randomized, leaving important opportunities unexplored. The MARC research project aims to identify and exploit such opportunities.


Selected publications

Lab Ettore M. G. Trainiti, Thanapon Noraset, David Demeter, Doug Downey, and Simone Campanoni
CODE: Compiler-Based Neuron-Aware Ensemble Training
Machine Learning and Systems (MLSys), 2021
PDF
Lab Michael Leonard, and Simone Campanoni
Introducing the Pseudorandom Value Generator Selection in the Compilation Toolchain
International Conference on Code Generation and Optimization (CGO), 2020
PDF BibTeX ACM
Lab Enrico Armenio Deiana, and Simone Campanoni
Workload Characterization of Nondeterministic Programs Parallelized by STATS
International Symposium on Performance Analysis of Systems and Software (ISPASS), 2019
PDF BibTeX IEEE
Lab Enrico Armenio Deiana, Vincent St-Amour, Peter Dinda, Nikos Hardavellas, and Simone Campanoni
Unconventional Parallelization of Nondeterministic Applications.
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2018
PDF BibTeX ACM

Other publications

Lab Enrico Armenio Deiana, Vincent St-Amour, Peter Dinda, Nikos Hardavellas, and Simone Campanoni
The Liberation Day of Nondeterministic Programs
International Conference on Parallel Architectures and Compilation Techniques (PACT), 2017 (short paper).
PDF BibTeX IEEE

Compilers for Shared-Memory Multicores

The multicore revolution in microprocessor architecture has left most programs behind. A program that maps easily to multicore architectures is the exception, not the rule. Our goal is to map virtually all programs to a multicore platform gaining unprecedented performance.


Selected publications

Lab Mike Rainey, Kyle Hale, Ryan Newton, Nikos Hardavellas, Simone Campanoni, Peter Dinda, Umut A. Acar
Task Parallel Assembly Language for Uncompromising Parallelism
International Conference on Programming Language Design and Implementation (PLDI), 2021
PDF BibTeX Artifact: functional
Lab Angelo Matni, Enrico Armenio Deiana, Yian Su, Lukas Gross, Souradip Ghosh, Sotiris Apostolakis, Ziyang Xu, Zujun Tan, Ishita Chaturvedi, David I. August, and Simone Campanoni
NOELLE Offers Empowering LLVM Extensions
ArXiv, 2021
PDF BibTeX arXiv GitHub
Lab Sotiris Apostolakis, Ziyang Xu, Susan Tan, Greg Chan, Simone Campanoni, and David I. August
SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework
International Conference on Programming Language Design and Implementation (PLDI), 2020
Awarded all top ACM Reproducibility Badges offered by the Artifact Evaluation Committee
PDF BibTeX ACM Artifact: available Artifact: reusable Artifact: functional Slides Video Software artifact GitHub
Lab Sotiris Apostolakis, Ziyang Xu, Greg Chan, Simone Campanoni, and David I. August
Perspective: A Sensible Approach to Speculative Automatic Parallelization
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2020
Awarded all top ACM Reproducibility Badges offered by the Artifact Evaluation Committee
PDF BibTeX ACM Video Artifact: available Artifact: reusable
Lab Simone Campanoni, Kevin Brownell, Svilen Kanev, Timothy M. Jones, Gu-Yeon Wei, and David Brooks
Automatically Accelerating Non-Numerical Programs By Extracting Threads with an Architecture-Compiler Co-Design
Communication ACM Research Highlights (CACM), 2017
PDF BibTeX CACM ACM
Lab Niall Murphy, Timothy Jones, Robert Mullins, and Simone Campanoni
Performance Implications of Transient Loop-Carried Data Dependences in Automatically Parallelized Loops
International Conference on Compiler Construction (CC), 2016
PDF BibTeX ACM
Lab Simone Campanoni, Glenn Holloway, Gu-Yeon Wei, and David Brooks
HELIX-UP: Relaxing Program Semantics to Unleash Parallelization
International Conference on Code Generation and Optimization (CGO), 2015
PDF BibTeX ACM
One of four papers nominated for the Best Paper Award by the Program Committee
Lab Simone Campanoni, Kevin Brownell, Svilen Kanev, Timothy M. Jones, Gu-Yeon Wei, and David Brooks
HELIX-RC: An Architecture-Compiler Co-Design for Automatic Parallelization of Irregular Programs
International Symposium on Computer Architecture (ISCA), 2014
PDF BibTeX ACM IEEE
IEEE Micro’s Top Picks in Computer Architecture Conferences honorable mention, 2014 IEEE
Communication ACM Research Highlights (CACM), 2017 ACM
Lab Simone Campanoni, Timothy M. Jones, Glenn Holloway, Gu-Yeon Wei, and David Brooks
HELIX: Making the Extraction of Thread-Level Parallelism Mainstream
IEEE computer Society Digital Library (IEEE Micro), 2012
PDF BibTeX IEEE
Lab Simone Campanoni, Timothy M. Jones, Glenn Holloway, Gu-Yeon Wei, and David Brooks
The HELIX Project: Overview and Directions
Design Automation Conference (DAC), 2012
PDF BibTeX BibTeX
Lab Simone Campanoni, Timothy M. Jones, Glenn Holloway, Vijay Janapa Reddi, Gu-Yeon Wei, and David Brooks
HELIX: Automatic Parallelization of Irregular Programs for Chip Multiprocessing
International Conference on Code Generation and Optimization (CGO), 2012
PDF BibTeX ACM
Lab Simone Campanoni, and Stefano Crespi Reghizzi
Traces of Control-Flow Graphs
International Conference on Developments in Language Theory (DLT), 2009
PDF BibTeX Springer

Other publications

Lab Alessandro A. Nacci, Gianluca C. Durelli, Josue Pagan, Marina Zapater, Matteo Ferroni, Riccardo Cattaneo, Monica Vallejo, Simone Campanoni, Jose Ayala, and Marco D. Santambrogio
Power-Awareness and Smart-Resource Management in Embedded Computing Systems
International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS), 2015
PDF BibTeX ACM IEEE
Lab Khalid Al-Hawaj, Simone Campanoni, Gu-Yeon Wei, and David Brooks
Unified Cache: A Case for LowLatency Communication
International Workshop on Parallelism in Mobile Platforms (PRISM), 2015
PDF
Lab Niall Murphy, Timothy M. Jones, Simone Campanoni, and Robert Mullins
Limits of Static Dependence Analysis for Automatic Parallelization
International Workshop on Compilers for Parallel Computing (CPC), 2015
PDF
Lab Simone Campanoni, Svilen Kanev, Kevin Brownell, Gu-Yeon Wei, and David Brooks
Breaking Cyclic-Multithreading Parallelization with XML Parsing
International Workshop on Parallelism in Mobile Platforms (PRISM), 2014
PDF
Lab Michele Tartara, Stefano Crespi Reghizzi, and Simone Campanoni
Extending Hammocks for Parallelism Detection
Italian Conference on Theoretical Computer Science (ICTCS), 2010
PDF

Patents

Lab Gu-Yeon Wei, David M. Brooks, Simone Campanoni, Kevin M. Brownell, and Svilen Kanev
Methods and apparatus for parallel processing
US Patent US14898894 Patent

Compilers for Sub-Cycle Microarchitecture Activities

Safety margins in conventional architectures are conservative to always avoid computational errors leading to energy inefficiencies. Resilient architectures squeeze these margins to save energy, correcting errors through costly rollback. Co-designed compilers can help resilient architectures to reduce their overhead by adapting the running code to their run-time characteristics


Selected publications

Lab Yuanbo Fan, Simone Campanoni, and Russ Joseph
Time Squeezing for Tiny Devices
International Symposium on Computer Architecture (ISCA), 2019
PDF BibTeX ACM Video
Lab Yuanbo Fan, Tianyu Jia, Jie Gu, Simone Campanoni, and Russ Joseph
Compiler-guided instruction-level clock scheduling for timing speculative processors
Design Automation Conference (DAC), 2018
PDF BibTeX ACM
Lab Vijay Janapa Reddi, Svilen Kanev, Wonyoung Kim, Simone Campanoni, Michael D. Smith, Gu-Yeon Wei, and David Brooks
Voltage Noise in Production Processors
IEEE Micro’s Top Picks in Computer Architecture Conferences, 2011
PDF BibTeX IEEE
Lab Vijay Janapa Reddi, Svilen Kanev, Wonyoung Kim, Simone Campanoni, Michael D. Smith, Gu-Yeon Wei, and David Brooks
Voltage Smoothing: Characterizing and Mitigating Voltage Noise in Production Processors via Software-guided Thread Scheduling
International Symposium on Microarchitecture (MICRO), 2010
PDF BibTeX IEEE
IEEE Micro’s Top Picks in Computer Architecture Conferences, 2011 IEEE
Lab Vijay Janapa Reddi, Simone Campanoni, Meeta S. Gupta, Kim Hazelwood, Michael D. Smith, Gu-Yeon Wei, and David Brooks
Eliminating Voltage Emergencies via Software-Guided Code Transformation
ACM Transactions on Architecture and Code Optimization (TACO), 2010
PDF BibTeX ACM
Lab Vijay Janapa Reddi, Simone Campanoni, Meeta S. Gupta, Michael D. Smith, Gu-Yeon Wei, and David Brooks
Software-Assisted Hardware Reliability: Abstracting Circuit-level Challenges to the Software Stack
Design Automation Conference (DAC), 2009
PDF BibTeX ACM BibTeX

Other publications

Lab Vijay Janapa Reddi, Meeta S. Gupta, Krishna K. Rangan, Simone Campanoni, Glenn Holloway, Michael D. Smith, Gu-Yeon Wei, and David Brooks
Voltage Noise: Why It’s Bad, and What To Do About It
International Workshop on Silicon Errors in Logic - System Effects (SELSE), 2009
PDF BibTeX

The power of modern compilers for the hardware-software stack

Modern compilers are more powerful than what they are currently used for. This research direction shows how modern compilers create opportunities to reconsider the abstractions used between the layers of the hardware-software stack. Changing such abstractions generates important benefits compared to how we have been designing systems.


Selected publications

Lab Souradip Ghosh, Michael Cuevas, Simone Campanoni, and Peter Dinda
Compiler-based Timing For Extremely Fine-grain Preemptive Parallelism
Super Computing (SC), 2020
PDF BibTeX ACM IEEE
Lab Brian Suchy, Simone Campanoni, Nikos Hardavellas, Peter Dinda
CARAT: A Case for Virtual Memory through Compiler- And Runtime-based Address Translation
International Conference on Programming Language Design and Implementation (PLDI), 2020
PDF BibTeX ACM

Bytecode Virtual Machines

Virtual machines designed to execute bytecode programs are everywhere. The most successful and widely-adopted examples are Java and .NET. Browsers are virtual machines as well thanks to their ability to run programs written in multiple languages (e.g., JavaScript). A bytecode virtual machine usually includes several components. Code generators, code optimizers, garbage collectors, execution engine, and profilers are the most common ones. Understanding interactions of these components allows them to be co-designed, which open interesting optimization opportunities.


Selected publications

Lab Simone Campanoni
Guide to ILDJIT
Book from Springer, 2011, ISBN: 978-1-4471-2193-0
BibTeX Springer
Lab Simone Campanoni, Giovanni Agosta, Stefano Crespi Reghizzi, and Andrea Di Biagio
A highly flexible, parallel virtual machine: design and experience of ILDJIT
Software: Practice and Experience (SPE), 2010
PDF BibTeX GitHub
Lab Simone Campanoni, Martino Sykora, Giovanni Agosta, and Stefano Crespi Reghizzi
Dynamic Look Ahead Compilation: a technique to hide JIT compilation latencies in multicore environment
International Conference on Compiler Construction (CC), 2009
PDF BibTeX BibTeX ACM

Other publications

Lab Simone Campanoni, and Luca Rocchini
Static Memory Management within Bytecode Languages on Multicore Systems
Workshop on Computing in Heterogeneous, Autonomous ’N’ Goal-oriented Environments (CHANGE), 2011
PDF BibTeX
Lab Michele Tartara, Simone Campanoni, Giovanni Agosta, and Stefano Crespi Reghizzi
Parallelism and Retargetability in the ILDJIT Dynamic Compiler
Architecture of Computing Systems (ARCS), 2010
PDF BibTeX IEEE
Lab Simone Campanoni, Giovanni Agosta, and Stefano Crespi Reghizzi
A parallel dynamic compiler for CIL bytecode
ACM SIGPLAN Notices, 2008
PDF BibTeX ACM
Lab Simone Campanoni, Giovanni Agosta, and Stefano Crespi Reghizzi
ILDJIT: a Parallel Dynamic Compiler
International Conference on Very Large Scale Integration (VLSI-SoC), 2008
PDF

Others

Here you can find research we did in past projects.


Selected publications

Lab Georgios Tziantzioulis, Nikos Hardavellas, and Simone Campanoni
Temporal Approximate Function Memoization
IEEE Micro's special issue on Approximate Computing, 2018
PDF BibTeX IEEE
Lab Filippo Sironi, Davide B. Bartolini, Simone Campanoni, Fabio Cancare, Henry Hoffmann, Donatella Sciuto, and Marco D. Santambrogio
Metronome: Operating System Level Performance Management via Self-Adaptive Computing
Design Automation Conference (DAC), 2012
PDF BibTeX ACM BibTeX

External links:
LinkedIn profile LinkedIn Follow SimoneCampanoni on Twitter Twitter GitHub profile GitHub

Share this page with: