December 21, 2023 - by CSCS
Could you shortly introduce yourself?
My name is Nathan Cohen. I am technically done with my master's in physics at ETH Zürich, but I decided to stay enrolled for an extra semester to do an internship at CSCS. I want to learn more about and have more experience in computer science and supercomputing.
What fascinates you in the world of supercomputing?
What fascinates me about supercomputing is of course its tremendous computing power, which proves invaluable for simulations, numerical calculations, and data analysis. Moreover, CSCS supercomputers also play a pivotal role in Switzerland as the backbone of weather simulations, climate research, and more generally of all computationally heavy tasks, including strategic developing sectors like artificial intelligence and machine learning.
Additionally, I am deeply impressed by the technological and organisational prowess involved in both the physical aspects — constructing, operating, maintaining, and powering a supercomputer — and the informational aspects, such as software development, computing time allocation, and code optimisation, all aimed at maximising the supercomputer's capabilities.
How did you first hear about CSCS?
I first heard about CSCS at Polymesse the year before I started to apply for my internship. It caught my interest already back then, but I was still unsure about applying or not since my background was very different from what is done here.
Why did you want to intern at CSCS?
I decided to intern at CSCS because I have always been interested in computer science topics, despite never having fully gone into the field. Since I focused most of my studies on theoretical and mathematical physics, I never really had the occasion to learn and experience such topics. Once I obtained all my master's credits, I decided that it was the right time for me to try something new that I knew I would be very interested in, and so I applied for this internship.
What projects have you worked on so far during your internships at CSCS?
In the beginning of my internship, I mostly focused on studying the main high-performance memory allocators that exist and how they worked. This took quite some time, as I needed first to get familiar with the world of computer science and programming. Once this was done, I began benchmarking those allocators, as well as an in-house allocator, and found that it underperformed compared to the publicly available ones.
However, this in-house allocator was much more versatile than usual memory allocators — it could not only allocate memory, but also allow communications and networking as well as GPU memory allocation (all of which are crucial for supercomputing).
So, for the final part of my internship, I designed a new memory allocator based on the design of this in-house one, but I also relied on a high-performance one for allocations to reconcile high-performance and versatility and to have a ready-to-use product for CSCS supercomputers.
How would you describe a regular day as an intern at CSCS?
A regular day would start at 9:00 or 9:30. I would arrive to the office, prepare my desk, make coffee, and start working until the lunch break. In the afternoon I would work until about 18:00, sometimes earlier sometimes later depending on what my plan for the day is. Of course I would have interactions with the other people working at CSCS during coffee or lunch breaks. Throughout the day I would either go see my supervisors to ask them questions or organise spontaneous videocalls if they were working from home on that day.
What will you take home from this experience?
What I would take home is an impressive amount of new knowledge and know-how, an enriching working experience, as well as a broader and clearer view of both the working world (outside a university) as well as the world of computer science and high-performance computing.