Let me explain…
I am Cisco’s representative to the Open MPI project, a middleware implementation of the Message Passing Interface (MPI) standard that facilitates big number crunching and parallel programming. It’s a fairly large, complex code base: Ohloh says that there are 0ver 674,000 lines of code. Open MPI is portable to a wide variety of platforms and network types.
However, supporting all the things that MPI is suppose to support and providing the same experience on every platform and network can be quite challenging. For example, a user posted a problem to our mailing list the other day about a specific feature not working properly on OS X.
This was unfortunately a well-known problem; we’d had a bug about this issue logged in our tracker for over 2 years — but had been unable to fix it. The issue had to do with some deep linker voodoo semantics that are unique to OS X, and, sadly, we hadn’t been able to get anyone at Apple to help us.
So the bug sat there. Unfixed.
A few hours after I replied to the user’s post that we didn’t know how to solve the issue (which is a pretty hard thing for an engineer to admit, by the way), I got an off-list email that provided the exact information that I needed to fix the bug. Woo hoo!
Dave and I have actually known each other for several years. We trade information not-infrequently. We do this:
- because we can
- because it helps both of our projects
- because it helps our users
The fact of the matter is that having two, large competing projects is a Good Thing: not only does it provide choice for users, having multiple implementations of a single public standard is great for checks-and-balances kinds of reasons.
Kudos and thanks to Dave for solving this specific issue!
The moral of the story: sharing information across organization (and project) boundaries is enabled by the fact that we’re open communities. Of course, unsolicited/altruistic information sharing doesn’t always happen, but the fact that it is possible is what creates great potential for open source projects.