Um ambiente computacional tolerante a falhas para aplicações paralelas - Pinheiro, Oberdan Rocha (2013)
O desempenho computacional disponibilizado pelos sistemas paralelos resulta da capacidade de dividir o trabalho em partes menores e encaminhar cada uma delas para ser processada paralelamente em diferentes nós de um sistema distribuído. A falha em uma das partes paralelizadas pode levar a computação a um estado de operação inadequado, comprometendo o resultado final da computação paralela distribuída. Um sistema distribuído está sujeito a falhas nos seus componentes de comunicação, seus processadores, em suas aplicações entre outros componentes que formam o sistema. Desta maneira, as aplicações paralelas, ao utilizarem os recursos disponibilizados pelos sistemas distribuídos, têm suas partes executadas em paralelo, em diferentes nós desse sistema. Em razão de cada um desses recursos ser um possível ponto de falha, as aplicações paralelas acabam se tornando mais susceptíveis à ocorrência de falhas. Quando as aplicações paralelas são interrompidas durante a ocorrência de falhas, todo o processamento realizado e o tempo gasto para tal são desperdiçados, pois as aplicações devem ser reinicializadas. Dessa forma, o desenvolvimento de técnicas de tolerância a falhas torna-se fundamental, para garantir o término das aplicações paralelas. Este trabalho apresenta um ambiente computacional tolerante a falhas para aplicações paralelas que utilizam o padrão Open MPI, para minimizar o desperdício de tempo e processamento já realizados pelos processos da aplicação paralela, até o momento do surgimento da falha. O ambiente utiliza mecanismo de checkpoint/restart do padrão Open MPI para armazenar e recuperar os estados dos processos paralelos e a técnica de heartbeat para verificar a continuidade de execução destes mesmos processos.