I finally found the answer to some of the questions from MPI.NET website on this matter. I quote:
Does MPI.NET work with other MPI implementations? It depends on the platform. Even though MPI is a standard, on Windows MPI.NET encodes some information about specific data types used in MS-MPI that tie MPI.NET directly to Microsoft's MPI. It is certainly possible to make MPI.NET work with other MPI implementations, but we do not currently plan to do so. On Unix, however, MPI.NET adapts itself to the native MPI detected at configure time, and can work with (at least) Open MPI, LAM/MPI, and MPICH2
Does MPI.NET work with Mono? Yes! As of version 0.6.0, MPI.NET works under Mono using a variety of different native MPIs, including Open MPI, LAM/MPI, and MPICH2. Note, however, that problems will run-time code generation in Mono cause MPI.NET to be slightly more conservative in its optimizations. Due to this more-conservative approach and the fact that the Mono JIT has not received as much tuning as the Microsoft JIT, we expect that performance on Mono will not be as good.
for more info please visit: MPI FAQ
additionally, here's a link on how to compile MPI.NET under Ubuntu: Compiling MPI.NET under Ubuntu Oneiric