The Wonderful Reaction between Python and AMD EPYC – Let’s Begin!
What’s in summer? The heat, the noise of insects, the ice cream… and programming! I am honored to attend such a wonderful summer HPC party!
The first is a self-introduction
Ciao! My name is Jiahua Zhao, 22 years old, from China. Since 2016, I have been studying for a bachelor degree in oceanography at the Southern University of Science and Technology (SUSTech) in Shenzhen, China. After completing my bachelor degree in 2020, I came to Italy for studying. At present, I am studying for a master degree in geophysics at the University of Padova (UniPD), majoring in computational specialization, and mainly use Python/MATLAB/Fortran as programming languages. I am fascinated by computational seismology and geodynamics, and I am interested in applying HPC/AI to solve the problems of my studying field. In order to improve my programming ability, I also like to accept programming challenges very much. During my undergraduate years, I often participated in some hackathon and supercomputer competitions. The best experience was to participate in ASC Student Supercomputer Challenge (ASC, the world’s largest supercomputer hackathon) with my team in 2019, and won the First Prize and Application Innovation in the final. Last fall, I learned about PRACE Summer Of HPC in an activity promotion, so I made active preparations, registration and finally got the rare opportunity.
Then share my summer project
The project I participated in was 2115: Performance of Parallel Python Programs on ARCHER2, which was provided by EPCC of the University of Edinburgh, under the guidance of Dr. David Henty and Dr. Mario Antonioletti. Briefly, the project is to simulate the fluid flow in the cavity by computational fluid dynamics (CFD), solve the PDE by using the finite difference method and Jacobi algorithm, and finally obtain the velocity field of the fluid. The specific mathematical principles and parallel strategies will be introduced in my future posts. In the next two months, my partner Alejandro Dinkelberg and I will optimize the existing Python serial code on Supercomputer ARCHER2, as well as perform performance tests and optimizations on the original C and Fortran serial/parallel code on ARCHER2. In addition, ARCHER2 is the new UK HPC National Tier-1 supercomputer, which is an HPE Cray EX supercomputing system with 5,848 compute nodes, and each compute node has dual AMD EPYC Zen2 (Rome) 64 core CPUs, giving ~750,000 cores in total (more details: https://www.archer2.ac.uk/).
Finally talk about my choice and expectation
The reason why I choose this project is that I am very eager to learn the advanced usage of Python, especially the application implementation on supercomputers. I often use Python to deal with problems in geophysics. These problems (such as forward and inverse calculation, cross-correlation calculation of a large amount of seismic data, etc.) often require more CPU computing resources. Therefore, I paid attention to the content of Python HPC, and hope to apply some skills of Python HPC to the field of geophysics. In addition, I am interested in the architecture and computing performance of different hardware platforms. I have been exposed to Intel Xeon Scalable platform before, and I also heard that AMD EPYC has potential powerful computation ability, so I am willing to explore the performance of Python on AMD EPYC platform (desiring the wonderful reaction between Python and AMD EPYC). More importantly, geodynamics involves many problems of continuum mechanics. In the past course of numerical simulation, I have not studied the numerical methods for high performance computing. Therefore, this project is a very good opportunity for me to learn the parallel strategies of solving PDE in continuum mechanics, and I hope this summer experience can be enlightening for my future scientific research.
In the end
I would like to express my gratitude to Dr. Leon Kos and researchers from the University of Ljubljana and Irish Centre for High-End Computing for the online training courses. I learned a lot in the training week, especially the optimization of Python and parallel programming with MPI. In addition, I was honored to work with such a renowned organization in the field of HPC as EPCC over the summer. Although the COVID-19 prevented us from meeting each other on site, such a scene could not dampen our enthusiasm. What are you waiting for? Let’s get started! I wish everyone can harvest what they want:)