Pure Mpi.NET

PureMpi.NET is a completely managed implementation of the message passing interface.  The object-oriented API is simple, and easy to use for parallel programming. It has been developed based on the latest .NET technologies, including Windows Communication Foundation (WCF).  This allows you to declaratively specify the binding and endpoint configuration for your environment, and performance needs.  When using the SDK, a programmer will definitely see the MPI'ness of the interfaces come through, and will enjoy taking full advantage of .NET features - including generics, delegates, asynchronous results, exception handling, and extensibility points.  

PureMpi.NET allows you to create high performance production quality parallel systems, with all the benefits of in .NET

 

20/01/2008

Cleaner way to begin parallel processing

A method was added to the ProcessorGroup class to help instantiating, starting, waiting, and disposing of the mpi service host threads.  Along w/ using an anonymous delegate, the code cleans up rather nicely.

static void Main(string[] args)

{

    ProcessorGroup.Process("MPIEnvironment",

        delegate(IDictionary<string, Comm> comms)

        {

            Comm comm = comms["MPI_COMM_WORLD"];

            Console.WriteLine("Rank: {0}", comm.Rank);

 

            string broadcastRoot = comm.Rank.ToString();

            comm.Broadcast<string>(1, ref broadcastRoot);

            Console.WriteLine("Broadcast root: {0}", broadcastRoot);

        });

}

Rss