I'd like to release binary libraries that use MPI but are agnostic as to which flavor or MPI (eg. OpenMPI, MVAPICH, LAM...) that is used by the application linking the libraries. I've seen that there are some significant differences that stand in the way, for example that MPI_Comm is a pointer on OpenMPI and an integer on MVAPICH. I can see some ways that might work, but they are pretty complex - for example, I could create an intercept library that loads a real MPI library explicitly and do whatever needs be done (for example, translating MPI_Comm parameters). Does anyone know of anything that might help?