NECSTSpecial Talk - Evolving abstractions within and around compilers to support modern hardware and application trends
NECSTSpecial Talk
Prof. Simone Campanoni
Northwestern University
DEIB - NECSTLab Meeting Room (Building 20)
On Line via Facebook
April 5th, 2023
2.30 pm
Contacts:
Marco Santambrogio
Research Line:
System architectures
Prof. Simone Campanoni
Northwestern University
DEIB - NECSTLab Meeting Room (Building 20)
On Line via Facebook
April 5th, 2023
2.30 pm
Contacts:
Marco Santambrogio
Research Line:
System architectures
Abstract
On April 5th, 2023 at 2.30 pm, a new appointment of NECSTSpecialTalk titled "Evolving abstractions within and around compilers to support modern hardware and application trends" will be held by Simone Campanoni, Tenure-track Assistant Professor at the Computer Science department of Northwestern University in DEIB NECSTLab Meeting Room.
Together with my group and collaborators, I investigate novel code generation schemes empowered by new abstractions to improve compilers and impact innovation in both computing and other domains. Compilers are used everywhere by everyone to build all software. Scientific discovery, engineering, machine learning, mobile systems, and robotics are just a few examples where generating high performance machine code automatically is essential to achieving fast software innovation. For example, scientific discovery often relies on software simulators, which have become the eyes of scientists. The faster simulators go, the more precise the simulation can be or the more simulated time can be observed. Mobile systems are another example: rendering web pages needs to be fast and energy efficient. These characteristics enable the responsiveness and appeal we enjoy on our smartphones while not taking a toll on battery lifetime. Beyond performance, software development needs to meet the demands of portability, reliability, security, correctness, new features, and time-to-market. Meeting these demands requires high-level programming languages that often lead to inefficiencies due to the mismatch between the generated code and the underlying hardware execution model. Developers have to constantly face and deal with this mismatch. The status quo forces programmers to either reduce innovation to meet development demands or invest time to reimplement parts of the software at the low level. Independent of the choice made, innovation slows. By automatically generating high performance machine code, compilers have the potential to accelerate software innovation and benefit society as a whole. Our research tackles the problem of automatically generating high performance machine code by focusing on two questions: What are the compilation techniques that can erase the mismatch between software and hardware execution? What are the hardware and software abstractions that enable such compilation techniques to reach their full potential? In this talk, I will answer these questions for the most dominant computer architectures we have today from the ultra low power architectures that power smart devices to the performance-aggressive CPUs that power servers.
Together with my group and collaborators, I investigate novel code generation schemes empowered by new abstractions to improve compilers and impact innovation in both computing and other domains. Compilers are used everywhere by everyone to build all software. Scientific discovery, engineering, machine learning, mobile systems, and robotics are just a few examples where generating high performance machine code automatically is essential to achieving fast software innovation. For example, scientific discovery often relies on software simulators, which have become the eyes of scientists. The faster simulators go, the more precise the simulation can be or the more simulated time can be observed. Mobile systems are another example: rendering web pages needs to be fast and energy efficient. These characteristics enable the responsiveness and appeal we enjoy on our smartphones while not taking a toll on battery lifetime. Beyond performance, software development needs to meet the demands of portability, reliability, security, correctness, new features, and time-to-market. Meeting these demands requires high-level programming languages that often lead to inefficiencies due to the mismatch between the generated code and the underlying hardware execution model. Developers have to constantly face and deal with this mismatch. The status quo forces programmers to either reduce innovation to meet development demands or invest time to reimplement parts of the software at the low level. Independent of the choice made, innovation slows. By automatically generating high performance machine code, compilers have the potential to accelerate software innovation and benefit society as a whole. Our research tackles the problem of automatically generating high performance machine code by focusing on two questions: What are the compilation techniques that can erase the mismatch between software and hardware execution? What are the hardware and software abstractions that enable such compilation techniques to reach their full potential? In this talk, I will answer these questions for the most dominant computer architectures we have today from the ultra low power architectures that power smart devices to the performance-aggressive CPUs that power servers.
Short Bio
Simone Campanoni is a tenure-track assistant professor at the Computer Science department of Northwestern University where he runs the ARCANA research lab. Simone's main research area is compilers, with special interest in its relation with computer architecture, runtime systems, operating systems, and programming languages. In more detail, Simone and his research group are passionate about understanding how abstractions used within and around compilers should evolve to better support hardware and applications trends. Hardware constantly evolves to smooth out challenges coming from the materials used. For example, the slowdown of CMOS technology scaling and the increase in power consumption forced hardware to first evolve to multicore chips and then to heterogeneous multi-cores. Abstractions at the compiler boundaries with programming languages, operating systems, and computer architecture need to evolve to properly support these new platforms. Moreover, abstractions used within compilers also need to evolve to better optimize applications that need to run on such platforms. This goal often leads Simone's group to co-design compilers with the computer architecture and operating system they target as well as with the programming language they translate.
The event will be held online by Facebook.
The event will be held online by Facebook.