Table of contents:
- Can I contribute to Open MPI?
- I found a bug! How do I report it?
- What license is Open MPI distributed under?
- How do I contribute code to Open MPI?
- I can't submit an Open MPI Third Party Contribution Agreement;
how can I contribute to Open MPI?
- What if I don't want my contribution to be free / open source?
- I want to fork the Open MPI code base. Can I?
- Rats! My contribution was not accepted into the main Open MPI
code base. What now?
|1. Can I contribute to Open MPI?|
One of the main goals of the Open MPI project is to involve the
greater HPC community.
There are many ways to contribute to Open MPI. Here are a few:
- Subscribe to the mailing
lists and become active in the discussions
- Obtain a source code checkout of Open
MPI's code base and start looking through the code (be sure to see the Developers category for
technical details about the code base)
- Write your own components and distribute them yourself (i.e.,
outside of the main Open MPI distribution)
- Write your own components and contribute them back to the main
- Contribute bug fixes and feature enhancements to the main code
|2. I found a bug! How do I report it?|
First check that this is not already a known issue by checking
the FAQ and the
mailing list archives. If you
can't find your problem mentioned anywhere, it is most helpful if you
can create a "recipe" to replicate the bug.
Please see the Getting
Help page for more details on submitting bug reports.
|3. What license is Open MPI distributed under?|
Open MPI is distributed under the BSD license.
|4. How do I contribute code to Open MPI?|
Similar to the Apache projects, before you contribute any code
to the Open MPI code base, you must first print out, sign, and submit
an Open MPI Third Party Contribution Agreement.
NOTE: We are not lawyers and this is not legal advice.
We need to have an established intellectual property pedigree of the
code in Open MPI. This means being able to ensure that all code
included in Open MPI is free, open source, and able to be distributed
under the BSD license.
This prevents a situation where intellectual property gets into the
Open MPI code base and then someone later claims that we owe them
money for it. Open MPI is a free, open source code base. And we
intend it to remain that way.
We enforce this policy by requiring all code contributors to submit a
signed Open MPI Third Party Contribution Agreement before we can
accept any code from them. These agreements assert that the
contributor has the right to donate the code and allow the Open MPI
Project to perpetually distribute it under the project's licensing
There are two versions of this agreement:
individuals, and one for
organizations. Ensure that you use the correct form; for example,
some companies own all the code produced by their employees, so even
if you write code in your spare time, it may still be the intellectual
property of your employer.
Send and original, signed copy to the address on the form.
We must have a copy of this agreement on file before we can accept
code into the Open MPI code base.
|5. I can't submit an Open MPI Third Party Contribution Agreement;
how can I contribute to Open MPI?|
Although we cannot accept code from you, there are still plenty of
other ways to contribute to Open MPI. Here are some examples:
- Become an active participant in the mailing lists
- Write and distribute your own components (remember: Open MPI
components can be distributed completely separately from the main Open
MPI distribution -- they can be added to existing Open MPI
installations, and don't even need to be open source)
- Report bugs
- Do a good deed daily
|6. What if I don't want my contribution to be free / open source?|
While we are creating free / open-source software, and we would prefer
if everyone's contributions to Open MPI were also free / open-source,
we certainly recognize that other organizations have difference goals
than us. Such is the reality of software development in today's
As such, it is perfectly acceptable to make non-free / non-open-source
contributions to Open MPI.
We obviously cannot accept such contributions into the main code base,
but you are free to distribute plugins, enhancements, etc. as you see
fit. Indeed, the the BSD
license is extremely liberal in its redistribution provisions.
Please also see this FAQ entry about forking
the Open MPI code base.
|7. I want to fork the Open MPI code base. Can I?|
Yes... but we'd prefer if you didn't.
Although Open MPI's
license allows third parties to fork the code base, we would
strongly prefer if you did not. Forking is not necessarily a Bad
Thing, but history has shown that creating too many forks in MPI
implementations leads to massive user and system administrator
confusion. We have personally seen parallel environments loaded with
tens of MPI implementations, each only slightly different from the
others. The users then become responsible for figuring out which MPI
they want / need to use, which can be a daunting and confusing task.
We do periodically have "short" forks. Specifically, sometimes an
origanization needs to release a version of Open MPI with a specific
If you're thinking of forking the Open MPI code base, please let us
know -- let's see if we can work something out so that it is not
|8. Rats! My contribution was not accepted into the main Open MPI
code base. What now?|
If your contribution was not accepted into the main Open MPI
code base, there are likely to be good reasons for it (perhaps
technical, perhaps due to licensing restrictions, etc.).
If you wrote a standalone component, you can still distribute this
component independent of the main Open MPI distribution. Open MPI
components can be installed into existing Open MPI installations. As
such, you can distribute your component -- even if it is closed source
(e.g., distributed as binary-only) -- via any mechanism you choose,
such as on a web site, FTP site, etc.