Federico Sossai


View My GitHub Profile

Hello! My name is Federico Sossai, I am a PhD student at Northwestern University.


At the moment I’m working on optimizing and parallelizing compilers advised by Simone Campanoni.

Complexity of modern computer systems has grown significantly in the last decade. The combination of CPUs, GPUs and various accelerators raises the level of skills necessary to develop efficient parallel programs. In fact, to achieve high performance and scalability, the implementation of core algorithms often takes advantage of the underlying physical architecture through the use of vendor-specific tools, resulting in a lack of cross-architecture portability. Moreover, architecture-aware implementations can distract programmers from the gist of their algorithms and can harm both maintainability and performance portability. I believe that compilers play a fundamental role in bridging the gap between programmers’ intentions and tedious implementation details. In my research path I would like to investigate the following questions:

  1. How can compilers generate efficient code for parallel systems without requiring developers to write complicated or non-maintainable code?
  2. How can we reduce the performance gap between hand-tuned and compiler-generated code?
  3. How much parallelism can a compiler extract from sequential code?
  4. Is it possible to take away the burden of explicit parallel directives by means of higher level abstractions?

About Me

My passion for computers began early in my life: in middle school my strong aptitude for programming started emerging, eventually guiding me towards university, where I found out how much I love to study computer science, think of new ideas and tackle challenging problems. At the University of Padova, Italy, I earned a solid mathematical background (calculus, linear algebra, discrete math, probability theory with applications) and I bolstered my skills in the analysis of divide-and-conquer algorithms, greedy and dynamic programming approaches. During my Master’s years I really enjoyed reasoning about approximation and randomization techniques applied to NP- Hard problems together with designing effective heuristics. Now I feel confident with C++, C, Python, Linux scripting and I am familiar with Fortran, C# and Java. I’m planning on learning Rust in the near future.


Mudd Hall, Room 3304

2233 Tech Drive,

Evanston, IL 60208

federicosossai2029 [at] u [dot] northwestern [dot] edu