October 1, 2024 - by CSCS

Could you shortly introduce yourself? 

My name is Lorenzo Varese, and I hold a degree in computer engineering from the Polytechnic University of Turin, where I built a solid foundation in mathematics and low-level programming. I am currently in my final year as a master’s student at Università della Svizzera italiana (USI), specializing in software and data engineering. 

What fascinates you in the world of supercomputing? 

Supercomputing fascinates me because it can solve highly complex problems across various domains, from scientific research to industry applications. The scale and speed at which computations can be executed open the door to innovation and solving challenges that would be impossible with standard computing resources.

How did you first hear about CSCS? 

During my first semester, I took a course in high-performance computing, which introduced me to CSCS. I was immediately drawn to the possibility of interning at such a cutting-edge institution and applied for a summer internship as soon as I could. 

Why did you want to intern at CSCS? 

I have always been interested in programming in fields where performance is critical, such as scientific computing. CSCS offers a unique environment where the emphasis on optimizing performance aligns perfectly with my interest in pushing the limits of computational efficiency. 

What projects have you worked on so far during your internship at CSCS? 

I have been working on enhancing the Julia port of GridTools, a performance-optimized framework designed for weather and climate simulations. My contributions focused on adding a benchmarking suite — similar to the AirspeedVelocity tool in Python — to track performance improvements and regressions over time. Additionally, I integrated GPU support, enabling operations on CUDA arrays in Julia for more efficient computation. 

How would you describe a regular day as an intern at CSCS? 

The office environment is excellent, with high flexibility regarding working hours and location. A typical day starts with preparing my work environment and reviewing the previous day’s progress. I usually have a stand-up meeting with my supervisor to get feedback and advice on the current direction of my work. After that, the majority of my time is spent coding, with the flexibility to take breaks in the coffee room or on the terrace, where I can chat with colleagues working on various projects. The support from senior software engineers makes it a great place for learning and growth. 

What will you take home from this experience? 

This experience has taught me how to handle complex challenges, both in terms of the domain I was working in, such as weather models, and the tools I was learning, like Julia. I’ve learned to embrace these challenges and push forward to find solutions.