Cisco Blogs

Cisco Blog > High Performance Computing Networking

Which to use: tags or communicators?

A common question from new MPI developers is: which should I use to separate my messages — tags or communicators?

If you didn’t already know MPI offers two key abstractions for message passing:

  • Message delineation.  If you’re a TCP sockets programmer, you’re used to receiving streams of bytes.  For example, if you try to receive 32 bytes, you might receive 17 bytes, meaning that you have to loop around and try again to receive the remaining 15 bytes.  MPI doesn’t have streams; MPI only has atomic messages.  For example, if you send 16 integers, the receiver will receive 16 integers (not 15 integers, not 17 bytes — they’ll receive the entire 16 integers all at once).
  • Message separation.  As mentioned in the first sentence, MPI offers two key mechanisms for separating messages: tags and communicators.  We’ll dive into both in this blog post; I’ll explain the differences and when you might want to use one over the other.

Read More »

Tags: ,

MPI-3.0 Draft 2 public comment period

Dear MPI user,

The MPI-Forum is about to ratify the MPI-3.0, a new version of the MPI standard.  As part of this process, we are soliciting feedback on the current draft standard.  The draft document can be found here:

We are seeking the following feedback in particular:

  • Small requests/corrections that can be resolved before finishing 3.0.
  • Requests for clarification of unclear text or undefined behavior.
  • Undetected severe inconsistencies or bugs that may delay the standard publication.
  • Wishes for additional enhancements or new functionality to be taken into account after 3.0 is published.

Please comment before Sep. 6, 2012 as follows:

  1. Subscribe to:
  2. Then send your comments to:

Messages sent from an unsubscribed e-mail address will not be considered.

Thank you in advance for your help.

Best regards,
The MPI Forum

Tags: , ,

MPI-3.0: What’s the holdup?

A few people have asked me questions about MPI-3 recently, such as:

  1. What took so long?
  2. Why isn’t another draft version of MPI-3.0 available yet?
  3. When do you expect the final version of the MPI-3.0 document to be available?
  4. When do you expect MPI-3.0 implementations to be available?

These are all good questions.  Let me answer each of them individually…

Read More »

Tags: , ,

MPI progress

From my blog post about the upcoming MPI-3 draft spec, Geoffrey Irving asked a followup question:

Can you describe the difference between the current situation and true background progression? Does the lack of background progression mean having to occasionally explicitly relinquish control to MPI in order to let one-sided operations proceed? Once true background progression is in place, would it involve extra threads and context switching, or use some other mechanism?

A great question.  He asked it in the context of the new MPI-3 one-sided stuff, but it’s generally applicable for other MPI operations, too (even MPI_SEND / MPI_RECV).

Read More »

Tags: , , ,

Gettings towards an MPI-3.0 draft

I’ve been a bit tardy with my blogging responsibilities of late; but only because I’ve been swamped with MPI stuff.  Honest!

This past week, the MPI Forum met in Chicago and had a huge text-merging party.  Specifically, we took all the MPI-3 proposals that had passed and actually merged their text into a single document.  We did this in parallel (get it?) by dividing up the tickets and chapters among all the meeting participants.  It was quite amazing to watch, actually.  :-)

The merges resulted in a few conflicts here and there, a probably-inevitable set of LaTeX issues, some “Hey, why isn’t the Subversion server responding?” complaints, and some last minute, “Hey, that doesn’t look quite right…”-isms.

Read More »

Tags: ,