A Summer of Learning, Productivity and Fun!!!
The past two months have flown past and boy has it been eventful!!!! I started out this summer having close to zero experience in coding for HPC and now I can proudly say that I have successfully parallelized a research-standard Plasma Kinetic simulation code on my own. That too with wonderful results!!! First, I would like to summarise the results of our work.
Wrap-up of Project 2019
We were tasked with using Graphics Processing Units (GPUs) to speed up particle in cell (PIC) codes, which are used for plasma kinetics simulations. For a sweet, technical summary of the code, I would suggest you to read my colleague Victor‘s blog entry and for a very basic idea of what are GPUs and how GPU coding works, you can go through my previous blog entry. We worked with a simple PIC prototype called SIMPIC and a more full-fledged PIC code called OOPD1. Our task was to achieve speedup of these codes using GPUs and I can confidently state that this objective was achieved. Without going in to much detail, we concluded the following:
- Our GPU version of the code is much faster than the original version.
- More the number of plasma particles, better the speedup. This means we get even better performance for simulating larger and more relevant plasma systems.
- Some parts of the code show best performance in CPU. Hence, a hybrid CPU-GPU version shows best performance overall.
- We used StarPU as a task scheduler which assigns certain parts of the code to the CPU/GPU as tasks.
- Now, our code can be run on any architecture without needing to change code.
We explored the performance of our code even further by using a lot of code visualisation tools like NVIDIA Visual Profiler and the ViTE trace visualizer. We also ran and tested our code on different architectures like the VIZ cluster at our own site (obviously!) and the MARCONI supercomputer in Bologna (the 2nd fastest supercomputer in Europe!) and got very good results.
At the end of the program we had to showcase our outcomes from the project through a video presentation which is available on the SummerofHPC channel on YouTube. You can see our video below where we have presented our results in a more concise, technical manner.
Final Thoughts and Moving Ahead
As I look back now over the past couple of months, I really cannot believe that we could achieve this much without physically being at the project site and in contact with my colleagues and mentor. Of course, I have learnt so much from this program and I will forever be grateful for being selected for this year’s Summer of HPC program. This was my first experience of a research internship and I think I will take forward a lot of positives from this to my future endeavors. Even though this is the official end of my internship, I will however continue to work on this research effort in the LECAD Laboratory where we will try to implement the same things on even bigger, more complex plasma codes. Also, I got to meet a lot of new, wonderful people from various countries through this program. Working together on a common research topic/goal despite our varied cultures will be something that I’ll always cherish. Finally, I would like to thank PRACE for organizing this wonderful program in spite of the various setbacks due to the pandemic situation. Thank you all for also reading my blog posts and hope you enjoyed and learned something from them!!! This is Shyam Mohan signing off!!!