Thursday, June 28, 2012

Playing with OpenMP in my research

The core simulation code our research group has been using for the last two decades has remained relatively static, with the only major increases in speed coming from running it on faster processors.  A few MPI implementations of it have been made by graduate students and postdocs over the years, but for whatever reason, none were trustworthy enough to remain in use and we researchers are always falling back to serial implementations.

I've half-heartedly tried to parallelize our code with OpenMP several times over the last five years; OpenMP was my API of choice because the shared memory paradigm doesn't (necessarily) require major restructuring of the code like distributed memory parallelism does.  I'd never really had luck achieving any noticeable speedup despite my various attempts to parallelize our code with the minimal effort that OpenMP advertises, so I hadn't really invested a great deal of time into the parallelization effort in the last two years or so.

However, when the IBM guys were at the university to train us on the Blue Gene/P, the topic of OpenMP briefly came up since Blue Gene/P can utilize four-way SMP within nodes.  When I say "briefly," though, I should clarify that although little time was spent discussing it, the IBM researchers somehow dispelled all my uncertainties with using OpenMP, and it became clear to me what I should do to get it to accelerate my applications.  With this new-found clarity, I was quickly able to parallelize one of my most time-intensive analysis routines, and the prospect of multithreading our core simulation code has remained in the back of my mind.

Tuesday, June 12, 2012

Blue Gene/P First Impressions - Hardware

The institution at which I work recently acquired a Blue Gene/P (BG/P) system as the first of three phases of building an advanced supercomputing center here, and as a computationalist in materials science, I've been given the opportunity to attend a three-day crash course on using it.

Getting access to a BG/P in itself is pretty exciting--having an account (albeit a temporary evaluation one) is like being a kid in a candy store.  I've become quite the computer nerd over the last decade, but although I am a professional computationalist, my work is done entirely on commodity hardware.  I've never had access to anything as exotic as BG/P, and I've certainly never had the opportunity to be taught how such a machine is designed by the people who developed it.  The guys that IBM sent to conduct this course really know their stuff and speak a language I don't often get to hear, so I've been trying to soak up as much as I can in the three days they're here.

So here are my first impressions.