Search code examples
linuxmonompidistributed-computingmpich

Using MPI.NET and Mono framework to execute distributed computing on linux nodes of a supercomputer


I would like to know if MPI.NET + Mono framework can be used to run distributed computations on supercomputer nodes that are all Linux based?

I know that Mono run-time is available on the clusters and mono compiled programs with standard libraries run fine. But what about MPI.NET ?

And one more question, I am a bit confused with the difference between MPI.NET and MPIch2 etc. Is MPI.NET a wrapper around standard MPIch2 and works on Linux if MPIch2 is available? or is it an alternative to MPIch2 and requires installation of MPI.NET clients?

I highly appreciate your inputs on this if you have had any experience base upon this.

Thank you.


Solution

  • I finally found the answer to some of the questions from MPI.NET website on this matter. I quote:

    1. 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

    2. 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