Simone Campanoni

Associate professor
Department of Computer Science at Northwestern University

Simone Campanoni

Computer Science
Northwestern University

ARCANA logo

Welcome!

I am an associate professor at the Computer Science department of Northwestern University where I run the ARCANA logo research lab.
At Northwestern University I am a member of the Systems and Networking group, the Programming Languages group, and the Computer Science and Computer Engineering Departments.

My group is passionate about understanding how abstractions used within and around compilers should evolve to better support hardware and applications trends. This goal often leads us to co-design compilers with the computer architecture and operating system they target as well as with the programming language they translate.

I'm currently on sabbatical working for Google full time.

Search within my website

Recent news

The full list of news can be found here

News


Research: Congratulations to Yian Su for having his paper accepted at
ASPLOS 2024! This work is about a compiler that is capable to automatically generate parallel code that implements the heartbeat scheduling from fork-join parallelism declared in the source code (e.g., with OpenMP). No more hand-writing heartbeat scheduling solutions anymore!

Conference: I'm very happy to have been invited to serve on the ASPLOS program committee for 2025! ASPLOS is a great conference for research that cross hardware/software boundaries. Consider submitting your work!

Research: Congratulations to Celine for having her paper accepted at ICLR 2024! This work is a beautiful integration of large language models and compilers to exploit their relative strengths and overcome their relative weaknesses. I'm very happy about this paper because this is my first collaboration with Celine Lee, Abdulrahman Mahmoud, Michal Kurek, Stephen Chong, and Alexander M. Rush. Also, this is the first work I was involved with my mentors David Brooks and Gu-Yeon Wei since the end of my Post-doc (2015) and I've missed working with them during my pre-tenure journey.

Software: We have released GINO, the first parallelizing compiler that includes DOALL, HELIX, and DSWP parallelization techniques! GINO builds upon NOELLE, which is also open sourced.

Research: Congratulations to Nick Wanninger for having his paper accepted at ASPLOS 2024! This work proposes a compiler-runtime co-design to relocate C/C++ memory objects at run-time using memory handles.

Teaching: Ryan Wong and Ethan Havemann won the competition for the best compiler of the year for the CC class. Ryan and Ethan are now in the Hall of Fame of the class. Congratulations!

Teaching: Slides of the CC class are now up-to-date to the ones used this year. I hope they will help others.

Research: Congratulations to Ishita Chaturvedi for having her paper accepted at ISCA 2024! This work proposes an energy efficient solution to make cores within GPUs Out of Oder.

Conference: I'm very happy to have been invited to serve on the MICRO program committee for 2024! MICRO is a great conference for computer architecture research. Consider submitting your work!

Teaching: The student's evaluation of CC is out! Take a look at them. Thank you to all students that took the time to share their thoughts about this class.

Software: We have released HBC, the first compiler that transforms loop-based nested parallelism into binaries that benefit from heartbeat scheduling. HBC builds upon NOELLE, which is also open sourced.

Teaching: Slides of the ATC class are now up-to-date to the ones used this year. I hope they will help others.

Career: It is official: I'll start my sabbatical this coming September and I will work for Google for one year. I'm very excited about it and I look forward to experience the working environment at Google! If you are at Google and would like to catch up before I start, please reach out. I will be in the Chicago office.

Research: Congratulations to Jeremiah, Ziyang, and the rest of the team for having a new paper accepted at SC 2024! This paper describes a new study, building upon a decade-old survey that explored computational practices among researchers, aims to bridge the gap in understanding between those providing computational resources and the computational researchers.

Group: I'm happy to announce that Riley (Sophia) Boksenbaum will join the ARCANA group as a PhD Student this coming September. Sophia has been part of ARCANA as undergraduate student doing great research in NOELLE and GINO. I look forward to see what she will accomplish as a PhD student!

Software: I'm very happy to announce that myself, Yian, and Federico have completed our work for porting NOELLE (and most of the other codebases built upon it, like Gino) to LLVM 14.1.6 (from LLVM 9.0.0). We started this process 4 months ago, Yian has worked on this goal full-time for the last 2 months, and Federico helped us complete this work by dealing with CMake-related aspects. Also, Ziyang and Yebin handled the porting of the alias analysis engine SCAF from LLVM 9 to LLVM 14.
Porting our codebases from LLVM 9 to LLVM 14 highlighted something interesting. The IR as a language did not change much between these two LLVM versions, but the IR instances generated by the front-ends (e.g., clang) and by the IR optimizers (e.g., licm) changed significantly. The IR generated in LLVM 14 is significantly better (in terms of the amount of redundant computation) than the one generated by LLVM 9. These changes have triggered bugs in NOELLE (and software built upon it) that we were not aware of.
Our work has been to reproduce these bugs in LLVM 9 by adding new regression tests into our codebases, then fix these bugs in LLVM 9, and finally update these code changes (if necessary) to the LLVM 14 version. This process allowed us to maintain (at least) the same level of robustness of NOELLE (and the software built upon it) we had at the beginning of this process. But it was time-consuming and tiring; so I'm glad it's finally over :)
From now on, we will no longer maintain NOELLE (and the rest of our software built upon it) for LLVM 9 (YAY!) We are now officially working on LLVM 14!

Career: I've started my sabbatical working at Google full-time, and I'm loving it! Google is an amazing workplace, full of incredibly smart people with a passion for computer science and engineering. I feel very lucky to have the opportunity to see (and be part of) Google's workplace.

Research: Congratulations to Tommy, David, and the rest of the team for having a new paper accepted at ASPLOS 2025! This paper describes a new approach to save bits for tiny devices by safely speculating on the actual bitwidth needs of program's integer variables. This work was a massive effort from all of us that required almost 6 consecutive years of focus. This work spans architecture simulator extensions (Gem5), ARM ISA extensions, new code and data profilers, new LLVM-based compilers, new NOELLE-based profiler-guided code analyses and transformations, new energy models, and new gate-level simulators. This work also includes the integration with other fundamental software infrastructures including DRAMSim and SimPoint. The entire work has been open-sourced with the hope others can benefit from it.

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

Share this page with: