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.
- Details
- Written by Jeff Squyres
- Hits: 30017
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.
- Details
- Written by Jeff Squyres
- Hits: 22119
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...
- Details
- Written by Jeff Squyres
- Hits: 25434
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.
- Details
- Written by Jeff Squyres
- Hits: 21025
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).
- Details
- Written by Jeff Squyres
- Hits: 25767
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.