Home
Releases
Discussions
Issue Tracker
Source Code
Stats
People
License
RSS RSS Feed
Search Wiki:
Equipe/Team | Blog

usa.pngProject Status
usa.pngFirst Steps to Assembly MPI.NET Aplications

usa.png Project Description

MPI is the de-facto standard for HPC. The 2.0 standard specifies bindings for Fortran, C and C++. However, they clearly lack of high-level abstractions such are OO encapsulation or simple portability in heterogeneous platforms, i.e. distributed sets of different CPUs, possibly interconnected by different networks.

Nearly all current, modern languages, have developed extensions such as to enable their use with MPI: this is the case of Java (JavaMPI, MPIJava), Python (pympi), Perl or Ruby. As far as C# is concerned, the Open Systems Laboratory at Indiana University has proposed both a low-level binding (strongly inspired by the C++ binding) and a high-level one, called MPI.NET (see Willcock, J., Lumsdaine, A., Robison., A.: Using mpi with c# and the common language infrastructure. Concurrency and Computation: Practice and Experience 17(7-8) (2005) 895–917).

The C# binding is relatively straightforward. Each object of C# bindings contains the underlying C representation of the MPI object. Similarly, the high-level objects in the MPI.NET are usually containers of underlying MPI objects. According to the referenced article, the performance of the current MPI binding of C# is reasonnable. However, the implementation and the tests have only be partial and did not cover collective communication, one of the key features of MPI, neither do they cover non-blocking communication or other advanced features of MPI such as the use of non-native, used-defined datatypes.

The goals of this project would be to build upon MPI.NET in order to complement it with the features that are missing, mainly regarding collective communication. Either they could benefit from C# native support for such communication, either they could be programmed on top of the provided MPISend/MPIRecv encapsulations. C# and .NET features such as fault tolerance or dynamicity support would be studied, in other to turn the MPI# implementation robust in large, dynamic and heterogeneous platforms.

br.pngStatus do Projeto

br.png Descrição do Projeto

O objetivo do projeto MPI# é construir, acima do ambiente MPI.NET, os complementos que faltam para permitir a comunicação entre processos em ambientes de alta performance construídos na linguagem C#, de forma nativa. Aspectos de tolerância a falha e suporte dinâmico dos ambientes C# e .Net serão estudados, com o intuito de permitir a implementação do MPI# robusta em ambientes com múltiplos processadores, dinâmicos e com plataformas heterogêneas.
Last edited Sep 20 at 6:15 PM  by faafonso, version 21
Comments
No comments yet.

Updating...