A few people have asked me questions about MPI-3 recently, such as:
- What took so long?
- Why isn’t another draft version of MPI-3.0 available yet?
- When do you expect the final version of the MPI-3.0 document to be available?
- When do you expect MPI-3.0 implementations to be available?
These are all good questions. Let me answer each of them individually…
1. What took so long?
To be honest, you want standardization to take a long time. Standardization means that everyone — all vendors, all MPI implementors, all researchers, all application developers… everyone — has to do the same thing. So we need to take quite a bit of care to get the specification right.
And sometimes that means taking someone’s great idea / proposal and thinking about it for a while.
Really, deeply thinking about it.
Just because a great idea works in one case doesn’t mean that it’ll work in all cases. Indeed, it may even be harmful in some cases. It is the MPI Forum’s job to think about all of these things and decide what is best for the entire MPI ecosystem.
That requires care, attention to detail, and most of all: time.
It’s a bummer that it takes a while, but trust me: you don’t want to rush something as complicated as the next major revision of MPI. There’s too much at stake, and too much to get wrong. I’m sure MPI-3.0 won’t be 100% perfect — but we need to try to get as asymptotically close as possible.
2. Why isn’t another draft version of MPI-3.0 available yet?
Honestly, we had hoped to have another draft out last Friday. :-( But the short version is: the document isn’t ready yet. We’re still quibbling over a few small — but important — details.
We hope to have a near-final draft version of MPI-3.0 out very shortly.
3. When do you expect the final version of the MPI-3.0 document to be available?
The plan is to vote on the final final final version of MPI-3.0 at the MPI Forum meeting immediately preceding the EuroMPI’2012 conference in Vienna (i.e., mid-September, 2012).
If these votes pass (and they likely will), then the document will be final and publicly available.
4. When do you expect MPI-3.0 implementations to be available?
Both Open MPI and MPICH2 have various elements of MPI-3.0 already implemented, and we’re both adding more all the time.
But MPI-3.0 is complex, and it’ll take time to get robust, bug-free, optimized implementations of all the new stuff in MPI-3.0.
For example, Open MPI’s initial implementations of the non-blocking collectives will be correct (i.e., be non-blocking and yield correct answers) — but they won’t be optimized. Optimizing them will take more time and effort. But at least the the NBCs will be available, and codes can start using them. Over time, our implementation will get better.
I’d estimate it’ll be at least a year or three before we start seeing complete, robust, production-quality MPI-3.0 implementations.
But as always — we implementors work by customer demand. All the new MPI-3.0 stuff will have a better chance of getting implemented quickly if real customers are asking for it. Let your MPI implementor know what you want.