n-bodies: implementing a parallel solution in Intel TBB

Hrrrumph! I’m not sure I’m cut out for this blogging business, which I hear now is becoming passé anyway. Twitter has become all the rage. I’m too much a Luddite to even conceive of a meaningful technical discussion in blots of 140 characters or less. TwitterTech? Nah!

And I think I have a one-track mind-single threaded, wired so in the wetware! ;-)  I get immersed in subjects that become consumptive. So it’s been many months since I’ve had a chance to reflect on my work or find an opportunity to talk about something that’s not customer confidential.

Back in April on the Intel Threading Building Blocks forum dreamthtr started a thread about trouble encountered trying to make a parallel version of the n-body gravitational dynamics problem. In the course of that dialog, Matteo Frigo over at Cilk Arts blogged a post about novel algorithm for managing the interaction process between the n bodies. At the time, I commented that I thought I could implement the same algorithm using the new parallel_invoke that had appeared in a recent open source release of TBB.

Little did I know how new that new feature was, or the hoops I would eventually surmount to deliver on that hunch. Things have finally started to come together, though, and coincident with the release of Intel Parallel Studio and the soon-to-be-unveiled Intel® Threading Building Blocks 2.2 release.

I want to thank Matteo for sharing the algorithm, which has revealed some stunning features in my experiments using TBB and Intel Parallel Studio to implement and tune it. Since dreamthtr started with a 2D cut of the problem and Matteo fully described his algorithm expressed in Cilk (naturally), I figured I’d take it a step deeper and go 3D with a ballistic stage, and turn it into a tutorial sequence where I try to show my design process integrated with the use of Intel Parallel Studio tools.

So hopefully this will be the first of a sequence of small narrations about the process, the problems and how I overcame them. It may be intermittent-I have a couple of weeks of vacation soon-but I think it’s an interesting story and one that I’ll enjoy writing about. I hope you’ll enjoy them as much as I will.

It starts here.

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.