Objetivos
del Proyecto
MPI.NET
El objetivo
general del proyecto consiste en posibilitar la
utilización de funciones para procesamiento paralelo y
distribuido que otorga MPI, de modo que puedan ser
utilizadas desde programas desarrollados en diferentes
lenguajes utilizando la tecnología .NET.
La interfaz
estándar ofrecida por la biblioteca MPI contempla
únicamente el uso de las funciones para programación
paralela y distribuida desde los lenguajes C y FORTRAN.
Utilizando
mecanismos de exportación de clases a través de el
ambiente .NET, este proyecto propone la utilización
de MPI desde lenguajes soportados por .NET de modo que
las técnicas de procesamiento paralelo puedan utilizarse
desde programas desarrollados en esos lenguajes.
Para lograr el
objetivo mencionado, deberán encapsularse en clases las
primitivas básicas de comunicación de la biblioteca MPI
( envío de mensajes, recepción de mensajes bloqueante y
no bloqueante, primitivas de comunicación colectivas )
y las primitivas de sincronización de procesos y
reducción de resultados de modo de posibilitar su uso
desde programas remotos.
Complementariamente, se deberá instrumentar un mecanismo
que posibilite la distribución del código paralelo a
ejecutar en los diferentes nodos de la máquina virtual,
que pueden estar en diferentes redes.
Para lograr este
objetivo, existen dos enfoques que deberán evaluarse con
el fin de implementar al menos uno de ellos.
El primer enfoque
consiste en el diseño de un mecanismo de distribución de
código basado en suscripción a un servicio web que
permita copiar el código distribuído en redes remotas.
Esta solución se basa en una idea bastante habitual en
las plataformas que ofrecen la posibilidad de ejecución
de procesos remotos.
La alternativa
consiste implementar una primitiva de creación de
procesos para que se encargue de la distribución del
Código Intermedio a nativizar en el equipo remoto. Esta
alternativa intenta aprovechar al máximo las
potencialidades del entorno de ejecución que ofrece
.NET.
El
testeo de
la modificación implementada se realizará diseñando
programas que utilicen las funciones de MPI exportadas,
utilizando técnicas de programación paralela y
distribuida en lenguajes que no lo soporten.
Objetivos específicos
Las tareas a
realizar por parte de los estudiantes durante el
desarrollo del proyecto involucrarán:
Ø |
Comprensión del modelo de programación distribuida. |
Ø |
Comprensión de la tecnología .NET y su entorno de
programación. |
Ø |
Introducción al funcionamiento de la máquina paralela
virtual. |
Ø |
Modificación de primitivas MPI para comunicación entre
procesos. |
Ø |
Modificación de primitivas MPI para sincronización y
reducción de resultados. |
Ø |
Análisis
comparativo de las propuestas para implementar la
distribución de código (servicio web vs. primitiva de
creación de procesos). |
Ø |
Implementación del mecanismo de distribución de código. |
Ø |
Testeo de funcionamiento de las modificaciones.
|
Ø |
Elaboración de informe final y artículo de síntesis. |
Alcance y productos
El proyecto forma
parte del proceso de desarrollo del área de
procesamiento de alta performance en aplicaciones
comerciales e industriales utilizando computadoras de
bajo costo en curso en el UAS.
El entorno de
trabajo estará conformado por un conjunto de
computadores con sistema operativo Windows NT o Windows
2000, interconectados por una red de área Ethernet de 10
Mbits, que constituyen la Máquina Paralela Virtual de la
Institución.
Como producto
final resultará una biblioteca de desarrollo de
programas distribuidos MPI, modificada para permitir la
invocación de funciones desde varios lenguajes a través
de la plataforma .NET
Importancia de la propuesta
En lo
referente a la formación de los estudiantes, la
propuesta apunta a familiarizarlos con valiosas
tecnologías emergentes y consolidadas:
Ø |
Técnicas de
procesamiento paralelo y distribuido. |
Ø |
Operativa de una
arquitectura novedosa para el medio (máquina paralela
virtual formada por una red de PCs en LAN). |
Ø |
Tecnología Microsoft
.NET |
Ø |
Programación
distribuida en Redes Locales e Internet. |
De esta manera
el proyecto se orienta hacia la consolidación de
conocimientos adquiridos a lo largo de la carrera en las
áreas de programación, arquitectura de sistemas,
sistemas operativos e ingeniería de software, mediante
la realización de un proyecto enmarcado en la conjunción
de áreas innovadoras y de importante crecimiento en la
actualidad académica y comercial.
Como un objetivo
secundario de este trabajo, se encuentra la utilización
y testeo de funcionamiento de la máquina paralela,
constituyendo el primer proyecto de resolución de un
problema mediante las técnicas de programación paralela
y distribuida llevado a cabo en la Institución.
Complementariamente, se intenta dar un impulso a la
creación de un grupo de trabajo en el área de
procesamiento paralelo.
La importancia
del área en el medio está ratificada por la demanda
creciente de las tecnologías que permiten la ejecución
optimizada de aplicaciones con grandes demanda de
procesamiento, en particular, aquellas soluciones que
involucran componentes de bajo costo como es el caso de
computadoras personales conectadas en red.
Complementariamente a la atención del docente tutor, el
proyecto involucra la capacitación formal en los temas
de Procesamiento Paralelo y Distribuido,
y capacitación en
el ambiente de desarrollo .NET (a través de un curso por
parte de personal de Microsoft).
|