-
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS
CAUAN GARCIA LEO KASPER
PLUGIN FRAMEWORK PARA VISUALIZAO DO
COMPORTAMENTO DE PROTOCOLOS DE
CHECKPOINTING
DOURADOS-MS
2014
-
CAUAN GARCIA LEO KASPER
PLUGIN FRAMEWORK PARA VISUALIZAO DO
COMPORTAMENTO DE PROTOCOLOS DE
CHECKPOINTING
Trabalho de Concluso de Curso de graduao
apresentado para obteno do ttulo de Bacharel
em Sistemas de Informao.
Faculdade de Cincias Exatas e Tecnologia
Universidade Federal da Grande Dourados
Orientador: Prof. M.Sc. Rodrigo Porfrio da Silva Sacchi
-
Dados Internacionais de Catalogao na Publicao (CIP)
Biblioteca Central da UFGD, Dourados, MS, Brasil
K192p Kasper, Cauan Garcia Leo.
Plugin framework para visualizao do
comportamento de protocolos de checkpointing / Cauan
Garcia Leo Kasper Dourados-MS : UFGD, 2014. 46 f.
Orientador: Prof. Me. Rodrigo Porfrio da Silva
Sacchi.
Trabalho de concluso de curso (Graduando em
Sistemas de Informao) Universidade Federal da
Grande Dourados.
1. Plugin framework. 2. Protocolo de checkpointing.
I. Sacchi, Rodrigo Porfrio da Silva. II. Ttulo.
CDD: 004
Responsvel: Vagner Almeida dos Santos. Bibliotecrio - CRB.1/2620
-
CAUAN GARCIA LEO KASPER
PLUGIN FRAMEWORK PARA VISUALIZAO DO
COMPORTAMENTO DE PROTOCOLOS DE
CHECKPOINTING
Trabalho de Concluso de Curso aprovado como requisito parcial para
obteno do ttulo de Bacharel em Sistemas de Informao na Universidade
Federal da Grande Dourados, pela comisso formada por:
Orientador: Prof . Me. Rodrigo Porfrio da Silva Sacchi
FACET-UFGD
Prof . Dr. Wellington Lima dos Santos
FACET-UFGD
Profa. Ma. Carla Adriana Barvinski
FACET-UFGD
Dourados, 19 de Fevereiro de 2014.
-
Resumo
Este trabalho tem como objetivo o desenvolvimento de um Plugin Framework que permite visu-
alizar histricos de comunicao e de checkpoints vindos de aplicaes distribudas para analisar
protocolos de checkpointing. Para tanto, ele apresenta conceitos sobre o comportamento de pro-
tocolos de checkpointing e sobre o simulador ChkSim, ambos necessrios para a implementao
do plugin framework. A visualizao destes histricos facilitar o entendimento de protocolos
implementados no ChkSim atravs de diagramas espao-tempo. O plugin framework proposto
desenvolvido usando a linguagem de programao Java e um conjunto de suas API s grcas,
que inclui a manipulao de ferramentas grcas disponibilizadas. Alm disso, o plugin fra-
mework traz a oportunidade de exportar seus resultados grcos para arquivos no formato SVG
(Scalable Vector Graphics), de modo que essas imagens sejam analisadas em qualquer ambiente
computacional com suporte a este tipo de arquivo.
Palavras-chave: Protocolos de Checkpointing, ChkSim, Diagramas Espao-Tempo
-
Sumrio
1 Introduo 8
1.1 Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Objetivos Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Checkpointing 15
2.1 Modelo Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Eventos de comunicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Eventos internos: Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Checkpoints Globais Consistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Precdencia causal e Ordenao de Eventos . . . . . . . . . . . . . . . . . 17
2.2.2 Cortes Consistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3 Consistncia Entre Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.4 ZigZag Paths e Z-Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Abordagens Para Checkpointing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Sncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
-
SUMRIO 7
2.3.2 Assncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.3 Quase-sncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3 ChkSim 26
3.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Gerador de Cargas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 O Plugin Framework proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Resultados 34
4.1 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Comparao com a ferramenta Lupa . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1 Vantagens e Desvantagens em comparao ao Lupa . . . . . . . . . . . . . 42
5 Consideraes Finais 43
5.1 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Diculdades Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
-
Captulo 1
Introduo
A computao distribuda formada por um conjunto de n processos {P0...Pn1} que executameventos e se comunicam atravs da troca de mensagens. Neste modelo de sistema no existem
estruturas denidas para a execuo de tarefas usando o compartilhamento de memria, acesso
e sincronizao de relgios bem como informaes referentes diferena de velocidade entre
os processos, com isto a utilizao de comunicao atravs de mensagens se torna essencial
para o funcionamento da aplicao. Esta comunicao realizada basicamente utilizando canais
unidirecionais entre dois processos e todos os processos comunicam entre si diretamente ou atravs
de processos intermedirios. A computao distribuda representada atravs de diagramas de
espao-tempo, como representado na Figura 1.1. Esta Figura contm quatro processos (P0, P1,
P2 e P3), em que setas na horizontal representam o tempo decorrido da execuo da aplicao
distribuda em cada processo e as demais setas representam a troca de mensagens entre os
processos.
Figura 1.1: Diagrama espao-tempo entre os processos e as mensagens.
-
9Para garantir que as mensagens sejam enviadas e recebidas de acordo com a relao causal
denida por Lamport (4), necessria a criao de pontos de recuperao durante a execuo
da aplicao distribuda. Estes pontos de recuperao so denominados checkpoints e podem
ser apresentados gracamente como na Figura 1.2. Nesta Figura, checkpoints so representados
por pequenos quadrados preenchidos em um diagrama espao-tempo, na qual cada checkpoint cji
corresponde ao j-simo checkpoint do processo Pi.
Figura 1.2: Checkpoints em uma aplicao distribuda.
Em uma aplicao distribuda, podem ocorrer dois tipos de checkpoints, aqueles denomi-
nados checkpoints bsicos, normalmente instrumentados manualmente em uma aplicao, princi-
palmente por seu desenvolvedor, ou automaticamente inseridos na aplicao, por exemplo atravs
de tcnicas de compilao (13). Enquanto que checkpoints forados so retirados utilizando heu-
rsticas para garantir a consistncia da aplicao e entre checkpoints. A tcnica da retirada de
checkpoints chamada de checkpointing. A ilustrao de checkpoints forados em processos
apresentada na Figura 1.3.
Figura 1.3: Exemplo de checkpoints forados em uma aplicao.
Este trabalho visa o desenvolvimento de um plugin framework para permitir a visualizao
grca de diagramas espao-tempo contendo ilustraes de mensagens trocadas entre os proces-
sos e de checkpoints retirados nesses processos, com ou sem o uso de protocolos de checkpointing.
Nesse caso, o perl do usurio deve ser de algum j habituado com conceitos de protocolos de
checkpointing para que ele seja capaz de entender o comportamento de protocolos de checkpoin-
ting de interesse atravs dos padres de comunicao e de checkpointing gerados pelos protocolos
-
10
e apresentados como diagramas espao-tempo no plugin framework.
Uma ferramenta semelhante que props-se a desenvolver, o Projeto Lupa (10). Ele um
Framework de demonstrao grca de aplicaes em sistemas distribudos que proporciona ao
usurio a visualizao de um ambiente distribudo atravs de diagramas de espao-tempo com-
postos pelas sequncias de eventos de comunicao e de checkpoints. A Figura 1.4 um screenshot
retirado do Lupa referente a visualizao de diagramas para a comparao de checkpoints.
Figura 1.4: Dois diagramas visualizados para permitir comparao.
A principal desvantagem do Lupa a obrigatoriedade de que uma aplicao distribuda uti-
lize mtodos disponibilizados na camada de checkpointing implementados no Lupa, exigindo que
o programador insira grande quantidade de cdigo especco na aplicao j existente, tornando-
a dependente de uma linguagem de programao, da plataforma e das prprias caractersticas
do Lupa. Usando a execuo do ChkSim, uma ferramenta porttil para simular a execuo de
algoritmos checkpointing em aplicaes distribudas, (19) para cada protocolo, possvel evitar
essa insero de cdigo adicional, pois a criao do diagrama espao-tempo estar relacionada
somente execuo do ChkSim.
Alm disso, o Lupa possui um nmero reduzido de protocolos de checkpointing imple-
mentados em relao ao ChkSim. Por exemplo, os protocolos de checkpointing RDT-Minimal
(5), Lazy-HMNR (17), FINE (7) e alguns protocolos do tipo NBS (Sncronos no-bloqueantes)
(15, 16) j esto implementados no ChkSim, o que reduz uma quantidade de trabalho para de-
senvolver o plugin framework proposto, agregando implementaes mnimas relacionadas aos
protocolos de checkpointing (insero, se necessrio, de implementaes de outros protocolos no
ChkSim).
-
1.1. Objetivos Gerais 11
Com a nalidade de dar incio criao de um grupo de pesquisa na rea de Computa-
o Paralela e Distrubuda na Faculdade de Cincias Exatas e Tecnologias, o trabalho proposto
traz como primeira contribuio o desenvolvimento de um plugin framework para a visualizao
do comportamento de protocolos de checkpointing. Essa visualizao ser possvel atravs de
histricos obtidos de execues de aplicaes executadas em ambientes distribudos, indepen-
dentemente da plataforma e linguagem e programao, conjuntamente com simulaes usando o
ChkSim.
1.1 Objetivos Gerais
O objetivo deste trabalho o desenvolvimento de um plugin framework para auxiliar na visuali-
zao de padres de comunicao e de checkpoints, obtidos atravs de histricos da execuo de
aplicaes distribudas que usam tcnicas de troca de mensagens, independentemente da plata-
forma e linguagem de programao usada. O desenvolvimento deste plugin framework, alm da
visualizao do padro de comunicao e de checkpoints, facilita uma anlise mais detalhada do
comportamento dos protocolos de checkpointing em diferentes aplicaes.
1.2 Objetivos Especcos
Para alcanar o objetivo geral, os seguintes objetivos especcos so necessrios:
1. Selecionar tcnicas de programao para representar gracamente o padro de comunicao
e de checkpoints;
2. Estudar os conceitos de checkpointing e o conjunto de protocolos de checkpointing das
classes ZPF e ZCF j implementados no ChkSim;
3. Estudar e analisar a necessidade de implementar novos protocolos de checkpointing no
ChkSim, se necessrio;
4. Redigir o texto do Projeto de Trabalho de Concluso de Curso 1, incluindo toda a funda-
mentao terica necessria para o desenvolvimento do trabalho proposto;
5. Apresentar, para uma pr-banca, o Projeto de Trabalho de Concluso de Curso 1;
6. Desenvolver o Plugin Framework propriamente dito;
7. Validar o Plugin Framework proposto comparando-o com o Lupa;
-
1.3. Metodologia 12
8. Analisar um subconjunto de protocolos de checkpointing existentes, com base nas visuali-
zaes geradas pelo Plugin Framework proposto;
9. Redigir o texto do Projeto de Trabalho de Concluso de Curso 2, incluindo anlise e
resultados obtidos;
10. Apresentar, para uma banca nal, o o Projeto de Trabalho de Concluso de Curso 2;
11. Entregar a verso nal do Trabalho de Concluso de Curso 2 para a coordenao do Curso.
1.3 Metodologia
No desenvolvimento deste projeto, um ou mais computadores do laboratrio deveria conter sis-
tema operacional Linux, com navegador adequado, IDE NetBeans ltima verso, editores de texto
e interpretador para a linguagem de programao Java, necessrios para o ambiente de progra-
mao, alm do acesso recursos disponibilizados online, via Internet. Para garantir a sintonia
entre as tarefas houve reunies peridicas com o orientador.
Utilizou-se um laboratrio de informtica da Faculdade de Cincias Exatas e Tecnologias
para implementar o Plugin Framework proposto. Ele foi desenvolvido usando a linguagem Java,
com pacotes que suportem ambiente grco para representar o padro de comunicao e de
checkpoint. Este plugin framework tambm suportou a gerao de arquivos SVG (Scalable Vecto-
rial Graphics) atravs dos diagramas espao-tempo criados. Alm disso, ele usou o ChkSim para
obter os histricos desses padres. O ChkSim um simulador de protocolos de checkpointing
(19), no qual recebe como entrada um histrico de comunicao e de checkpoints, podendo este
histrico vir de uma determinada aplicao distribuda executada com o chkmpi ou atravs do
gerador de carga de trabalho do prprio ChkSim.
Utilizou-se os resultados dos histricos gerados pelo ChkSim para executar o plugin fra-
mework proposto e criar os grcos dos padres de comunicao e de checkpoints com ele. Com
isso, foi possvel realizar uma validao parcial. Para complementar esta validao, comparou-se
o comportamento deste plugin framework com o do do ambiente Lupa, identicando as funcio-
nalidades de cada um deles e as principais diferenas, incluindo vantagens e desvantagens.
1.4 Cronograma
As etapas para a concluso do trabalho proposto, referentes ao Trabalho de Concluso de Curso,
esto relacionadas numericamente com os objetivos especcos do trabalho e seu cronograma de
-
1.4. Cronograma 13
execuo apresentado na Tabela 1.1.
Tabela 1.1: Cronograma de Execuo.
Atividade
2013 2014
Maio Junho JulhoAgosto SetembroOutubroNovembroDezembro FevereiroMaro
1 2 3 4 5 6 7 8 9 10 11
-
1.5. Estrutura do Texto 14
1.5 Estrutura do Texto
Este trabalho de concluso de curso formado por conceitos na rea de computao distribuda
no que diz respeito a manipulao de protocolos para obter checkpoints globais consistentes em
aplicaes distribudas. A descrio das abordagens de checkpointing e seus protocolos so apre-
sentadas em baixo nvel para uma melhor compreenso do assunto, principalmente porque esses
conceitos sero utilizados na implementao do plugin framework proposto. No Captulo 1 apre-
sentada uma sucinta introduo sobre a computao distribuda e checkpoiting e apresentados
os objetivos do trabalho e a metodologia para a implementao do plugin framework.
O Captulo 2 descreve, em detalhes, os conceitos e denies bsicas sobre checkpointing,
com exemplos atravs de diagramas espaco-tempo. Ao nal deste Captulo as abordagens para
checkpointing e seus protocolos so apresentados resumidamente devido ao elevado nmero de
protocolos existentes, sendo dispendioso explic-los detalhadamente, isto porque o plugin fra-
mework proposto no alterar aqueles j implementados no ChkSim.
O Captulo 3 apresenta o simulador de protocolos de checkpointing denominado ChkSim,
que ser usado para obter informaes para permitir a visualizao de histricos no plugin fra-
mework. A sua arquitetura descrita brevemente e apresentado o seu gerador de cargas,
responsvel por capturar informaes externas que sero inseridas no ChkSim. Finalmente, este
Captulo tambm apresenta umWrapper do ChkSim, responsvel por gerar resultados comparati-
vos entre protocolos. Finalmente neste Captulo apresentado o plugin framework desenvolvido,
o seu funcionamento e interface grca, alm de listar os requisitos funcionais e o casos de usos
elaborados para o desenvolvimento da ferramenta.
O Captulo 4 apresenta os resultados obtidos atravs da execuo da ferramenta desen-
volvida, comparando os protocolos de checkpointing atravs das representaes grcas geradas
pelo plugin framework. Este captulo tambm apresenta as comparaes da ferramenta pro-
posta e com a ferramenta Lupa, descreve as suas funcionalidades e interfaces grcas das duas
ferramentas e determina as vantagens e desvantagens do plugin framework em relao ao Lupa.
O Captulo 5 apresenta as concluses deste Trabalho de Concluso de Curso citando os
resultados obtidos atravs da ferramenta desenvolvida e a utilidade desta ferramenta para a
rea da Tecnologia da Informao. Neste captulo so apresentadas as diculdades encontradas
para a redao do texto e implementao da ferramenta. Alm disto, este captulo apresenta
a idealizao para os trabalhos futuros, como a atualizao para um nova verso com mais
funcionalidades.
-
Captulo 2
Checkpointing
Este Captulo traz uma condensao sobre conceitos fundamentais de checkpointing e apresenta
uma sucinta reviso sobre suas abordagens. Na Seo 2.1 apresenta-se o modelo computacional
considerado, bem como denies de eventos, checkpoints e intervalos entre checkpoints. Na Se-
o 2.2 descreve-se noes necessrias para introduzirmos o conceito de consistncia global entre
checkpoints, tais como precedncia causal, cortes, consistncia entre um conjunto de checkpoints
e zigzag paths e z-cycles. Na Seo 2.3 apresenta-se uma classicao clssica para esses algo-
ritmos de checkpointing, considerando a sincronia ou no, dentro de trs categorias: sncronos,
assncronos e quase-sncronos.
2.1 Modelo Computacional
Uma aplicao distribuda composta por um conjunto de n processos que se comunicam entre
si, somente atravs da troca de mensagens, com o objetivo de realizar uma determinada ao.
Um processo constitudo de uma sequncia de eventos no qual eji representa o j-simo evento
executado no processo Pi. Os eventos so divididos em dois formatos, os eventos de comunicao,
responsveis pelo envio e recebimento de mensagem entre os processos e os eventos internos que,
para nossos propsitos, consideraremos apenas checkpoints.
2.1.1 Eventos de comunicao
Os eventos de comunicao so encarregados de realizar a comunicao entre os processos atravs
da troca de mensagem. Uma mensagem denotada comomx, em que x o nmero da mensagem
de envio ou recebimento. Na Figura 2.1 apresentado um diagrama espao-tempo contendo dois
-
2.1. Modelo Computacional 16
processos (P0 e P1), seus respectivos eventos (e00, e
10, e
20 e e
01, e
11, e
21) e a mensagem m1 enviada
pelo evento e10 e recebida pelo evento e11.
Figura 2.1: Representao dos eventos de comunicao e troca de mensagem.
2.1.2 Eventos internos: Checkpoints
Os eventos internos so formados apenas por checkpoints locais contendo atributos referentes ao
estado do processo. O checkpoint cki denota o k-simo checkpoint do processo Pi. Os processos
realizam a retirada de um checkpoint primrio aps o inicio da execuo e outro checkpoint
antes do encerramento da aplicao. A Denio 1 apresenta a condio de existncia de um
determinado checkpoint.
Denio 1. Um checkpoint cki corresponde ao evento eki tal que, k k.
Na Figura 2.2 os estados salvos dos processos P0 e P1 so representados respectivamente
atravs dos checkpoints (c00, c10, c
20 e c
01, c
11, c
21).
Figura 2.2: Apresentao de checkpoints em uma aplicao distribuida.
Um intervalo entre checkpoints Iki constitudo de um conjunto de eventos entre dois
checkpoints do processo Pi, este intervalo pode ser rotulado de duas maneiras, rotulado esquerda
em que Iki representa o intervalo entre os checkpoints cki e c
k+1i e rotulado direita, no qual o
intervalo Iki corresponde aos checkpoints ck1i e c
ki . Na Figura 2.3 apresentado o intervalo I
10
com rotulao esquerda entre os checkpoints c10 e c20 e o intervalo I
11 com rotulao direita
entre os checkpoints c11 e c01.
-
2.2. Checkpoints Globais Consistentes 17
Figura 2.3: Intervalo entre checkpoints e suas rotulaes.
2.2 Checkpoints Globais Consistentes
Um checkpoint global composto selecionando um checkpoint de cada processo da aplicao.
Para determinar se um checkpoint global consistente, necessrio analisar a precedncia causal
entre esses checkpoints selecionados e vericar se eles so concorrentes. Nesta Seo conceitua-se
a relao de precedncia causal, deni-se checkpoints global e quando um conjunto de check-
points pode formar uma linha de recuperao na computao distribuda, introduzindo cortes e
a consistncia entre checkpoints.
2.2.1 Precdencia causal e Ordenao de Eventos
A ordenao parcial dos eventos de uma aplicao distribuda necessria para garantir a consis-
tncia da aplicao, que est interligada ao conceito de precedncia causal proposto por Lamport
(4). A caracterizao de um determinado checkpoint global consistente est fortemente conec-
tada a contextualizao de precedncia causal. A Denio 2 expressa a condio de causalidade
entre eventos. Os eventos e e e so concorrentes (e e), se no existir precedncia entre eles(e9 e e e 9 e).
Denio 2. Um evento ea precede um evento eb (e
a eb ) se
i.) a = b e = + 1, ou
ii.) existe uma mensagem m que foi enviada em ea e recebida em eb , ou
iii.) existe um evento ec tal que ea ec ec eb
Neste trabalho usa-se o conceito e a detonao de precedncia causal para representar
causalidade entre checkpoints. Desta forma a precedncia entre os checkpoints (ca cb ) existesomente se o evento ea preceder o evento e
b . Estes eventos reproduzem estados do processo que,
quando armazenados, so denominados de checkpoints ca e cb , ou seja:
-
2.2. Checkpoints Globais Consistentes 18
ea eb ca cb
Na Figura 2.4 possvel legitimar a Denio 2 em que a condio i representada pela
precedncia entre os checkpoints c00 c10, a condio ii valida a precedncia entre os eventosde comunicao e10 e21 devido ao envio da mensagem m1 entre eles, esta causalidade tambmcomprova a condio iii onde o evento e21 precede o evento e
31, resultando na relao e
10 e21e21
e31 que consequentemente dene a existncia da precedencia e10 e31.
Figura 2.4: Precedncia causal.
2.2.2 Cortes Consistentes
Um corte formado por um subconjunto de eventos locais executados por cada um dos processos
da aplicao. Um corte representado por um conjunto de n nmeros naturais {x0, x1, . . . , xn1}.Os ltimos eventos de cada processo pertencentes a um corte so denominados de fronteira de
corte descritos na seguinte forma {ex00 , ex11 , . . . , exn1n1 } ou seja, todos os eventos esquerda dafronteira de corte constituem o conjunto de um corte. A consistncia de um corte C determinada
aplicando a Denio 3 de causalidade entre quaisquer dois eventos pertencentes ao corte.
Denio 3. Um corte C consistente, para quaisquer dois eventos e e e se, e somente se,
(e C) (e e) e C
Na Figura 2.5 existem dois cortes C e I, em que o corte C, representado por um linha
preenchida, consistente, pois h relaes de precedncia e00 e01, e01 e11 e e11 e02 e asmensagens m1 e m2 so enviadas e recebidas dentro do limite do corte. Contudo, o corte I,
representado pela linha tracejada, inconsistente, porque o evento e10 no precede o evento e12,
alm disso a mensagem m3 est sendo enviada fora do limite do corte corte e recebida dentro do
corte I.
-
2.2. Checkpoints Globais Consistentes 19
Figura 2.5: Cortes em uma aplicao distribuida.
2.2.3 Consistncia Entre Checkpoints
A consistncia entre checkpoints est relacionada com a precedncia causal de Lamport. Para
determinar essa consistncia, necessria a identicao de um checkpoint global, ou seja, a sele-
o de um checkpoint de cada processo da computao, que obedea a denio de um checkpoint
global consistente. Um checkpoint global () formado por um conjunto de l checkpoints locais,
sendo um checkpoint de cada n processo da aplicao.
Denio 4. Um checkpoint global = {cl00 , . . . , cl1n1} consistente se, e somente se,
i, j : 0 i, j < n : clii 9 cljj
Atravs da denio 4 possvel dizer que um checkpoint global consistente formado
por checkpoints concorrentes entre si (c c) e representa a fronteira de um corte consistente.Na Figura 2.6 demonstrado um corte consistente C, onde a fronteira deste corte formada
pelos checkpoints concorrentes (c10 c11 c12), estes checkpoints correspondem ao um conjuntode checkpoint global consistente = {c10, c11, c12}. O corte I inconsistente devido a relao deprecedncia entre os eventos de comunicao e e e, esta relao implica que o checkpoint c10precede o checkpoint c22 (c
10 c22), resultando na no concorrncia entre estes checkpoints.
Figura 2.6: Corte consistente envolvendo checkpoints.
-
2.2. Checkpoints Globais Consistentes 20
2.2.4 ZigZag Paths e Z-Cycles
O conceito de zigzag paths (z-path) denido por Netzer e Xu (11) est relacionado anlise
das sequncias de mensagens entre um conjunto de checkpoints, esta analise est baseada na
Denio 5.
Denio 5. Uma sequncia de mensagens m1,m2, . . . ,mk uma z-path[m1,m2, . . . ,mk] que
liga um checkpoint ca a um checkpoint cb se, e somente se:
i.) a mensagem m1 enviada por Pa aps ca e
ii.) a mensagem mx, (x < k), recebida pelo mesmo processo que envia mx+1, mas mx+1 no
pode ser enviada em um intervalo anterior ao que mx foi recebida, e
iii.) mk recebida por Pb antes de cb
Netzer e Xu (11) determinaram que um conjunto de checkpoints forma algum checkpoint
global consistente se, e somente se, no existir uma z-path entre quaisquer dois checkpoints deste
conjunto.
Existem dois tipos de z-path: causais e no causais. Uma z-path causal caso a recepo de
qualquer mensagem mx, seja realizada antes do envio da mensagem mx+1. Na Figura 2.7 contm
uma z -path[m1,m2] causal que interliga os checkpoints c00 e c
12, pois a recepo da mensagem
m1 ocorre antes do envio da mensagem m2.
Figura 2.7: Z-path Path Causal.
Uma z-path no causal caso a recepo de qualquer mensagem mx seja realizada aps o
envio de mx+1. Na Figura 2.8 contm uma z-path[m1,m2] no causal que conecta os checkpoints
c00 e c12, porqu a mensagem m2 enviada antes da recepo da mensagem m1.
-
2.3. Abordagens Para Checkpointing 21
Figura 2.8: Z-path No Causal.
Uma z-path no causal entre dois checkpoints (ca e cb ) est duplicada causalmente se,
e somente se, existir uma z-path causal neste mesmo intervalo de checkpoints. Esta condio
implica na precdencia causal (ca cb ).
Uma z-path pode interligar um checkpoint a ele prprio, este checkpoint considerado um
checkpoint intil e no pertence a um checkpoint global consistente, quando isto ocorre, temos
uma zigzag cycle ou (z-cycle). Na Figura 2.9 ilustrado uma z-cycle[m1,m2,m3] que conecta
o checkpoint c12 a si mesmo, este checkpoint considerado intil devido existencia de uma z-
path[m1,m2] que interliga os checkpoints c00 e c
12 e uma z-path[m3] que conecta os checkpoints c
12
e c10, estas z-paths estabelecem que o checkpoint c12 no pertenca um checkpoint global consistente
formado pelos os checkpoints c00 e c10 resultando em um checkpoint c
12 intil para a aplicacao.
Figura 2.9: Z-Cycle.
2.3 Abordagens Para Checkpointing
Existem trs abordagens para efetuar checkpointings (18): sncrona, assncrona e a quase-
sncrona, com o objetivo principal de criar checkpoints globais consistentes em uma aplicao.
2.3.1 Sncrona
Esta abordagem suspende a execuo da aplicao para que cada um dos processos da computa-
o retirem um checkpoint global. Esta suspenso realizada interrompendo o uxo de mensagens
-
2.3. Abordagens Para Checkpointing 22
entre os processos e enviando mensagens de requisio para que os processos da computao sele-
cionem seus checkpoints. A aplicao voltar a ser executada aps o recebimento das mensagens
de conrmao da retirada dos checkpoints de outros processos.
Os checkpoints locais retirados, formam um checkpoint global consistente. Neste mtodo
os checkpoints globais consistentes so determinados instantaneamente, porm o custo da in-
terrupo da execuo da aplicao uma desvantagem, isto porque esta interrupo pode ser
ocasionada por apenas um processo da aplicao, caso este processo tenha um checkpoint rele-
vante.
Na Figura 2.10 a abordagem sncrona est sendo representada os mtodos para a seleo
de checkpoints e a formao do checkpoint global consistente = {c10, c11, c12}. Estes mtodosso realizados aps a retirada do checkpoint c11, no qual mensagens de requisio para a retirada
de checkpoints so enviadas para os processos P0 e P2 e aps o recebimento desta mensagens
os processos executam a retirada dos checkpoints locais c10 e c12 e enviam mensagens de conr-
mao deste armazenamento de checkpoints para o processo P1. As mensagens de requisio e
conrmao da retirada de checkpoints so denominadas de mensagens de controle e esto sendo
representadas por retas tracejadas.
Figura 2.10: Abordagem sncrona.
2.3.2 Assncrona
A abordagem assncrona no determina restries para a retirada de checkpoints, cada processo
da aplicao possui autonomia para a seleo de checkpoints relevantes. Os checkpoints que
no formarem um checkpoint global consistente so considerados checkpoints inteis. Nesta
abordagem no existem garantias da constituio de um checkpoint global consistente atravs dos
checkpoints selecionados em cada processo e a aplicao pode retornar ao incio da computao
em caso de falha, esta situao conhecida como efeito domin (12).
Na Figura 2.11 ilustrado um checkpoint global consistente = {c00, c01, c12} e um checkpoint
-
2.3. Abordagens Para Checkpointing 23
inutil c02, pois este checkpoint no faz parte de um checkpoint global consistente. Alm disso na
Figura 2.11 exemplicado o cenrio de efeito domin, no qual em caso de a falha nos processos P0
e P1, a aplicao dever retroceder ao inicio da computao, pois os checkpoints destes processos
que formam o checkpoint global consistente (), so considerados como checkpoints inicias dos
processos.
Figura 2.11: Abordagem assncrona.
2.3.3 Quase-sncrona
A abordagem quase-sncrona (8) a combinao das abordagens sncrona e assncrona, na qual a
seleo de checkpoints forados est associada a padres de checkpointing que utiliza protocolos
baseados na anlise das trocas de mensagens da aplicao. Um checkpoint global consistente nesta
abordagem formado selecionando checkpoints bsicos e forados da computao. Os processos
da aplicao dispem da liberdade de escolher de seus checkpoints, porm devem garantir a
determinao de um checkpoint global consistente.
Na Figura 2.12 representada uma abordagem quase-sncrona para a determinao do um
checkpoint global consistente = {c10, c11, c12} , no qual este checkpoint global consistente formadopelos checkpoins bsicos (c10 e c
12) e pelo checkpoint forado c
11.
Figura 2.12: Abordagem Quase-sncrona.
Os padres de checkpointing na abordagem quase-sncrona so divididos em quatros classes
de protocolos: Strictly Z-Path Free (SZPF), Z-Path Free (ZPF), Z-Cycle Free (ZCF) e Partially
-
2.3. Abordagens Para Checkpointing 24
Z-Cycle Free (PZCF), que no ser explorado neste trabalho por no garantir a constituio de
checkpoints globais consistentes. Estes protocolos levam em considerao os conceitos de z-paths e
z-cycles descritos na Seo 2.2.4 para gerar checkpoints globais consistentes. Os protocolos SZPF
garantem que a aplicao esteja livre de z-path no causais entre checkpoints e utilizam rastre-
adores de dependncia baseados nas propriedades de Rollback-Dependency Trackability (RDT)
(2) que tambm utilizado nos protocolos ZPF. Esses protocolos diferem dos protocolos SZPF
por permitir a existncia de z-paths no cauais, porm estas z-paths devem estar duplicadas cau-
salmente. Os protocolos ZCF impedem apenas a existncia de z-cycles, enquanto os protocolos
PZCF no garantem a ausncia total de checkpoints inteis e so considerados simplicaes dos
protocolos ZPF e ZCF. Esta hierarquia entre estes protocolos na representada na Figura 2.13.
Figura 2.13: Classes de protocolos quase-sncronos.
Strictly Z-Path Free (SZPF)
Os protocolos SZPF permitem apenas a existncia z-paths causais. A retirada de checkpoints
forados neste padro est baseada na garantia de precedncia entre os eventos de comunicao
de um determinado intervalo entre checkpoints. Alm disso, estes protocolos asseguram au-
sncia de checkpoints inteis e possibilita o rastreamento de dependncias atravs de vetores de
dependncia ou vetores de relgios. Estes protocolos so especicados com base no ModeloMark-
Receive-Send proposto por Russell (14) em 1980. Na Figura 2.14 o Modelo Mark-Receive-Send
ilustrado no processo Pi.
Figura 2.14: Modelo Mark-Receive-Send.
-
2.3. Abordagens Para Checkpointing 25
Z-Path Free (ZPF)
Os protocolos ZPF permitem a existncia de z-paths causais e z-paths no causais, desde que
estas z-paths no causais estejam duplicadas causalmente. Neste padro a retirada de um check-
point forado ocorre antes da recepo de uma mensagem m, duplicando causalmente as z-paths
no causais existentes. Na Figura 2.15 ilustrado o comportamento do protocolo FDI (Fixed-
Dependency-Interval) (21), em que os checkpoints forados c11 e c10 so retirados respectivamente
antes da recepo da mensagens m1 e m2. A z-path[m3,m2] no causal est duplicada causal-
mente pela z-path[m1,m2] causal.
Figura 2.15: Z-Path Free (ZPF) - FDI.
Z-Cycle Free (ZCF).
Os protocolos ZCF permitem a existncia z-paths causais e no causais, contudo so livres de
z-cycles. Estes protocolos garantem a utilidade de todos checkpoints da aplicao. A retirada
de checkpoints forados neste padro menor em comparao os protocolos ZPF descritos an-
teriormente. Na Figura 2.16 existe uma ilustrao do comportamento do protocolo BCS (3), no
qual existe uma z-path[m1,m2] no causal que no duplicada causalmente e a seleo de um
checkpoint forado c12 antes da formao da z-cycle[m1,m2,m3].
Figura 2.16: Z-Cycle Free (ZCF) - BCS.
-
Captulo 3
ChkSim
Este captulo apresenta o funcionamento ChkSim (19). O ChkSim uma ferramenta porttil
usada para simular a execuo de protocolos de checkpointing atravs de histricos de compu-
taes distribudas e permitir a comparao entre esses protocolos. Na Seo 3.1, a arquitetura
do ChkSim detalhada e as classes que formam esta arquitetura so brevemente explicadas. Na
Seo 3.2 descrita o formato de execuo do gerador de cargas LoadGenerator e suas rami-
caes StatisticLG e LupaLogLG. Na Seo 3.3 contm o funcionamento do Wrapper, responsvel
por gerar os arquivos sada do ChkSim. Seo 3.3 apresentada a ferramenta desenvolvida neste
Trabalho de Concluso de Curso, suas funcionalidades e interface grca e a lista de requisitos
funcionais e casos de uso elaborados para o desenvolvido do plugin framework.
3.1 Arquitetura
A arquitetura do ChkSim suporta a manipulao dos conceitos apresentados no Captulo 2.
Seu funcionamento do ChkSim consiste no processamento, em tempo de execuo, de algoritmos
baseados nos protocolos das abordagens quase-sncrona e sncrona no bloqueante em simulaes
de computaes distribudas geradas manualmente em um arquivo no formato XML, em que este
arquivo representa uma aplicao distribuda, as representaes podem ser articiais, geradas
atravs de informaes pr-denidas que simulam uma aplicao distribuda, ou reais, geradas
atravs de histricos de execuo de uma aplicaao distribuda real. Na Figura 3.1 ilustrada a
arquitetura do ChkSim, no qual as representaes das sequncias de eventos so carregadas atravs
da interface LoadGenerator e so processadas na classe Simulator, a qual contm os algoritmos
implementados nas abordagens quase-sncrona e sncrona no bloqueante.
-
3.2. Gerador de Cargas 27
Figura 3.1: Arquitetura ChkSim
3.2 Gerador de Cargas
O gerador de cargas LoadGenerator identica e encapsula representaes de sequncias de men-
sagens de computaes distribudas atravs da leitura de um arquivo XML. O arquivo XML pode
conter simulaes de computaes distribudas articiais que so processadas pela classe Statis-
ticLG ou conter histricos de computaes distribudas reais, que so identicadas pelo gerador
de cargas LupaLogLG.
O gerador de cargas StatisticLG identica, atravs da leitura do arquivo XML, os compo-
nentes essenciais para a simulao de uma computao distribuda, como o nmero de processos
e eventos. Estas informaes so encapsuladas no arquivo XML juntamente com um valor que
serve como semente para o gerador de cargas e caractersticas sobre a existncia de simetria ou
no entre os processos. Essa semente permite a criao de eventos de modo determinstico e
a simetria ou no entre os processos permite padronizar a execuo desses eventos dentro de
intervalos entre checkpoints.
O gerador de cargas LupaLogLG, identica informaes de execues de aplicaes dis-
tribudas. Essas informaes so obtidas atravs da substituio da biblioteca OpenMPI pela
biblioteca chkmpi. Nesse caso, o LupaLogLG ignora o valor da semente dada e a quantidade de
eventos a serem gerados, descritos no arquivo XML, pois estas informaes no so usadas por
esse gerador de cargas. As informaes obtidas com a execuo da aplicao distribuda devem
ser incorporadas ao arquivo XML. Com o resultado da execuo de uma aplicao distribuda, so
gerados dois arquivos, contendo o histrico de eventos de comunicao e de checkpoints bsicos
retirados, respectivamente. Cada linha do primeiro arquivo contm os nmeros dos processos
origem e destino e os tempos lgicos de envio e recebimento de mensagens. Cada linha do se-
gundo arquivo contm o nmero do processo e o tempo lgico em que este retirou um checkpoint
bsico.
-
3.3. Wrapper 28
3.3 Wrapper
O Chksim contm um Wrapper que permite a criao de arquivos de sada, visualizados atravs
da ferramenta GnuPlot. O Wrapper do ChkSim gera dois arquivos sada: um no formato .data,
em que na primeira coluna do arquivo contm a quantidade de processos e nas colunas seguintes
tem-se o nmero mdio de checkpoints retirados por algoritmo especicado no arquivo XML.E
outro arquivo no formato .plot, que visualizado pelo GnuPlot, representa gracamente os dados
gerados no arquivo .data.
Os arquivos de sada so nomeados atravs de um padro e diferem em seus formatos:
-.data e -.plot, em que
representa o nome do arquivo XML executado e a mtrica representa o tipo checkpoint determi-
nado pelo arquivo XML, esta mtrica pode ser de checkpoints forados (Forced) ou de checkpoints
bsicos (Basic).
Na Figura 3.2 contm um screenshot da representao de um arquivo .plot. Esta represen-
tao consiste em um grco dos processos em relao a nmero mdio de checkpoints forados
retirados por processo pelos seguintes protocolos da classe ZCF : BCS (3), BCSAftersend (18),
BCSPartner (18), HMNR (6) e FINE (7).
Figura 3.2: Visualizao de uma sada no formato .plot utilizando a ferramenta GnuPlot.
-
3.4. O Plugin Framework proposto 29
3.4 O Plugin Framework proposto
O plugin framework da ferramenta ChkSim foi desenvolvido na linguagem de programao Java
para este Trabalho de Concluso de Curso, e consiste em um instrumento para a visualizao
grca, usando diagramas espao-tempo, do comportamento de aplicaes distribudas e anlise
do comportamento de protocolos de checkpointing na abordagem Quase-Sncrona. Na Figura
3.3 contm ilustrada a modelagem de domnio da aplicao, em que so apresentadas as prin-
cipais classes do ChkSim e todas as classes que compem o plugin framework, no qual o pacote
ufgd.edu.br.interfaces contm as classes implementadas para a manipulao grca do plugin fra-
mework e o pacote ufgd.edu.br.entity contm as classes implementadas para a manipulao dos
histricos de comunicao da aplicao distrbuida carregados pelo ChkSim.
Figura 3.3: Modelagem de Domnio - Plugin Framework do ChkSim
-
3.4. O Plugin Framework proposto 30
Para o desenvolvimento desta ferramenta, houve a necessidade de estudo do cdigo fonte
do ChkSim para encontrar uma maneira de implementar o plugin framework, de tal modo que
no houvesse alterao de cdigo, mas , apenas adies pontuais para a captura de informaes
necessrias para a formao das representaes grcas dos histricos das aplicaes distribudas.
As nicas classes que sofreram adicionamento de cdigo esto contidas na Figura 3.3, contudo
a classe com maior relevncia para o plugin framework a QuasiSynchronousSimulator, pois esta
responsvel por identicar, analisar e executar os protocolos de checkpointing para todos os
eventos da aplicao carregada atravs do arquivo XML.
A execuo do plugin framework segue os padro de execuo do ChkSim, atravs da linha
de comando, no qual informado um arquivo com extenso .XML, que contm informaes sobre
o histrico de uma aplicao distribuda e quais de protocolos de checkpointing sero simulados.
A Figura 3.4 mostra como um arquivo .XML pode ser carregado pelo ChkSim.
Figura 3.4: Execuo do Plugin Framework do ChkSim - Linha de Comando
O tempo de execuo pode variar de acordo com o tamanho do histrico de uma aplicao,
pois as aplicaes maiores tendem a demorar mais para executar e portanto geram histricos
maiores. Para demonstrar a manipulao destes histricos existe um loading que informa ao
usurio a porcentagem que est sendo carregada e quais informaes esto sendo manipuladas
no momento. Esse loading apresentado na Figura 3.5.
Figura 3.5: Carregando o Plugin Framework do ChkSim
Aps carregar todas as informaes necessrias o plugin Framework propriamente dito
apresentado. A Figura 3.6 contm um screenshot do plugin Framework, o qual apresenta a fer-
ramenta sendo executada para um histrico de comunicao de uma aplicao distrbuida com 8
processos e executando o protocolo de checkpointing BCS. A representao grca de uma apli-
cao apresentada atravs de um diagrama espao-tempo, em que cada o processo da aplicao
representado por linhas horizontais pretas, os eventos de comunicao so representados por
crculos em vermelho, as mensagens enviadas e recebidas nos processos atravs de linhas na cor
cinza, os checkpoints bsicos representados por quadrados na cor azul e os checkpoints forados
na cor laranja. As funcionalidades do plugin framework estaro descritas posteriormente na lista
de casos de usos atravs da Tabela 3.2.
-
3.4. O Plugin Framework proposto 31
Figura 3.6: O Plugin Framework do ChkSim propriamente dito.
As representaes grcas podem ser exportadas para o formato SVG (Scalable Vector
Graphics) atravs da opo Exportar para SVG, permitindo ao usurio visualizar o compor-
tamento da aplicao distribuda atravs de seus histricos de comunicao e de checkpoints
em ambientes com suporte a este tipo de formato. A Figura 3.7 contm uma screenshot da
visualizao de um arquivo SVG exportado da aplicao.
Figura 3.7: Visualizao atravs de um navegador de Internet de um arquivo SVG exportado da
aplicao
-
3.4. O Plugin Framework proposto 32
Para entender melhor o funcionamento do plugin framework do ChkSim so listados na
Tabela 3.1 o conjunto de requisitos funcionais e os casos de uso existentes so listados na Tabela
3.2.
Os requisitos funcionais listados na Tabela 3.1 para o plugin framework do ChkSim foram
considerados obrigatrios.
RF Descrio
#1 O Plugin Framework deve permitir ao usurio visualizar a representa-
o grca de uma aplicao distribuda contida em um arquivo XML
carregado pelo ChkSim.
#2 O usurio deve ter a opo selecionar o protocolo de checkpointing, n-
mero de processos e o intervalo entre cada checkpoint bsico(adicional)
para a escolha da representao grca.
#3 O usurio deve ter a opo visualizar a representao grca da aplica-
o distribuda com os seguintes opcionais de visualizao: numerao
de eventos de comunicao, numerao de checkpoints, mostrar apenas
checkpoints bsicos e/ou forados.
#4 O usurio deve ter a opo exportar a representao grca da aplicao
distribuda para um arquivo SVG.
#5 O Plugin Framework deve exibir ao usurio informaes relevantes a res-
peito da representao da aplicao como: protocolo de checkpointing,
nmero de processos, nmero total de eventos, nmero total de check-
points, nmero de checkpoints bsicos e forados, e intervalo entre cada
checkpoint bsico no processo P0 e nos demais processos.
#6 O Plugin Framework deve exibir ao usurio uma legenda para a repre-
sentao grca da aplicao distribuda.
Tabela 3.1: Requisitos Funcionais do plugin framework do ChkSim
-
3.4. O Plugin Framework proposto 33
Os casos de uso listados na Tabela 3.2 para o plugin framework do ChkSim foram conside-
rados obrigatrios:
Visualizar aplicaes distribudas atravs de diagrama espao-tempo.
UC: 1
Ator: Usurio
Breve Descrio
Permite ao usurio visualizar a aplicao distribuda de acordo com a seleo do nmero de
processos, protocolo de checkpointing e o intervalo entre cada checkpoint bsico(adicional), com
a nalidade de visualizar situaes aplicao distribuda desejada.
Exportar diagramas espao para o formato SVG.
UC: 2
Ator: Usurio
Breve Descrio
Permite ao usurio exportar a representao grca da aplicao distribuda para o formato
SVG. Tem como a nalidade a visualizao da representao gracamente fora do interface da
ferramenta ou em WebSites
Visualizar opcionalmente conceitos de checkpointing no diagrama espao-tempo.
UC: 3
Ator: Usurio
Breve Descrio
Permite ao usurio escolher se deseja visualizar o numerao dos eventos de comunicao, nu-
merao dos checkpoints e checkpoints bsicos e/ou forados. Tem a nalidade de visualizar as
representaes grcas de acordo com a necessidade desejada.
Tabela 3.2: Casos de Uso do plugin framework do ChkSim
O plugin framework do ChkSim denido como uma ferramenta para a visualizao das
representaes grcas de aplicaes distribidas carregadas pelo ChkSim, atravs de diagramas
espao-tempo que permite ao usurio visualizar os histricos de comunicao de uma aplicao
distribuda e bem como entender o comportamento de protocolos de checkpointing.
-
Captulo 4
Resultados
Este captulo apresenta os resultados obtidos no desenvolvimento do plugin framework do Chk-
Sim e a comparao da ferramenta desenvolvida com a ferramenta Lupa. Pois, o Lupa utiliza
uma distribuio no mais mantida do MPI, denominada LAM-MPI (Local Area Multicomputer-
Message Passing Interface), e o ChkSim utiliza a biblioteca OpenMPI, que o MPI mantido pela
comunidade atual e ainda no tem suporte para algumas funcionalidades do LAM-MPI.
4.1 Resultados Obtidos
Para a realizao dos testes, obtive-se histricos da execuo da aplicao EP, do NAS Parallel
Benchmarks (1), em trs cenrios adaptados para aplicaes distribudas por Vieira e Buzato
(20). A aplicao EP efetua a gerao variveis aleatrias Gaussianas independentes, utilizando
o mtodo polar Marsaglia (9), um mtodo de amostragem de nmero pseudo-aleatrio para
gerar um par de variveis aleatrias normais com padres independentes. Esses trs cenrios so
apresentados a seguir:
SP : Os processos foram coletados em funo de nmero os processos na aplicao. Este
cenrio composto pelo nmero de processos existentes na aplicao e o intervalo de eventos de
comunicao para cada checkpoint bsico denido por 40 para todos os processos.
SI : Os processos foram coletados em funo do tamanho do intervalo de checkpoints. Este
cenrio composto por 8 processos e os intervalos de checkpointing bsicos variam entre 4 e 118
eventos de comunicao para todos os processos.
VA: Os processos foram coletados em funo da diferena assimtrica. Este cenrio
composto por 8 processos e os intervalos de checkpointing bsicos no processo P0 variam 42
-
4.1. Resultados Obtidos 35
2 eventos de comunicao e os demais processos da aplicao mantm o intervalo de 44 eventos
de comunicao para checkpointing bsicos.
Para a execuo destes trs cenrios foram utilizados os protocolos de checkpointing BCS,
LazyBCS, LazyBCSAftersend, LazyBCSPartner, HMNR, Fine e LazyHMNR da classe ZCF e os
protocolos FDAS, RDTPartner, RDTMinimal, BHMR da classe ZPF.
Considerando o cenrio SP, atravs da visualizao do diagrama espao-tempo gerado
para um nmero de 8 e 16 processos, percebeu-se que os protocolos da classe ZCF, de modo
geral, economizam mais checkpoints forados que os protocolos da classe ZPF. De acordo com os
dados apresentados nas Tabelas 4.1 e 4.2, obtidos atravs da execuo do ChkSim com o plugin
framework, possvel armar que o protocolo LazyHMNR economiza mais checkpoints forados
entre os protocolos ZCF para a aplicao EP.
8 Processos Checkpoints 16 Processos Checkpoints
Algoritmo Bsicos Forados Algoritmo Bsicos Forados
BCS 16 29 BCS 64 258
LazyBCS 16 29 LazyBCS 64 258
LazyBCSAftersend 16 12 LazyBCSAftersend 64 61
LazyBCSPartner 16 12 LazyBCSPartner 64 61
HMNR 16 12 HMNR 64 61
Fine 16 12 Fine 64 61
LazyHMNR 16 11 LazyHMNR 64 51
Tabela 4.1: Aplicao EP no cenrio SP com 8 e 16 processos executando os protocolos de
checkpointing da classe ZCF - Nmero de checkpoints bsicos e forados.
8 Processos Checkpoints 16 Processos Checkpoints
Algoritmo Bsicos Forados Algoritmo Bsicos Forados
FDAS 16 39 FDAS 64 78
RDTPartner 16 39 RDTPartner 64 78
RDTMinimal 16 39 RDTMinimal 64 78
BHMR 16 39 BHMR 64 78
Tabela 4.2: Aplicao EP no cenrio SP com 8 e 16 processos executando os protocolos de
checkpointing da classe ZPF - Nmero de checkpoints bsicos e forados.
-
4.1. Resultados Obtidos 36
Considerando o cenrio SI atravs, da visualizao do diagrama espao-tempo gerado
para o nmero processos xado em 8 e os intervalos de checkpointing bsicos variando 4 at
70 eventos de comunicao, percebeu-se assim como no cnario SP, que o protocolo LazyHMNR
retirou o menor nmero checkpoints forados. Porm o nmero de checkpoints forados retirados
por todos os protocolos da classe ZPF permaneceu igual, variando apenas para cada intervalo
de checkpointing bsico. Alm disso, os protocolos da classe ZPF economizaram checkpoints
forados em relao aos protocolos BCS e LazyBCS da classe ZCF nos intervalos entre 4
28 eventos de comunicao. De acordo com os dados apresentados nas Tabelas 4.3, 4.4, 4.5 e
4.6, obtidos atravs da execuo do ChkSim com o plugin framework, possvel rearmar que
o protocolo LazyHMNR economiza mais checkpoints forados entre os protocolos ZCF, contudo
os protocolos da classe ZPF economizam checkpoints forados em relao aos protocolos BCS e
LazyBCS da classe ZCF nos intervalos entre 4 28 eventos de comunicao.
Intervalo 4-4 Intervalo 10-10 Intervalo 16-16
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 160 211 64 108 40 0
LazyBCS 160 199 64 108 40 0
LazyBCSAftersend 160 25 64 32 40 0
LazyBCSPartner 160 25 64 32 40 0
HMNR 160 24 64 32 40 0
Fine 160 24 64 32 40 0
LazyHMNR 160 15 64 30 40 0
FDAS 160 30 64 36 40 35
RDTPartner 160 30 64 36 40 35
RDTMinimal 160 30 64 36 40 35
BHMR 160 30 64 36 40 35
Tabela 4.3: Aplicao EP no cenrio SI com 8 processos e os intervalos entre checkpointing
bsicos de 4, 10 e 16 eventos de comunicao executando os protocolos das classes ZCF e ZPF.
-
4.1. Resultados Obtidos 37
Intervalo 22-22 Intervalo 28-28 Intervalo 34-34
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 24 59 16 44 16 37
LazyBCS 24 59 16 44 16 37
LazyBCSAftersend 24 26 16 21 16 19
LazyBCSPartner 24 25 16 20 16 19
HMNR 24 25 16 20 16 19
Fine 24 25 16 20 16 19
LazyHMNR 24 24 16 15 16 19
FDAS 24 38 16 38 16 39
RDTPartner 24 38 16 38 16 39
RDTMinimal 24 38 16 38 16 39
BHMR 24 38 16 38 16 39
Tabela 4.4: Aplicao EP no cenrio SI com 8 processos e os intervalos entre checkpointing
bsicos de 22, 28 e 34 eventos de comunicao executando os protocolos das classes ZCF e ZPF.
Intervalo 40-40 Intervalo 46-46 Intervalo 52-52
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 16 29 8 8 8 22
LazyBCS 16 29 8 8 8 22
LazyBCSAftersend 16 12 8 8 8 10
LazyBCSPartner 16 12 8 8 8 10
HMNR 16 12 8 8 8 10
Fine 16 12 8 8 8 10
LazyHMNR 16 11 8 2 8 10
FDAS 16 39 8 38 8 39
RDTPartner 16 39 8 38 8 39
RDTMinimal 16 39 8 38 8 39
BHMR 16 39 8 38 8 39
Tabela 4.5: Aplicao EP no cenrio SI com 8 processos e os intervalos entre checkpointing
bsicos de 40, 46 e 52 eventos de comunicao executando os protocolos das classes ZCF e ZPF.
-
4.1. Resultados Obtidos 38
Intervalo 58-58 Intervalo 64-64 Intervalo 70-70
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 8 22 8 0 8 29
LazyBCS 8 22 8 0 8 29
LazyBCSAftersend 8 11 8 0 8 11
LazyBCSPartner 8 11 8 0 8 11
HMNR 8 11 8 0 8 11
Fine 8 11 8 0 8 11
LazyHMNR 8 8 8 0 8 11
FDAS 8 38 8 38 8 39
RDTPartner 8 38 8 38 8 39
RDTMinimal 8 38 8 38 8 39
BHMR 8 38 8 38 8 39
Tabela 4.6: Aplicao EP no cenrio SI com 8 processos e os intervalos entre checkpointing
bsicos de 58, 64 e 70 eventos de comunicao executando os protocolos das classes ZCF e ZPF.
Considerando o cenrio VA, atravs da visualizao do diagrama espao-tempo gerado com
o plugin framework para o nmero processos xado em 8, e os intervalos de checkpointing bsicos
variando 42 a 2 eventos de comunicao no processo P0 e nos demais processos com o intervalo de
checkpointing bsicos xo em 42 eventos de comunicao, percebeu-se assim como nos cenrios
SI e SP, que o protocolo LazyHMNR retirou o menor nmero checkpoints forados. Alm disto,
todos os protocolos da classe ZPF retiraram 38 checkpoints forados, independente do intervalo
de checkpointing bsicos, e economizaram checkpoints forados em comparao aos protocolos
BCS e LazyBCS para os intervalos de 10, 6 e 2 eventos de comunicao. De acordo com os
dados apresentados nas Tabelas 4.7, 4.8, 4.9 e 4.10, obtidos atravs da execuo do ChkSim com
o plugin framework, possvel rearmar que o protocolo LazyHMNR economiza mais checkpoints
forados entre os protocolos ZCF. Contudo os protocolos da classe ZPF economizam checkpoints
forados em relao aos protocolos BCS e LazyBCS da classe ZCF, nos intervalos de 10, 6 e 2
eventos de comunicao, porm o nmero de checkpoints forados retirados para os protocolos
ZPF permaneceu xo em 38, independente da variao de intervalos de checkpointing bsicos.
-
4.1. Resultados Obtidos 39
Intervalo 42-44 Intervalo 38-44 Intervalo 34-44
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 8 15 9 23 9 30
LazyBCS 8 15 9 23 9 30
LazyBCSAftersend 8 10 9 12 9 21
LazyBCSPartner 8 9 9 12 9 20
HMNR 8 9 9 12 9 20
Fine 8 9 9 12 9 20
LazyHMNR 8 5 9 7 9 17
FDAS 8 38 9 38 9 38
RDTPartner 8 38 9 38 9 38
RDTMinimal 8 38 9 38 9 38
BHMR 8 38 9 38 9 38
Tabela 4.7: Aplicao EP no cenrio VA com 8 processos e os intervalos entre checkpointing
bsicos de 42, 38 e 34 eventos de comunicao no processo P0 e 44 eventos de comunicao paraos demais processos, executando os protocolos das classes ZCF e ZPF.
Intervalo 30-44 Intervalo 26-44 Intervalo 22-44
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 9 22 10 22 10 29
LazyBCS 9 22 10 22 10 29
LazyBCSAftersend 9 15 10 13 10 20
LazyBCSPartner 9 14 10 13 10 19
HMNR 9 14 10 13 10 19
Fine 9 14 10 13 10 19
LazyHMNR 9 11 10 11 10 18
FDAS 9 38 10 38 10 38
RDTPartner 9 38 10 38 10 38
RDTMinimal 9 38 10 38 10 38
BHMR 9 38 10 38 10 38
Tabela 4.8: Aplicao EP no cenrio VA com 8 processos e os intervalos entre checkpointing
bsicos de 30, 26 e 22 eventos de comunicao no processo P0 e 44 eventos de comunicao paraos demais processos, executando os protocolos das classes ZCF e ZPF.
-
4.1. Resultados Obtidos 40
Intervalo 18-44 Intervalo 14-44 Intervalo 10-44
Checkpoints Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados Bsicos Forados
BCS 11 36 12 35 15 40
LazyBCS 11 36 12 35 15 40
LazyBCSAftersend 11 29 12 28 15 29
LazyBCSPartner 11 28 12 27 15 28
HMNR 11 28 12 27 15 28
Fine 11 28 12 27 15 28
LazyHMNR 11 24 12 19 15 23
FDAS 11 38 12 38 15 38
RDTPartner 11 38 12 38 15 38
RDTMinimal 11 38 12 38 15 38
BHMR 11 38 12 38 15 38
Tabela 4.9: Aplicao EP no cenrio VA com 8 processos e os intervalos entre checkpointing
bsicos de 18, 14 e 10 eventos de comunicao no processo P0 e 44 eventos de comunicao paraos demais processos, executando os protocolos das classes ZCF e ZPF.
Intervalo 6-44 Intervalo 2-44
Checkpoints Checkpoints
Algoritmo Bsicos Forados Bsicos Forados
BCS 20 63 47 97
LazyBCS 20 52 47 45
LazyBCSAftersend 20 27 47 25
LazyBCSPartner 20 27 47 25
HMNR 20 33 47 33
Fine 20 27 47 31
LazyHMNR 20 24 47 25
FDAS 20 38 47 38
RDTPartner 20 38 47 38
RDTMinimal 20 38 47 38
BHMR 20 38 47 38
Tabela 4.10: Aplicao EP no cenrio VA com 8 processos e os intervalos entre checkpointing
bsicos de 6 e 2 eventos de comunicao no processo P0 e 44 eventos de comunicao para osdemais processos, executando os protocolos das classes ZCF e ZPF.
Atravs da execuo do plugin framework para estes cenrios na aplicao distribuda EP,
foram gerados diagramas espao-tempo, que permitiram analisar as representaes grcas da
aplicao distribuda manualmente em comparao aos histricos de comunicao carregados
pelo ChkSim. Os checkpoints forados retirados gerados nas representaes grcas para os
diferentes protocolos de checkpointing implementados no ChkSim na abordagem Quase-Sncrona
-
4.2. Comparao com a ferramenta Lupa 41
foram vericados analisando manualmente as heursticas de cada protocolo de checkpointing em
comparao aos resultados gerados nos diagramas espao-tempo pela ferramenta desenvolvida.
4.2 Comparao com a ferramenta Lupa
O plugin framework do ChkSim uma ferramenta similar a ferramenta Lupa, que consistem um
ambiente de visualizao e animao de sistemas distribudos que utiliza o conceito de checkpoints
para construir sequncias de animao de algoritmos atravs de diagramas espao-tempo.
Para validar a ferramenta desenvolvida realizou-se comparaes entre o plugin framework
e ao Lupa am de confrontar suas funcionalidades e as interfaces grcas, para determinar as
vantagens e desvantagens do plugin framework do ChkSim em relao ao Lupa. Estas comparaes
so apresentadas atravs dos dados contidos na Tabela 4.11.
Funcionalidades Plugin Framework Lupa
Apresenta o nmero de
Sim No
processos da aplicao
Apresenta o intervalo
Sim No
entre checkpoints
Visualizao de
Sim Sim
checkpoints bsicos
Visualizao opcional
Sim No
de checkpoints forados
Visualizao do tempo
Sim Sim
lgico dos eventos
Construo de checkpoints
No Sim
globais consistentes
Permite a execuo de uma
No se aplica Sim
aplicao distribuda pela ferramenta
Exporta para formato SVG Sim No
Interfaces grcas Plugin Framework Lupa
Uso de legendas para
Sim No
apresentao das caractersticas
Visualizao do nmero de
Sim Sim
checkpoints bsicos/forados
Tabela 4.11: Comparando o plugin framework do ChkSim com o Lupa.
-
4.2. Comparao com a ferramenta Lupa 42
4.2.1 Vantagens e Desvantagens em comparao ao Lupa
Atravs dos dados de comparao entre as funcionalidades e as interfaces grcas da ferramenta
proposta e do Lupa apresentados Tabela 4.11, possvel determinar que o plugin framework do
ChkSim exerce vantagens signicativas e uma desvantagem expressiva sobre o Lupa.
No quesito de funcionalidades, a ferramenta proposta permite ao usurio selecionar diferen-
tes protocolos de checkpointing para uma determinada aplicao distribuda, permite ao usurio
selecionar diferentes intervalos de checkpointing bsico, permite ao usurio visualizar opcional-
mente checkpoints forados, alm disto uma vantagem importante, referente a funcionalidade de
exportao dos diagramas espao-tempo para o formato SVG, que permite ao usurio visualizar
as representaes geradas em diferentes ambientes com suporte a este tipo de formato.
No quesito de interfaces grcas, plugin framework do ChkSim exerce uma vantagem sobre
o Lupa, pois a ferramenta desenvolvida apresenta uma legenda para os diagramas espao-tempo,
permitindo aos usurios uma fcil compreenso sobre estes diagramas gerados para uma deter-
minada aplicao distribida.
Contudo uma desvantagem expressiva em relao ao Lupa a no obteno de checkpoints
globais consistentes, na qual a ferramenta Lupa obtm estes checkpoints globais consistentes a
partir da seleo de qualquer checkpoint representado no diagrama espao-tempo gerado pela
prpria ferramenta.
-
Captulo 5
Consideraes Finais
Este captulo apresenta as concluses sobre o trabalho desenvolvido, as diculdades encontradas
ao longo deste desenvolvimento e sugesto de trabalhos futuros.
5.1 Concluses
Com o desenvolvimento do plugin framework proposto para visualizao do histrico de apli-
caes distribudas, atravs de diagramas espao-tempo, acredita-se que a visualizao grca
dessas aplicaes auxilia de maneira dedigna para entender o comportamento de protocolos
de checkpointing. Alm disso, atravs do plugin framework pode-se facilmente vericar uma
diferena entre os protocolos ZPF e ZCF quando executando a aplicao EP do NAS (1) nos
cenrios apresentados.
Considerando a aplicao EP, conseguiu-se mostrar, atravs de trs cenrios, diagramas
espao-tempo gerados atravs da ferramenta proposta, foi possvel analisar, por meio desses
diagramas que na aplicao EP, o protocolo LazyHMNR da classe ZCF obteve o melhor desem-
penho em comparao aos demais protocolos das classes ZCF e ZPF. Claramente, os protocolos
ZCF retiram menos checkpoints forados que os protocolos ZPF. Para a aplicao EP, esse fato
ocorre porqu os protocolos da classe ZCF permitem a existncia de z-paths causais e z-paths
no causais, no permitindo a existncia z-cycles, garantindo utilidade de todos os checkpoints
da aplicao.
As comparaes realizadas em termos de funcionalidades e interfaces grcas do plugin fra-
mework com o Lupa mostraram que o primeiro exerce uma relevante vantagem sobre o segundo
devido s inmeras funcionalidades existentes na ferramenta proposta, contudo a no represen-
-
5.2. Diculdades Encontradas 44
tao de checkpoints globais por parte do plugin framework consiste em uma desvantagem em
relao ao Lupa.
Como contribuio, a visualizao grca de histricos de aplicaes distribudas gerados
pelo plugin framework pode ser til para estudantes da rea da Tecnologia da Informao, pois
com isso eles podem compreender este tipo de aplicao e o comportamento de protocolos de
checkpointing.
5.2 Diculdades Encontradas
Primeiramente as diculdades encontradas foram relacionadas aos conceitos de protocolos de
checkpointing. Apesar do conhecimento adquirido no curso de Bacharelado em Sistemas de
Informao, este Trabalho de Concluso de Curso englobou conceitos especcos sobre aplicaes
distribudas, como os conceitos envolvendo checkpointing.
Outras diculdades surgiram na redao do texto, devido ao uso da plataforma L
A
T
E
X,
que no comeo mostrou-se uma ferramenta de gerao de textos complexa. Contudo, aps a
pratica adquirida com o desenvolvimento do Trabalho de Concluso de Curso I, esta ferramenta
mostrou-se mais simples e eciente para a redao de textos.
Finalmente, na implementao do Plugin Framework, as diculdades ocorreram, princi-
palmente, na manipulao das bibliotecas disponveis na linguagem de programao Java para
o desenvolvimento de desenhos geomtricos, exigindo uma lgica e estrutura de programao
relativamente complexa para a gerao automtica das representaes grcas dos histricos das
aplicaes distribudas, alm de um estudo do formato de arquivos SVG, formato este que foi
denido no Trabalho de Concluso de Curso I como ideal para a exportao das representaes
grcas geradas pela ferramenta proposta.
5.3 Trabalhos Futuros
Este Trabalho de Concluso de Curso elencou como prioridade a gerao de representaes gr-
cas de histricos de aplicaes distribudas, os quais so carregadas no ChkSim atravs do gerador
de cargas denominado LupaLogLG, descrito no Captulo 3 (Seo 3.2) e essas representaes gera-
das atravs da ferramenta desenvolvida. Contudo, para o plugin framework gerar representaes
grcas a partir do StatisticLG, necessria a adio e alterao no cdigo-fonte do ChkSim.
Sendo assim, esta uma situao prevista para uma nova verso do plugin framework.
-
5.3. Trabalhos Futuros 45
Outra proposta de trabalhos futuros permitir ao plugin framework a visualizao das
representaes grcas considerando os protocolos de checkpointing da abordagem Sncrona No-
Bloqueante. Esta variante da abordagem Sncrona no est descrita neste Trabalho de Concluso
de Curso, contudo na ferramenta ChkSim existem protocolos de checkpointing implementados
para esta variante e a manipulao desta abordagem exigir um novo estudo sobre esses proto-
colos de checkpointing e o seu comportamento em aplicaes distribudas, pois esta abordagem
engloba novos conceitos como mensagens de controle entre os processos da aplicao.
Atravs da comparao do plugin framework do ChkSim com a ferramenta Lupa, deniu-se
que para uma nova verso, a ferramenta deve conter a funcionalidade de permitir ao usurio a
obteno de checkpoints globais consistente a partir da seleo de uma determinado checkpoint
contido nos diagramas espao-tempo.
-
Referncias Bibliogrcas
1 D. H. Bailey, E. Barszcz, J. T. Barton, D. S. Browning, R. L. Carter, L. Dagum, R. A.
Fatoohi, P. O. Frederickson, T. A. Lasinski, R. S. Schreiber, H. D. Simon, V. Venkatakrishnan,
and S. K. Weeratunga. The nas parallel benchmarkssummary and preliminary results.
In Proceedings of the 1991 ACM/IEEE Conference on Supercomputing, pages 158165, New
York, NY, USA, 1991. ACM.
2 Roberto Baldoni, Jean michel Helary, Achour Mostefaoui, and Michel Raynal. A
communication-induced checkpointing protocol that ensures rollback-dependency trackability.
In Proc. IEEE Int. Symposium on Fault Tolerant Computing, pages 6877, 1997.
3 D. Briatico, A. Ciuoletti, and L. Simoncini. A distributed domino-eect free recovery
algorithm. In Symposium on Reliability in Distributed Software and Database Systems 84, pages
207215, 1984.
4 K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of
distributed systems. ACM Trans. Comput. Syst., 3:6375, February 1985.
5 I.C. Garcia and L.E. Buzato. An ecient checkpointing protocol for the minimal
characterization of operational rollback-dependency trackability. In Reliable Distributed
Systems, 2004. Proceedings of the 23rd IEEE International Symposium on, pages 126 135, oct.
2004.
6 J.-M. Hlary, A. Mostefaoui, R.H.B. Netzer, and M. Raynal. Communication-based
prevention of useless checkpoints in distributed computations. Distributed Computing, 13:2943,
2000. 10.1007/s004460050003.
7 Y. Luo and D. Manivannan. Fine: A fully informed and ecient communication-induced
checkpointing protocol for distributed systems. Journal of Parallel and Distributed Computing,
69(2):153167, 2009.
8 D. Manivannan and Mukesh Singhal. Quasi-synchronous checkpointing: Models,
characterization, and classication. IEEE Transactions on Parallel and Distributed Systems,
10:703713, 1996.
9 G. Marsaglia and T. A. Bray. A convenient method for generating normal variables.
j-SIAM-REVIEW, 6(3):260264, 1964.
10 R.M. Menderico. Ambiente pra a visualizao de protocolos de checkpointing.
http://lupa.sourceforge.net/index.html, Fevereiro 2004. ltimo acesso em Setembro de
2012.
-
REFERNCIAS BIBLIOGRFICAS 47
11 Robert H. B. Netzer and Jian Xu. Necessary and sucient conditions for consistent global
snapshots. IEEE Trans. Parallel Distrib. Syst., 6(2):165169, February 1995.
12 B. Randell. System structure for software fault tolerance. SIGPLAN Not., 10(6):437449,
April 1975.
13 Gabriel Rodrguez, Mara J. Martn, Patricia Gonzlez, Juan Tourio, and Ramn Doallo.
Cppc: a compiler-assisted tool for portable checkpointing of message-passing applications.
Concurrency and Computation: Practice and Experience, 22(6):749766, 2010.
14 David L. Russell. State restoration in systems of communicating processes. In IEEE
tinsactions on Pamllel and Dist n buted Systems, pages 910, 1980.
15 T.C. Sakata and I.C. Garcia. Non-blocking synchronous checkpointing based on
rollback-dependency trackability. In Reliable Distributed Systems, 2006. SRDS '06. 25th IEEE
Symposium on, pages 411420. IEEE Computer Society, October 2006.
16 Tiemi Christine Sakata. Uma Ponte entre as Abordagens Sncrona e Quase-sncrona
para Checkpointing. Tese, Instituto de Computao - Universidade Estadual de Campinas
(UNICAMP), Dezembro 2006.
17 J. Tsai and J.-W. Lin. On the fully-informed communication-induced checkpointing
protocol. In Dependable Computing, 2005. Proceedings. 11th Pacic Rim International
Symposium on, page 8 pages, December 2005.
18 G. M. D. Vieira. Estudo comparativo de algoritmos para checkpointing. Dissertao,
Instituto de Computao - Universidade Estadual de Campinas (UNICAMP), Dezembro 2001.
19 G. M. D. Vieira and L. E. Buzato. Chksim: A distributed checkpointing simulator.
Technical Report IC-05-34, Institute of Computing, University of Campinas, December 2005.
20 Gustavo MD Vieira and Luiz E Buzato. Distributed checkpointing: Analysis and
benchmarks, 2006.
21 Yi-Min Wang. Consistent global checkpoints that contain a given set of local checkpoints.
IEEE Trans. Comput., 46(4):456468, April 1997.