MPI.NET
Project Main Objectives
The
Project's general objective is to allow the use of
parallel and distributed processing functionalities
provided by MPI, in a way that they can be used in any
language that supports an implementation of the
Microsoft .net framework.
The standard interface
provided by the MPI library allows the use of parallel
and distributed programming functionalities only in C
and Fortran development languages.
Using Classes export
mechanisms through .net environment, this project
proposes the use of MPI from .net supported languages in
a way that parallel processing techniques can be used
from programs developed on those languages.
To achieve the
objective, encapsulation of the classes basics
communication primitives of the MPI library has to be
done (send, receive blocking, receive non blocking,
collective communication primitives). Also the
synchronization
process
and the result
reduction process has to be studied in order to be used
from remote programs.
Additionally, a distribution
mechanism
for the parallel code developed has to be implemented in
order to run on selected nodes of the parallel virtual
machine (nodes that can be located on different
networks)
To accomplish these
objectives there are two possible solutions and one of
the project goals is to implement at least one.
The
first angle consists on the design of a distribution
mechanism based on the subscription to a web service
which allows the distributed code to be "copied" to
remote networks. This solution is very popular for the
execution of remote processes.
The alternative consists on
implementing a process creation primitive that takes
care of distribution of the intermediate code to "native"
en the remote machine. This alternative intents to
maximize the potential of the execution framework
provided by .net
The testing of the
implemented modifications will be done by designing
programs that uses MPI exported functions, and using
parallel and distributed techniques on languages that
don't support such things.
Specific
Objectives
The tasks that the students
will perform during the project will involve:
Ø |
Comprehension
of the distributed programming model. |
Ø |
Comprehension
of the .NET technology and it's programming
environment. |
Ø |
Introduction to the Parallel Virtual Machine
functionalities. |
Ø |
Modification of MPI communication primitives for
process to process communications. |
Ø |
Modification
of MPI
synchronization and results reduction primitives. |
Ø |
Comparative Analysis of
the different proposals available for code
distribution (web service vs. process creation
primitive). |
Ø |
Implementation of the code distribution mechanism. |
Ø |
Functional Testing of all the code.
|
Ø |
Final report and synthesis articles
elaboration. |
Frame and Products
The Project is part of the
development process of the High Performance Computing
Department at the UAS.
The working environment is
based on a Windows 2000 and Windows NT network,
connected by a Local Area Network and these computers
belong to the Parallel Virtual Machine of the
Institution.
As a final product, an MPI
distributed programs development library will be
created, modified in a way that allows
function
calling from several languages through .net platform.
Project Importance
One of the project main
objectives is to introduce and familiarize the students
with new technologies improving old programming
techniques and learning:
Ø |
Parallel and
Distributed Programming Techniques. |
Ø |
Totally new
architecture and operative to the media (parallel
virtual machine based on a desktop PC's network). |
Ø |
Microsoft
.NET Technology |
Ø |
Distributed Programming on Local Networks and the
Internet. |
This way the project
aims to the consolidation of all the knowledge acquired
through the career in the programming areas, the
architecture areas, the operating systems area and the
software engineering area.
As a secondary target,
the use and test of a parallel machine which constitutes
the first project to do such a thing in the institution.
Additionally, the project
aimed to the creation of a HPC group.
The permanent
increase of need for computing power makes this type of
technology very popular because it's based on low cost
components (PC's on a network).
Additionally to the
attention of a tutor, the project involves courses on
Parallel and Distributed Programming and Microsoft .NET
environment.
|