Programación distribuida

Objetivo

Desarrollar un sistema que permita el cálculo de multiplicación de matrices de manera distribuida, en donde existe un servidor que contiene las descripciones de las matrices a multiplicar, espera las conexiones de los clientes y distribuye a cada cliente un conjunto de datos para calcular la multiplicación de matrices.

Descripción

Desde que se lanzo SETI@home hace ya unos 8 años, se han generado una serie de sistemas que buscan aplicar las mismas técnicas propuestas por SETI@home en problemas diversos, tales como FOLDING@home, boinc, etc. Estos sistemas normalmente están compuestos por un servidor el cual esta encargado de distribuir las tareas, normalmente en forma de un conjunto de datos que componen un problema mayor. Estas tareas son enviadas a los clientes que solicitan colaborar en la solución de problemas. Cada cliente se debe identificar ante el servidor, pedir un conjunto de datos para reducir y luego enviar el resultado de aplicar el algoritmo propuesto (en este caso para multiplicar matrices) al servidor para que este envíe un nuevo conjunto de datos para operar.

Especificaciones

Al finalizar el proyecto se desea obtener:

  • Una implementación funcional del sistema.
  • Un servidor que permita aceptar conexiones (varios al tiempo) para distribuir los datos de las matrices que se quieren operar.
  • El servidor debe tener una forma de especificar las matrices que se desean operar, el cual se puede cambiar en tiempo de ejecución (usando Web-Services).
  • Debe existir un protocolo definido entre el servidor y los clientes de cálculo.
  • El cálculo de una multiplicación se debe realizar en varias pasadas, es decir, un cliente no debe calcular toda una multiplicación entre matrices de una (los datos que se le envían al cliente no pueden ser las dos matrices completas, sino partes de las dos matrices).
  • Cada cliente que se conecta al servidor debe identificarse de manera única dentro del sistema.
  • Cada cliente debe poder calcular una parte de una multiplicación entre 2 matrices, una vez terminada la operación, envía el resultado al servidor y espera por un nuevo conjunto de datos para operar.
  • En cualquier momento se pueden agregar nuevas matrices y descripción de multiplicaciones que se quieren realizar usando web services.
  • Con los Web Services se puede también realizar consultas sobre el estado de la computación (que multiplicaciones han terminado, que falta, que cliente tiene que porción de matriz, estadísticas de los clientes, etc)
  • Se debe poder consultar el servidor para obtener información del servidor (igual que el punto anterior) por medio de World Wide Web (HTTP, HTML)

Referencias

FIXME

 
materias/laboratorio_de_lenguajes_ii/lableng2/distromat.txt · Última modificación: 2011/01/24 15:30 (editor externo)
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki