MPI
Want to write programs for a cluster? Here is your chance. MPI implementer and cluster workhorse Jeff Squyres guides you through the nuances of writing MPI programs with a set of outstanding tutorials. Unlike other MPI tutorials, Jeff addresses cluster issues and optimizations. Just dive in, you don't even need a cluster to get started.
MPI: The Spawn of MPI
- Published on Sunday, 09 April 2006 15:00
- Written by Jeff Squyres
- Hits: 9277
There once was a man from Nantucket
Whose PVM code kicked the bucket
He ranted and raved
"Oh what can I save?"
Then he re-wrote his application MPI and used MPI_COMM_SPAWN and his life became fundamentally better.
MPI: The Top Ten Mistakes to Avoid (Part 1)
- Published on Thursday, 02 February 2006 14:00
- Written by Jeff Squyres
- Hits: 6225
In Parallel, Everyone Hears You Scream
Parallel coding
Mysteries of MPI
Truly, life enow.
This, ladies and gentlemen, is what happens when a classical education collides with righteous code.
So now you think you know MPI. We've covered a lot of ground in this column, including the MPI basics, startup and shutdown, collective operations, communicators and groups, and we just spent two fantastic columns on datatypes (really, is there anything better?). This column, we'll start my Top-10, All-Time Favorite Evils To Avoid In Parallel. It's so big that it'll take two columns to cover.
Many of these are common mistakes that either befuddle users or subtly cause performance degradation (and sometimes go unnoticed). Some of them are easy to explain, some are just due to how MPI implementations are typically crafted on the inside. Some have to do with running MPI programs, others have to do with writing them. It's a motley collection. From the home office in Bloomington, IN, let's start with number 10...
MPI: Debugging in Parallel (in Parallel)
- Published on Thursday, 30 March 2006 14:00
- Written by Jeff Squyres
- Hits: 6868
Multi-legged bugs are the best
This spake the master programmer: "Though a program be but three lines long, someday it will have to be maintained." While you ponder this thought have a look at some MPI debugging examples in the second part of our MPI debugging column.
MPI: Debugging -- Can You Hear Me Now?
- Published on Sunday, 19 March 2006 14:00
- Written by Jeff Squyres
- Hits: 6656
In the unlikely event that your code has a bug or two
It's been said that if debugging is the process of removing bugs from a program, then programming must be the process of putting them in. Although I don't personally write bugs (ahem), I understand from others that they can be quite difficult to track down and fix. My personal recommendation is to avoid writing them in the first place; steer clear of popular assembler instruction such as "BFM" (branch on full moon), "WTR" (write to random), and "MM" (more magic).
MPI: More Joys of Asynchronous Communication
- Published on Sunday, 05 March 2006 14:00
- Written by Jeff Squyres
- Hits: 7134
To block or not to block, that is the question, read the following while I work on my answer
Last month we started discussing non-blocking communication (get it?). We covered the basic non-blocking (or immediate) send and receive functions - all of which start a communication - and touched on their various flavors. We also discussed the TEST and WAIT functions, and how they are used to complete communications.
More Articles...
- MPI: The Joys of Asynchronous Communication
- MPI: The Top Ten Mistakes to Avoid (Part 2)
- MPI: Return of the MPI Datatypes
- MPI: How to Succeed in Datatypes Without Really Trying
- MPI: Groups and Communicators
- MPI: Zen and the Art of MPI Collectives
- MPI: What Really Happens During MPI_INIT?
- MPI: Processes, Processors, and MPI, Oh My!

