July 19, 2017 

CSCS offers internships at various levels and in most organizational units. Meet Jakobovits Alice Shoshana, the first female intern at CSCS, who told us her experience:

"This semester, I was lucky to have the opportunity to take a break from the lecture halls of ETH Zurich and spend four months at CSCS as an intern, and what exciting four months they have been!  During my internship, I worked on a library called HPX, a general purpose C++ runtime system for parallel and distributed applications of any scale (https://github.com/STEllAR-GROUP/hpx and http://stellar-group.org/libraries/hpx/).

In the second week of my internship already, I got to take a trip to the HLRS in Stuttgart with my mentor John Biddiscombe, where he was co-teaching a course on HPX with Hartmut Kaiser (the founder of the HPX library) and Thomas Heller (one of HPX’s earliest and steadiest contributors). Amongst PhD students, researchers and people working in industry, I learned the basics of the HPX runtime system and ran my first HPX applications on HLRS‘ Cray, Hazel Hen.

What was even more valuable than the course though, was that I had the opportunity to meet and chat with these key HPX personalities and hear directly from them why they started this library, why they believe in it, and how they envisioned the work was about to start on it.

Back at CSCS, it took me a while before I actually started writing any useful code. Indeed, HPX is a big and intricate library and its parallel execution model is unlike any I had encountered before. Quite some time was needed before I got to coding, and I ended up spending nearly half of my internship doing research: first reading some papers about HPX, then catching up on some notions of C++ and concurrency and finally (and most importantly) reading and mind-mapping the parts of the source code of HPX that I would be working with.

I am very grateful for the time I got to spend on learning and for the beautiful feeling of having contributed to a large library and knowing that my code will be used by people is quite satisfying. But as in many things, this internship was more about the journey than the destination: I gained valuable experience in working with a very large code base, learning how to navigate around it, programming new features for it and of course, in debugging. I also enhanced my know-how in important tools like git and github, Vampir and acquired new skills in C++ programming.

I am now returning to ETH Zurich to complete my Masters in Computational Science and Engineering (CSE), and thanks to this brief but very intense interlude at CSCS I will do so with a very different outlook, knowing what programming in an environment like CSCS  and with libraries like HPX means and with more know-how and more passion".