usados pela t´ecnica de tolerˆancia a falhas em uso sejam suficientes para manter o sistema em equil´ıbrio com seus objetivos. O segundo n´ıvel de adaptac¸˜ao lida com variac¸ ˜oes mais significativas do ambiente de execuc¸˜ao que provocam uma degradac¸˜ao de desempenho da abordagem de tolerˆancia a falhas em uso que n˜ao podem ser contornadas apenas atrav´es de adaptac¸˜oes param´etricas, exigindo uma reconfigurac¸ ˜ao estrutural da t´ecnica de tolerˆancia a falhas, substituindo-se a abordagem em uso por outra. As heur´ısticas utilizadas nestes dois n´ıveis de adaptac¸˜ao foram baseadas no trabalho de Chtepen [5], estendendo-se suas regras, como o objetivo de se obter um melhor desempenho com aplicac¸ ˜oes do tipo bag-of-tasks, que compreende a classe de aplicac¸˜oes mais utilizada em desktop grids e ajustando seus parˆametros para uso eficiente nesta classe de grades computacionais. Tamb´em tratamos um efeito que causa repetidas reconfigurac¸ ˜oes na t´ecnica de tolerˆancia a falhas, o qual chamamos de efeito
ping-pong.
4.2
Primeiro N´ıvel:
Adapta¸c˜ao Param´etrica Usando
Checkpointing
A t´ecnica de checkpointing naturalmente produz uma sobrecarga sobre o tempo de execuc¸˜ao das tarefas, uma vez que ´e necess´ario parar o processo a cada vez que ´e salvo o estado do progresso da aplicac¸˜ao. A periodicidade est´atica nas tomadas dos checkpoints das tarefas torna esta abordagem n˜ao muito vantajosa quando levamos em considerac¸˜ao a volatilidade dos recursos em desktop grids. Um recurso ´e dito vol´atil quando, em seu hist ´orico de funcionamento, ele apresenta um grande n ´umero de falhas ou, em se tratando de desktop grids, o propriet´ario do recurso n˜ao o disponibiliza com muita frequˆencia para executar as tarefas da grade. J´a os recursos est´aveis s˜ao aqueles que s˜ao menos suscet´ıveis a falhas e, portanto, est˜ao na maior parte do tempo dispon´ıveis ou executando as computac¸ ˜oes submetidas `a grade.
Nas abordagens est´aticas, o checkpointing pode ser configurado com intervalos curtos para evitar que as tarefas, ao serem recuperadas das falhas, executem o m´ınimo poss´ıvel para retornar ao mesmo estado de quando falharam. Contudo, essa configurac¸˜ao ir´a executar muitas vezes o procedimento que para e salva o estado
4.2 Primeiro N´ıvel: Adaptac¸˜ao Param´etrica Usando Checkpointing 49 da tarefa, prolongando o tempo de sua conclus˜ao. Quando o ambiente se torna est´avel em relac¸˜ao `a disponibilidade dos recursos, essa sobrecarga ´e desnecess´aria. Por outro lado, em ambientes vol´ateis, a definic¸˜ao de longos intervalos para a tomada do
checkpointing pode levar a muita reexecuc¸˜ao de c ´odigo da aplicac¸˜ao e, dependo do grau
de volatilidade dos recursos do ambiente, o checkpointing das tarefas pode nem chegar a ser feito. Se conhecermos o grau de volatilidade dos recursos da grade, podemos estimar intervalos de checkpointing que se ajustam melhor a cada situac¸˜ao.
A fim de reduzir a sobrecarga desnecess´aria causada pelo checkpointing, o modelo utilizado em nossa abordagem ajusta os intervalos entre os checkpoints de cada tarefa de acordo com a volatilidade do recurso em que est´a executando. Ent˜ao, se os processos executam em recursos est´aveis, esse ajuste ´e feito de forma que os intervalos entre checkpoints s˜ao alargados e, portanto, ´e reduzida a quantidade de vezes que s˜ao feitos. De outra forma, se os processos executam em recursos vol´ateis, os intervalos s˜ao reduzidos e, consequentemente, uma maior quantidade de checkpoint ser´a feita, garantindo que sejam salvos estados mais pr ´oximos do estado de execuc¸˜ao do momento da falha.
Nossa abordagem configura o intervalo de periodicidade por meio de regras baseadas em duas estimativas: uma previs˜ao sobre o tempo que ir´a ocorrer a pr ´oxima falha do recurso (failPrediction) e outra sobre o tempo de conclus˜ao da tarefa
(taskConcTimePrediction). A primeira,failPrediction, ´e calculada obtendo-
se, primeiramente, o instante em que ocorreu a ´ultima falha do recurso. Ap ´os isso, calculamos o MTBF do recurso e adicionamos esse valor ao instante da sua ´ultima falha. J´a o taskConcTimePrediction, pode ser estimado utilizando-se algoritmos de predic¸˜ao [46] que seguem basicamente duas abordagens. Na primeira abordagem, calcula-se a estimativa do tempo de execuc¸˜ao da aplicac¸˜ao baseado no registro de execuc¸ ˜oes anteriores da mesma ou de aplicac¸˜oes semelhantes. A segunda abordagem ´e baseada no conhecimento do modelo de execuc¸˜ao da aplicac¸˜ao. O c ´odigo da aplicac¸˜ao ´e analisado, estimando-se o tempo de execuc¸˜ao de cada tarefa de acordo com a capacidade dos recursos da grade [12]. Para estimar a capacidade de processamento de um recurso, pode ser tomada como base uma medic¸˜ao do hardware (como CPU e mem ´oria) ao realizar o processamento de um dado tipo de aplicac¸˜ao. Um benchmark anal´ıtico poderia ser usado como forma de ordenar os recursos de acordo com a sua eficiˆencia para executar um determinado tipo de c ´odigo computacional [16].
4.2 Primeiro N´ıvel: Adaptac¸˜ao Param´etrica Usando Checkpointing 50 O algoritmo da Figura 4.1 descreve as condic¸ ˜oes em que o intervalo entre
checkpointing de cada tarefa aumenta ou diminui na estrat´egia auton ˆomica proposta
neste trabalho.
para cadarecurso fa¸ca
1
para cadatarefa em execu¸c˜ao no recurso fa¸ca
2
se estRemExecT ime < resMT BF ent˜ao
3
newInterval = 2 ∗ prevInterval;
4
sen˜ao se estRemExecT ime >= resMT BF ent˜ao
5
newInterval = prevInterval/2;
6
fim
7
se newInterval < minInterval ent˜ao
8
newInterval = minInterval;
9
fim
10
se newInterval > maxInterval ent˜ao
11 newInterval = maxInterval; 12 fim 13 fim 14 fim 15
Figura 4.1:Heur´ıstica de adaptac¸˜ao param´etrica usando checkpointing.
Quando o tempo restante estimado para o t´ermino da tarefa for menor que o tempo m´edio entre falhas do recurso (estRemExecT ime < resMT BF ), h´a menor probabilidade de ocorrer uma falha com esse recurso enquanto a tarefa estiver executando nele. Baseado nessa probabilidade, reduzimos a frequˆencia com que se faz o checkpoint dessa tarefa, atrav´es do incremento do intervalo que estabelece essa periodicidade, a fim de reduzir o overhead introduzido por esta t´ecnica. Caso a situac¸˜ao seja a inversa, quando o tempo estimado para o restante da execuc¸˜ao da tarefa for maior ou igual ao tempo m´edio entre falhas do recurso (estRemExecT ime ≥ resMT BF ), existe uma probabilidade maior de que ocorra uma falha enquanto a tarefa estiver executando e, por isso, o intervalo da periodicidade tem seu valor subtra´ıdo, fazendo-se checkpointing com mais frequˆencia. Para evitar que o intervalo cresc¸a
4.3 Primeiro N´ıvel: Adaptac¸˜ao Param´etrica Usando Replicac¸˜ao 51