Project Description
Message Passing Interface (MPI) is the standard of message passing in a distributed computing environment. Its benefit for researchers is invaluable.

The idea is to have many machines on a high-speed network, clusters of computers running the same program. Recently, with the invention and adoption of multi-core CPU systems for desktops, it has become even more important. MPI makes even easier for people to build supercomputers by the usage of powerful computers, high speed networks and powerful libraries.

MPICH is an open source, portable implementation of MPI for developing distributed memory application (19). MPICH comes almost any platforms. Mainly MPI is not used by high level managed languages because of the difficulty to use those libraries. In this project it has been tried to overcome this issue.

The goal of MPI Tools is to make easy to write programs that runs on a cluster of machines. Also make the transition easy of existing programs in cluster. Using MPITools, it is possible to create distributed functional applications with F#.

More
More information can be found on http://www.canerten.com/distributed-functional-programming-with-f-mpi-tools/
Feel free to contribute to the project.

Usage
Install MPICH for Windows
Compile MPITools.Bindings Project
Write your program using MPITools.Bindings.dll
Run the compiled program.exe using "mpiexec -n N program.exe" from the command line.

MPITools has a neat syntax and helper functions for different type communication.
1. let send(data,destination, tag)
2. 'a * int * int -> unit
3.
4. let sendArray(data : 'a array,destination,tag)
5. a array * int * int -> unit
6.
7. let sendMatrix (data : matrix,destination,tag)
8. matrix * int * int -> unit

Last edited Jan 20, 2008 at 3:42 AM by canerten, version 8