next up previous contents
Next: Conclusiones Up: Bibliotecas de Programación Paralela Previous: Máquina Virtual Frente a   Índice General

Tolerancia a Fallos

La tolerancia a fallos es un aspecto crítico para aplicaciones a gran escala, ya que aquellas simulaciones que pueden tardar del orden de varios días o semanas para ofrecer resultados deben tener la posibilidad de manejar cierto tipo de fallos del sistema o de alguna tarea de la aplicación.

Sin la capacidad de detectar fallos y recuperarse de estos, dichas simulaciones pueden no llegar a completarse. Es más, algunos tipos de aplicaciones requieren ser ejecutadas en un entorno tolerante a fallos debido al nivel de seguridad requeridos.

De cualquier forma, en ciertos casos debería haber algún modo de detectar y responder automáticamente a ciertos fallos del sistema o al menos ofrecer cierta información al usuario en el caso de producirse un fallo.

En PVM hay un mecanismo de notificación de fallos, de forma que una tarea puede manejar notificaciones sobre ciertas tareas de las que espera recibir un mensaje. Por ejemplo, si una tarea muere, otra que estuviese esperando un mensaje de la primera recibirá una notificación en lugar del mensaje que esperaba. De esta forma, la notificación le da la oportunidad de responder al fallo sin tener que fallar forzosamente.


Por su parte, MPI incluye un sistema de notificaciones similar al de PVM, aunque menos potente, debido fundamentalmente a que los manejadores de las comunicaciones se crean y destruyen de forma síncrona.

Como se comentó antes, MPI sacrifica en cierto modo la tolerancia a fallos en favor de la eficiencia, hasta el punto de evitar consumir recursos (tiempo) teniendo un demonio que controle las tareas (puesto que todas las potenciales comunicaciones se conocen al lanzar la aplicación).

Al igual que en PVM, durante la ejecución de una aplicación podemos crear procesos dinámicamente. Sin embargo, MPI no dispone de ningún mecanismo para recuperar la aplicación ante la pérdida espontánea de un proceso.


next up previous contents
Next: Conclusiones Up: Bibliotecas de Programación Paralela Previous: Máquina Virtual Frente a   Índice General
Francisco Javier Garcia Castellano
2000-12-14