"Ambiente para Minimização do Impacto de Falhas para Aplicações Paralelas" - Zem, José Luis (2005)
Os sistemas paralelos são importantes pois permitem concentrar recursos computacionais como processadores, memórias e dispositivos de E/S para solucionar problemas computacionais que necessitam de uma grande quantidade destes mesmos recursos e em um tempo de execução aceitável. Tradicionalmente, o tempo, a capacidade e o custo do processamento para se resolver estes problemas computacionais utilizando-se aplicações seqüênciais podem ser proibitivos e isto acaba criando um contexto propício para se utilizar aplicações paralelas. Em razão de ser composto por muitas partes, um sistema distribuído está sujeito a falhas em seu subsistema de comunicação, em seus processadores, em suas aplicações entre outros componentes. Desta maneira, as aplicações paralelas, ao utilizarem os sistemas distribuídos, têm suas partes executadas em paralelo pelos recursos distribuídos. Em razão de cada um destes recursos ser um possível ponto de falha, as aplicações paralelas acabam por tornarem-se mais susceptíveis à ocorrência de falhas e, conseqüentemente, à interrupção de suas execuções. Quando estas aplicações paralelas são interrompidas, todo o processamento realizado e o tempo gasto para tal são desperdiçados, pois as aplicações devem ser reinicializadas. Para minimizar estes desperdícios de tempo e processamento é apresentado neste trabalho um ambiente de monitoramento e execução que fornece mecanismos para se detectar falhas da classe fail stop em aplicações paralelas executas em ambientes distribuídos ou centralizados. O ambiente em questão é denominado de AMTF (Ambiente de Monitoramento Tolerante a Falhas). O ambiente AMTF utiliza as técnicas de checkpointing/restart para armazenar e recuperar os estados dos processos e de heartbeat para verificar a continuidade de execução destes mesmos processos. Juntamente com o ambiente AMTF é disponibilizada uma biblioteca a ser utilizada pelo desenvolvedor de aplicações paralelas, sendo que a mesma oferece a liberdade de se indicar no código-fonte da aplicação o ponto e o momento que se deseja que o contexto da aplicação seja armazenado para uma possível recuperação além de sua periodicidade para os registros automáticos.