Earlier today, I gave a talk entitled “How to Succeed in MPI without really trying” (slides: PPTX, PDF) at the Stanford High Performance Computing Conference. The audience was mostly MPI / HPC users, but with a healthy showing of IT and HPC cluster administrators.
My talk was about trying to make MPI (and parallel computing in general) just a little easier. I tried to point out some common MPI mistakes I’ve seen people make, for example. I also opined about how — in many cases — it’s easier to design parallelism in from the start rather than trying to graft it in to an existing application.
However, one difficulty in trying to explain such concepts is that 30+ years of parallel computing has shown us at there is no silver bullet to enable the perfect parallel application. There is no one-size-fits all that guarantees perfect HPC performance.
And this is exactly one of the most challenging aspects of HPC: it requires creativity. There are a set of common techniques and strategies, but every application is essentially different. Problems need to be solved uniquely. What is good for protein folding may not be good for fluid dynamics or oil and gas simulations.
I always find it refreshing to talk directly to users and hear what they’re trying to do with MPI and the other tools that we provide. It’s both fun and educational to hear how they use our tools in clever and unexpected ways. Sadly, I was only able to spend a few hours and only heard a few application-based talks and talk to a few users, but it was still a nice interlude.
Now back to writing more code!
Thanks to Steve Jones and the other organizers for putting the conference together.