Faces of HPC: Nguyen Anh Khoa Doan
Anh Khoa is a Ph.D candidate at the University of Cambridge where he is investigating turbulent flows. His work, using ARCHER, the UK National Supercomputer, recently won him one of the UK-USA travel grants awarded for outstanding work using ARCHER to early career scientists in the UK to help build UK/US collaborations.
For Anh Khoa, HPC is a tool to help him understand more of the physical world. An Aerospace Engineer by training his work involves writing parallel software for the analysis. He has been interested in parallel programming and algorithms since exposure to the concepts during his first degree.
Tell us a bit about yourself .
I was born in Belgium, from Vietnamese parents. I’ve lived in Brussels for most of my life and studied there for my Bachelor in Electromechanical Engineering. I then moved to Toulouse to pursue a Master in Aerospace Engineering. After that, I spent a short time in Paris, working for Airbus Group Innovations before moving to Cambridge to start a PhD in Turbulent Reacting Flows.
Outside of work, I mostly read, play the mandolin or the violin, hike and go climbing. And I also really enjoy cooking.
What is your current job? Describe what you do in HPC.
I am currently a PhD student in Cambridge. For my PhD, I perform simulations of turbulent reacting flows which are basically turbulent flows where you have chemical reactions like in the combustors of engines or gas turbines. To perform these simulations, I develop code and run the simulations on HPC. The aim of my PhD is to gather physical insights from these simulations to develop reliable simplified models of combustors. So in the end, HPC was a fundamental tool I needed to learn for my research.
How did you become interested in HPC? Briefly describe your path into HPC.
My path towards HPC has been quite straightforward. First, at the beginning of my studies during my BSc, I became really interested in the algorithm and programming courses. After that, I started developing an interest in turbulence and fluid dynamics. And the combination of both is a field called Computational Fluid Dynamics (CFD) which is the numerical simulations of flows. CFD has quite a long history now (as early as 1940s) and the use of HPC for CFD is nowadays really common. So that’s how I ended up in HPC.
As part of this project we want to celebrate the diversity of HPC, in particular to promote equality across the nine “protected” characteristics of the UK Equality Act, which are replicated in world-wide equality legislation.
I have been lucky enough not to encounter much discrimination – but then again, I come from a group which is already largely represented in STEM. Obviously, diversity is important and it would be great if the HPC community was more diverse both in terms of gender and minority representation. But I think there are slow improvements in the field as we see more and more people in HPC from underrepresented communities.
Is there something about you that’s given you a unique or creative approach to what you do?
I think that I’ve had the opportunity to be both on the user side and developer side of parallel codes for CFD, both for academic and industrial purposes. And that has given me a dual perspective when I perform my simulations and more than that when I develop models because using HPC is great to look at purely academic problems but sometimes, it’s important to keep in mind the actual potential use for the industrial community at the end of it. And that is reflected in the kind of model I try to develop and the kind of simulations I run.
Were there any challenges when you first entered the field?
There are many challenges when making the jump from coding for a normal computer to coding for HPC. In particular, I had to pay much more attention to how to structure the code and always keep in mind that the “easiest way for me to perform something” is not the best in terms of parallelization. Good programming practices become much more important as the complexity of code improves a lot. So well, now this is something that I try to keep in mind when coding and it’s quite difficult because my main background remains as a fluid dynamicist and not really a computer scientist.
What’s the best thing about working in HPC?
I think one of the best thing about working in HPC is that you develop skills which are transferrable to so many different fields. HPC is used by so many various scientific communities and it’s possible to move from one to another with your set of skills.
And well, there’s always the fact that it’s just cool to be able to use some of the most powerful computers.
If there’s one thing about HPC you could change, what would it be?
I am not entirely sure. HPC changes at such a fast pace that it’s sometimes hard to keep track of all the changes. Especially as the architecture change, as a non-computer scientists, it becomes more and more difficult to adapt my code to be able to make use of these advances. So maybe if there could be even more synergies between the physicists and computer scientists to develop more efficient code (and also with better programming practice).
What’s next for you in HPC – where does your career lead you?
I would like to stay in academia after my PhD but have no clear plans yet. Hopefully, I will be able to continue working in this field.