This project is read-only.

Task 1:
A research about how to install and program with C# was done using the internet as the main information source and also a book that is referenced in the bibliography.

The .Net 3.5 was installed in a PC and some sequential programs were implemented using MS Visual Studio 2008 Express. It's important to note that these sequential programs such as Matrixes Multiplication, Dot and Cross Products, Pi Calculus and MandelBrot Fractal will be used to make the benchmark of the MPI.NET.

Task 2:
Starting April, 1^st , we have installed the University of Indiana's MPI.NET solution and we are performing some tests.
  • We testes Ping-Pong, Ring, Reduce and other apllications in MPI/C#. Some executions were made in one machine using different numbers of processes to conclude the job. Benchmarks were made in these solutions.
  • We are performing benchmark tests using C#, Java and C++ languages.
  • We tested questions like object passing solution developed by the University of Indiana.
  • We began the study of Collective Communication functions of MPI (All2All, AllGather, Scatter, BCast, Reduce...)
  • We started the observation and analysis of the MPI.NET solution code. Classes like Unsafe (makes the linking to the MPI/C native code) and Communicator/Environment were observed to obtain a better undestanding of the solution.
  • We read the paper developed by the University of Indiana: Paper

Task 3:
  • We made a list of all the existing MPI primitives in C and their equivalences to the methods developed by the University of Indiana. This list may be found in the following link:

The List
  • We made some tests with the funcionality of the Gather method of the Communicator class. We've concluded that functions like MPIGather and MPIGatherv were encapsulated in one single method. With this in mind, the abstraction and the usability of these functions were increased in the MPI.NET solution. The tests and the conclusions may be found in the following link:

Tests and Conclusions of the Communicator.Gather method
  • We made some tests with the funcionality of the Scatter method of the Communicator class. We've concluded that functions like MPIScatter and MPIScatterv were encapsulated in one single method. With this in mind, the abstraction and the usability of these functions were increased in the MPI.NET solution. The tests and the conclusions may be found in the following link:

Tests and Conclusions of the Communicator.Scatter method

  • We made some tests with the funcionality of the AllGather method of the Communicator class. We've concluded that functions like MPIAllGather and MPIAllGatherv were encapsulated in one single method. With this in mind, the abstraction and the usability of these functions were increased in the MPI.NET solution. The tests and the conclusions may be found in the following link:

Tests and Conclusions of the Communicator.AllGather method

  • We made some tests with the funcionality of the Alltoall method of the Communicator class. We've concluded that functions like MPIAlltoall and MPIAlltoallv were encapsulated in one single method. With this in mind, the abstraction and the usability of these functions were increased in the MPI.NET solution. The tests and the conclusions may be found in the following link:

Tests and Conclusions of the Communicator.Alltoall method

In the following image, we can see how the Alltoall method works:

Cannot resolve image macro, invalid image name or id.

  • We made some tests with the funcionality of the Reduce method of the Communicator class. We've concluded that it works not only with pre-defined MPI operations, but also with user-defined operations. Besides, we've concluded that this method is allowed to reduce objects with a consistent operation and it produces the right results.

Tests and Conclusions of the Communicator.Reduce method

  • We made some tests with the funcionality of the Allreduce method of the Communicator class. We've concluded that it works not only with pre-defined MPI operations, but also with user-defined operations. Besides, we've concluded that this method is allowed to reduce objects with a consistent operation and it produces the right results, "broadcasting" the result to all the MPI processes.

Tests and Conclusions of the Communicator.Allreduce method

  • We made some tests with the funcionality of the ReduceScatter method of the Communicator class. We've concluded that it produces right results, dividing the "reduced vector" in different parts to the MPI processes.

Tests and Conclusions of the ReduceScatter method

  • We made a program to test the funcionality of the Scan method of the MPI.NET solution. The solution shows that objects and primitive datatypes can be used in this method. Besides, it is possible to use pre-defined operations to "reduce" the data of all the processes.

Tests and Conclusions of the Intracommunicator.Scan method

Starting May, 1^st we are making a report that contains a comparisson between the classes of MPI C++ and MPI.NET. After this we will gonna be able to start contributing with new features for the project. We are also doing performance tests of C, C++ and C# aplications usind MPI and not using MPI to see the overhead introduced by the virtual machine.
  • We noted that a point-to-point function of the native MPI was not implemented in the MPI.NET solution. This function is called MPIBsend and it permits that the user declare and use a buffer to send the messages, instead of the MPI's buffer. We projected a solution and an implementation of this function and other two related: MPIBufferattach and MPIBuffer_detach. We are developing the solution at this moment.
  • We implemented and validated the Bsend function.

We are making programs to compare the difference of perfomance between C and C#, MPI/C and MPI.NET, MPI and the use of sockets...
Nowadays, sequential algorithms of LU Fatoration and Matrix Multiplication in a dual core machine to observe the differences of perfomance between C and C#.

1 <#sdfootnote1anc>http://www.cs.indiana.edu/pub/techreports/TR570.pdf

Last edited Dec 5, 2008 at 1:54 PM by faafonso, version 1

Comments

No comments yet.