I’ve seen many users make lots of different kinds of MPI programming mistakes.
Some are common, newbie types of mistakes. Others are common intermediate-level mistakes. Others are incredibly subtle programming mistakes in deep logic that took sophisticated debugging tools to figure out (race conditions, memory overflowing, etc.).
In 2007, I wrote a pair of magazine columns listing 10 common MPI programming mistakes (see this PDF for part 1 and this PDF for part 2). Indeed, we still see users asking about some of these mistakes on the Open MPI user’s mailing list.
What mistakes do you see your users making with MPI? How can we — the MPI community — better educate users to avoid these kinds of common mistakes? Post your thoughts in the comments.