Tying up loose ends
It’s hard to believe that I have less than a week left here in Luxembourg. The past few days have been quite busy between filming my presentation, working on my final report, tidying up my code, and fleshing out the documentation but, despite being kept busy, it’s hard not to feel strange about the fact that Summer of HPC is almost over. However, I have been able to make a reasonable amount of progress on my main progress. A number of additional experiments have been run to build on the results described in my last post. Many of these have been examining whether my previous findings are also valid when using CPUs instead of GPUs for training (short answer: they are but everything is quite a bit slower). I’ve also been able add support for another framework, namely MXNet, to my code, although it doesn’t seem to want to run on more than one node at the moment. However, as my final report will be available on this site soon, I thought I would take this opportunity to review what I have learned over the past two months and encourage anyone who wants to read about all the technical details to have a look at that when it’s available.
Over the course of the last two months I that I have gained a relatively large amount of experience in deep learning. This is an area which I had a small amount of prior knowledge of, but I feel that the chance to spend a summer working on one substantial project and apply my knowledge on a machine that was far more powerful than a standard laptop was extremely beneficial in allowing me to become more experienced in what is becoming a very important topic. I also feel that I am becoming more proficient with the most common software packages used in this area. Indeed, the fact that my project was based around comparing different frameworks means that I now have at least some experience in a lot of the libraries used in the field. This might be helpful, given that machine learning will probably feature quite a bit in the master’s program I’m starting in less than two weeks.
I also feel that I learned a lot about HPC in general this summer. While the training week in Bologna now seems like a long time ago, the tutorials in MPI and OpenMP, among other topics, were very interesting and informative and I plan to keep practicing and build on my knowledge of this material for any future HPC related projects I may undertake. Working on my project has also helped me to become familiar with the SLURM scheduler and generally get used to thinking about how simple pieces of code have to be adapted to work on a large scale. It’s also quite hard to spend two months developing code on a cluster without picking up a few new Linux and vim keyboard shortcuts. Overall, I feel that my knowledge of HPC has improved substantially this summer and I look forward to any opportunities that may arise to use what I have learned in the future.
Over the past eight weeks, I have had a number of opportunities to explore Luxembourg city, which is a very pleasant place to wander around, with many events happening over the summer. I also had the chance to go on two daytrips to neighbouring countries. The first was to Trier, the oldest city in Germany, birthplace of Karl Marx and home to an impressive amount of Roman ruins for somewhere this far North. The second was to Metz in France, another extremely old town with an extremely large cathedral as well as an impressive modern art gallery. Both trips were very enjoyable and, in general, I felt that this summer was a great opportunity to spend some time in an area which is not exactly a standard tourist destination.
In our last full weekend in the country, Matteo and I spent the in Echternach, near the border with Germany waking part of the Mullerthal trail, Luxembourg’s main hiking route. We only managed to do a small section of the trail, which is over 100km long in total, but it was still a very good way to relax and enjoy the good weather after a busy week sorting out some of the final details of our projects.