simulação e modelagem analítica na avaliação de desempenho ... · apesar da utilização de...

22

Upload: lykien

Post on 13-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Pontifícia Universidade Católica do Rio Grande do Sul

Faculdade de Informática

Pós-Graduação em Ciência da Computação

Simulação e Modelagem Analítica na

Avaliação de Desempenho de Aplicações para Grades

Computacionais: uma Abordagem Comparativa

Mateus Raeder

Orientador: Prof. Dr. Luiz Gustavo Leão Fernandes

Plano de Estudo e Pesquisa

Porto Alegre, dezembro de 2007

Page 2: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Sumário

LISTA DE FIGURAS 2

LISTA DE TABELAS 3

LISTA DE SÍMBOLOS E ABREVIATURAS 4

Capítulo 1: Introdução 5

1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Capítulo 2: Redes de Autômatos Estocásticos 8

2.1 Formalismo SAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Trabalhos que utilizam SAN . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Capítulo 3: Simulação de Grades Computacionais 13

3.1 SIMGRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Gras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Capítulo 4: Proposta para a Dissertação de Mestrado 17

4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.4 Cronograma de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1

Page 3: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Lista de Figuras

2.1 Exemplo de uma Rede de Autômatos Estocásticos . . . . . . . . . . . . . . 9

2.2 Modelo SAN da Situação do Semáforo . . . . . . . . . . . . . . . . . . . . 10

3.1 Componentes do SIMGRID . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2 Pesquisa e Desenvolvimento com e sem GRAS . . . . . . . . . . . . . . . . 16

2

Page 4: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Lista de Tabelas

2.1 Eventos da Modelagem SAN para o Exemplo 1 . . . . . . . . . . . . . . . . 10

2.2 Eventos da Modelagem SAN para o Semáforo . . . . . . . . . . . . . . . . 11

4.1 Cronograma das Atividades Previstas (2008) . . . . . . . . . . . . . . . . . 19

3

Page 5: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Lista de Símbolos e Abreviaturas

SETI Search for Extraterrestrial Intelligence 5

SAN Stochastic Automata Network 8

UCSD University of California at San Diego 13

API Application Programming Interface 13

MSG Meta-SIMGRID 14

MPI Message Passing Interface 14

GRAS Grid Reality And Simulation 15

SG SIMGRID 15

RL RealLife 15

MPMD Multiple Program, Multiple Data 15

SPMD Single Program, Multiple Data 15

PEPS Performance Evaluation for Parallel Systems 17

4

Page 6: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

1 Introdução

Os avanços nos diversos ramos da Ciência (tais como Medicina, Física, Química, Enge-

nharia e Geologia) foram concebidos através da utilização de ferramentas computacionais.

Por exemplo, prospecção de petróleo, simulações metereológicas podendo prever catástro-

fes e análise do DNA humano são agora realizáveis em razão das ferramentas computa-

cionais de simulação. Entretanto, simulações nestes moldes constantemente demandam

um alto poder computacional para que sejam realizadas. Com a �nalidade de evitar os

elevados custos da compra de supercomputadores, a utilização de aglomerados de com-

putadores pessoais de baixo custo surge como uma alternativa atraente. Esta alternativa

começou a ganhar popularidade em 1993 com o projeto Beowulf [1], que ressaltava a idéia

de que aglomerados de computadores pessoais podem ser vistos como supercomputadores.

A partir de então, uma vasta gama de tecnologias criadas para explorar recursos vem

surgindo, entre as quais pode-se destacar o conceito de grade computacional [2, 3].

O principal objetivo dos ambientes de grades computacionais é o compartilhamento dos

recursos computacionais em larga escala, estes podendo estar geogra�camente afastados.

O ponto diferencial das grades computacionais é o que se pode chamar de computação

colaborativa, que se trata da utilização dos ciclos ociosos de computadores (comumente

pessoais) para a obtenção de alto desempenho. Atualmente, a grande maioria das univer-

sidades e empresas possuem uma grande quantidade de computadores que permanecem

ociosos por um grande período de tempo, e tais ciclos podem vir a agregar valor às gra-

des. Alguns softwares, como SETI@Home (Search for Extraterrestrial Intelligence) [4],

por exemplo, buscam a ociosidade em computadores de usuários voluntários e aproveitam

estes períodos para realizar cálculos.

Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos,

o desenvolvimento de aplicações em tais ambientes é particularmente difícil, devido ao

grande número de variáveis envolvidas e possíveis falhas. Assim sendo, computadores

paralelos tradicionais são de certa forma mais fáceis de utilizar. Plataformas mais distri-

buídas (como as grades computacionais) são espalhadas em diversos domínios adminis-

trativos, trazendo como conseqüência �utuações na disponibilidade dos recursos. Logo, a

condução de experimentos repetitivos para aplicações com tempos de execução relativa-

mente altos torna-se impossibilitada, di�cultando a avaliação de desempenho de aplicações

reais, principalmente considerando as inúmeras possibilidades de con�guração existentes.

5

Page 7: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

1. Introdução 6

Esta avaliação de desempenho, no entanto, é uma tarefa imprescindível para a vali-

dação da implementação realizada. Esta importância se deve ao fato de que, quando se

deseja desenvolver determinado sistema para um dado propósito, a expectativa é de que

ele se comporte de maneira adequada, apresentando um bom desempenho e sendo capaz

de executar em um tempo aceitável.

Existem diversas formas de avaliação de desempenho, normalmente divididas em três

grandes grupos:

• Medições : na qual o programa deve estar previamente implementado para que me-

didas sejam coletadas de suas execuções;

• Simulações : na qual um modelo do sistema é criado para observar os fatores que

interferem no seu comportamento;

• Modelagem analítica: que se trata de uma representação matemática do sistema a

ser analisado.

Neste estudo, utilizar-se-á simulação e modelagem analítica, com o intuito de

comparar tais abordagens quando da utilização de aplicações para grades computacionais.

O formalismo analítico a ser utilizado neste trabalho será Rede de Autômatos Esto-

cásticos (SAN - Sthocastic Automata Network) [5], por tratar-se de um formalismo mais

recente e fortemente baseado na teoria de Cadeias de Markov [6], porém expressando os

modelos markovianos de forma mais fácil, compacta e e�ciente.

Na modelagem analítica, entretanto, as métricas de desempenho são geradas através

de parâmetros indicados no modelo. Assim, experimentos realizados através de simulação

surgem como uma escolha bastante viável para a obtenção precisa de tais parâmetros.

Simulações podem ser repetidas, são co�guráveis e geralmente demandam menos tempo

que execuções reais. Este tipo de abordagem vem sendo amplamente utilizada para apon-

tar decisões corretas durante o desenvolvimento de software para ambientes de grades

computacionais. Uma das ferramentas mais conhecidas para a simulação de algoritmos

em grades é o SIMGRID [7, 8], que será utilizada neste trabalho para a realização dos

objetivos nele propostos.

1.1 Motivação

A implementação de aplicações para sistemas computacionais (em diversas ocasiões)

não é trivial, principalmente quando se tratam de aplicações paralelas e distribuídas.

Estudos sobre o desempenho apresentado por tais aplicações antes mesmo de sua im-

plementação de fato, são de grande importância para que as soluções propostas sejam

previamente validadas, evitando problemas relacionados com reconstruções do sistema.

Page 8: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

1. Introdução 7

Uma vez previsto o comportamento da aplicação desejada, alterações na implementa-

ção, nos parâmetros ou nas con�gurações da solução proposta podem ser realizados (se

necessário) para que o desempenho real apresente-se conforme o esperado.

Devido ao constante avanço dos ambientes de grades computacionais e sua crescente

utilização, a construção de simuladores facilita ao usuário a avaliação dos sistemas propos-

tos. Isto se deve ao fato de que há uma maior �exibilidade de con�guração e diversi�cação

dos parâmetros do ambiente, �exibilidade esta que se torna bastante complexa de ser re-

alizada na prática.

Na modelagem analítica, por sua vez, as métricas são obtidas através de modelos

construídos com certos parâmetros que vêm da aplicação. Uma das grandes di�culdades

encontradas na construção e resolução deste método, no entanto, é exatamente a de�nição

precisa destes parâmetros, o que acarreta em incertezas nos resultados obtidos aravés dos

modelos.

Com a ferramenta de simulação SIMGRID, os parâmetros providos pelo simulador

podem agregar grande valor na construção do modelo SAN das aplicações, tendo em vista

as con�gurações mais bem de�nidas desta ferramenta.

1.2 Organização

Esta proposta está organizada da seguinte maneira: no Capítulo 2, encontram-se

algumas de�nições sobre o formalismo a ser utilizado no trabalho (SAN). Ainda nesta

seção, alguns trabalhos relacionados com esta abordagem são brevemente descritos, com

a �nalidade de ilustrar utilizações reais deste formalismo. Em seguida, no Capítulo 3,

uma visão geral sobre simulação de grades computacionais é apresentada, com alguns

exemplos de diferentes ferramentas existentes para este �m. As Seções 3.1 e 3.2 descrevem,

respectivamente, o simulador que será utilizado no decorrer do trabalho e uma ferramenta

(utilizada de maneira integrada ao simulador) que auxiliará nas simulações das aplicações

de grades. Finalmente, a proposta de Dissertação de Mestrado é apresentada, descrevendo

objetivos, ferramentas, metodologia de desenvolvimento e atividades que auxiliarão na

pesquisa.

Page 9: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

2 Redes de Autômatos Estocásticos

A modelagem utilizando Redes de Autômatos Estocásticos [5] data da década de 80,

e surge como uma importante alternativa para a modelagem de sistemas paralelos. Seu

nome original é Stochastic Automata Network (SAN), e trata-se de um formalismo baseado

na teoria de Cadeias de Markov, como dito anteriormente, expressando modelos markovi-

anos de maneira mais intuitiva e compacta. Através da modelagem com SAN, medidas de

desempenho podem ser incluídas, tais como throughput, atraso de sincronização, tempo

de resposta, dentre outras, mesmo antes da implementação da aplicação. Assim sendo,

ao utilizar a modelagem através de Redes de Autômatos Estocásticos pode-se predizer o

desempenho das aplicações.

O princípio da utilização do formalismo SAN é traduzir (ou abstrair) um sistema real

em sua totalidade em diversos módulos, de maneira independente, modelando diversos

subsistemas. Estes subsistemas, obviamente, terão pontos de interação em alguns mo-

mentos para que o objetivo �nal do conjunto como um todo seja alcançado. Entretanto,

para a obtenção das medidas de desempenho de um sistema, é necessário que o modelo

criado seja resolvido. Nesta seção, a maneira de construção de modelos SAN é detalhada,

visando gerar as estimativas de desempenho do sistema real. Ainda na presente seção,

serão apresentados alguns trabalhos relacionados com a utilização de SAN, com o intuito

de proporcionar ao leitor diferentes visões e aplicações do formalismo em questão.

2.1 Formalismo SAN

Neste documento, será apresentada uma visão mais intuitiva da maneira pela qual os

modelos SAN são construídos, indicando para considerações e explicações mais formais a

leitura da referência [5].

Conforme citado anteriormente, o formalismo de Redes de Autômatos Estocásticos

representa o sistema do qual se deseja obter estimativas através de módulos, abstraindo

o sistema real em diferentes subsistemas. Estes módulos (que são de�nidos na forma

de autômatos estocásticos) são formados basicamente por três componentes: estados,

transições e eventos. Na Figura 2.1 é apresentado um primeiro exemplo de um modelo

SAN com 3 autômatos.

Um estado na modelagem SAN é representado gra�camente por um círculo. Cada

8

Page 10: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

2. Redes de Autômatos Estocásticos 9

Figura 2.1: Exemplo de uma Rede de Autômatos Estocásticos

um destes refere-se a um determinado comportamento apresentado pelo sistema, e o

conjunto deles representa o conjunto destes comportamentos. Quando o sistema altera

seu comportamento, seu estado é alterado. Tal situação (mudança de um estado para

outro) é chamada de transição, e é representada por um arco ligando os estados origem

e destino (note que se trata de um grafo dirigido, pois as arestas possuem setas que indicam

sua direção). Entretanto, para que uma mudança de estado aconteça, um evento deve

ocorrer (sendo de�nido por uma função de probabilidade). Assim, quando um evento

do sistema ocorre, o modelo altera seu estado, realizando transições de acordo com as

probabilidades associadas a cada um destes eventos. A ocorrência destes eventos depende

de taxas associadas a cada um deles.

No exemplo da Figura 2.1, percebe-se a existência de três autômatos: A1 (com 4

estados), A2 (com 2 estados) e A3 (com 3 estados). Além disso, o modelo SAN apre-

sentado possui 5 eventos, que são listados na tabela 2.1. Em um modelo SAN podem

ser diferenciados dois tipos de eventos: locais e sincronizantes. Os eventos locais alte-

ram somente o estado interno de um autômato, não interferindo no estado que os outros

autômatos encontram-se. Por exemplo, o evento p do autômato A1 apenas modi�ca-o

internamente, não in�uenciando em nada os autômatos A2 e A3 (note que eventos locais

apenas aparecem em um único autômato). Por outro lado, eventos ditos sincronizantes

apresentam a característica de não apenas alterar o seu estado, mas também de alterar

o estado dos outros autômatos do modelo. São as referidas interações entre os diferentes

subsistemas. Os eventos ca, r, co e pa são sincronizantes no exemplo da Figura 2.1, pois

quando estes eventos ocorrem, mais de um autômato altera seu estado (perceba que os

eventos sincronizantes aparecem em dois ou mais autômatos).

Para alguns eventos, uma probabilidade é associada. No exemplo apresentado, nota-se

que do estado B do autômato A2, na ocorrência do evento ca, há uma probabilidade de

70% de o autômato alcançar o estado R, e uma probabilidade de 30% de continuar no

estado B. Além disto, funções podem ser de�nidas para os eventos, como acontece no

Page 11: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

2. Redes de Autômatos Estocásticos 10

Tabela 2.1: Eventos da Modelagem SAN para o Exemplo 1

Tipo Evento Taxalocal p τ1

sincronizante ca τ2sincronizante r τ3sincronizante pa τ4sincronizante co τ5

autômato A3. O evento pa neste autômato, depende do estado do autômato A2. Caso

A2 encontre-se em B, o evento pa levará A3 do estado N para o estado A. Caso contrário

(A2 em R), o evento pa acarreta na transição do estado N para o estado C.

Ao resolver um modelo SAN, as probabilidades de permanência em cada estado (ou de

combinações de estados desejados pelo usuário) são obtidas. Com isto, pode ser realizada

uma análise do comportamento da aplicação modelada com as taxas e probabilidades

de�nidas no modelo, possibilitando que alterações nestes valores sejam realizados, para

melhorar o desempenho, diminuir gargalos, etc.

A Figura 2.2 apresenta uma simples modelagem SAN para representar uma deter-

minada rua, que possui um semáforo, carros passando e pedestres querendo atravessar.

Neste caso, deseja-se obter algumas informações relevantes ao bom equilíbrio entre tra-

vessias de pedestres e de carros, tais como a quantidade de tempo que os pedestres �cam

aguardando para atravessar a rua, que o sinal �ca fechado ou aberto, que os carros param

no semáforo, etc. (não serão discutidos detalhes da resolução do modelo e obtenção das

probabilidades de cada estado, apenas a modelagem em si).

Figura 2.2: Modelo SAN da Situação do Semáforo

O problema pode ser dividido em três entidades, ou subsistemas: semáforo (de carros),

os carros e os pedestres. Cada um destes subsistemas, no entanto, é modelado como um

autômato, conforme pode ser visto na Figura 2.2. O autômato Semáforo possui três

estados: Vermelho, Amarelo e Verde. As transições entre estes estados é dada pela

ocorrência dos eventos L1, S1 e S2. Os autômatos restantes (Carros e Pedestres), por

sua vez, possuem dois estados cada um, e as transições internas de cada um dá-se por

Page 12: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

2. Redes de Autômatos Estocásticos 11

meio dos eventos S1 e S2. A Tabela 2.2 ilustra os eventos existentes no modelo, com seus

respectivos tipos e taxas (simbólicas).

Tabela 2.2: Eventos da Modelagem SAN para o Semáforo

Tipo Evento Taxalocal L1 τ1

sincronizante S1 τ2sincronizante S2 τ3

Neste exemplo �ca clara a idéia dos eventos locais e sincronizantes. Suponha que o

estado inicial do modelo seja: o autômato Semáforo no estado Verde; o autômato Carros

no estado Passando; e o autômato Pedestres no estado Parado. Quando o evento L1

ocorrer, apenas o autômato Semáforo terá seu estado alterado (de Verde para Amarelo),

pois L1 não in�uencia nos outros autômatos, tratando-se de um evento local. Em se-

guida, quando o evento S1 ocorrer, simultaneamente o Semáforo passará para o estado

Vermelho, o autômato Carros passará para o estado Parado e o autômato Pedestres para

o estado Passando. Logo, S1 trata-se de um evento sincronizante. De maneira análoga,

quando o Semáforo voltar para o estado Verde (pela ocorrência do evento sincronizante

S2), os autômatos Carros e Pedestres alterarão seus estados para Passando e Parado,

respectivamente.

Cabe ressaltar que não existe uma única maneira de modelar uma determinada situa-

ção ou aplicação. No exemplo apresentado poderiam ter sido utilizadas outras abordagens

para a modelagem, como a utilização de apenas 2 autômatos, por exemplo, representando

o semáforo e os carros, ou até mesmo somente o autômato Semáforo, uma vez que é óbvio

que, quando o semáforo encontra-se fechado pedestres podem atravessar, e quando está

aberto os carros podem passar. Entretanto, a modelagem com 3 autômatos foi realizada

apenas para ilustrar de maneira mais clara os conceitos dos diferentes tipos de eventos.

2.2 Trabalhos que utilizam SAN

Nesta seção, três utilizações do formalismo SAN são brevemente apresentadas e refe-

renciadas para um ocasional interesse em maiores detalhes.

O primeiro deles trata-se de um trabalho realizado por Maraculescu e Nandi [9]. Nele,

os autores apresentaram uma nova metodologia para a modelagem de aplicações de sis-

temas de níveis. O decodi�cador de vídeo MPEG-2 foi a aplicação utilizada para validar

e exempli�car as vantagens desta nova abordagem. O formalismo SAN foi utilizado para

modelar a aplicação, e foi comprovado que esta possui um comportamento estacioná-

rio através de diferentes probabilidades, o que permitiu mapeamentos mais e�cientes da

aplicação. Os próprios autores consideraram SAN como uma ferramenta e�ciente para

modelar a comunicação entre os processos, e ainda relataram a vantagem de que o número

Page 13: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

2. Redes de Autômatos Estocásticos 12

de estados não explode.

Outro trabalho interessante com a utilização de SAN trata-se do trabalho descrito

em [10]. Neste trabalho, os autores propuseram o uso de Redes de Autômatos Estocás-

ticos para desenvolver modelos que se aplicassem a programas do tipo mestre/escravo,

considerando dois padrões de comportamento para descrever a comunicação entre os mes-

tres e os escravos: síncrono e assíncrono. Como caso de estudo, o algoritmo de "region

growing"conhecido como Propagation [11] foi utilizado. Esta aplicação trabalha com in-

terpolação de imagens, para gerar uma visão virtual entre dois pontos iniciais distintos.

A aplicação foi modelada utilizando SAN para validar a estratégia de implementação

escolhida. Segundo os autores, a modelagem de programas paralelos é facilitada com o

formalismo SAN, e pôde dar uma visão geral dos resultados que serão obtidos com a

paralelização do Propagation de acordo com alguns fatores, como sincronia/assincronia e

grão �no/grosso.

O trabalho realizado por Mokdad et. al. [12] também utiliza a modelagem SAN.

Neste trabalho, os autores apresentaram um novo algoritmo de roteamento, para melhorar

a qualidade de entrega de pacotes em redes de baixa latência. Os autores mostram

os benefícios desta nova proposta de algoritmo através da avaliação de desempenho de

modelos SAN, além de ressaltar o fato de que o formalismo SAN é muito utilizado para

sistemas complexos, quando a utilização de Cadeias de Markov é inviável.

Page 14: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

3 Simulação de Grades

Computacionais

Conforme mencionado anteriormente, aplicações para grades computacionais não pos-

suem seu desempenho trivialmente avaliado, pois o ambiente não apresenta uma estabi-

lidade constante e os recursos variam consideravelmente. Desta maneira, para testes e

validações de aplicações para grades, simuladores surgem como uma alternativa interes-

sante para sistemas reais. Neste contexto, existem diferentes ferramentas utilizadas para

simular plataformas de computação distribuída, dentre as quais pode-se citar algumas

mais notáveis, tais como OptorSim [13], GridSim [14], MicroGrid [15], e SIMGRID [16].

O primeiro simulador (OptorSim), é implementado em Java e trabalha com réplicas

de jobs. Este simulador é utilizado principalmente para comparar diferentes estratégias

de escalonamento com a utilização destas réplicas, simulando o comportamento de grades

conforme alguns parâmetros de�nidos (topologia de rede e conjunto de jobs, por exemplo).

Desenvolvida na Universidade da Califórnia, em São Diego (UCSD - University of Ca-

lifornia at San Diego), a ferramenta MicroGrid, na realidade, trata-se de um emulador.

Ela permite a execução de aplicações construídas com o Globus [17], para que o com-

portamento destas aplicações seja conhecido. O MicroGrid emula uma grade Globus, e

pode ser utilizado como uma ferramenta complementar para veri�car resultados obtidos

através de simulações com execuções reais das aplicações.

Outra ferramenta bastante difundida, trata-se do GridSim, que também simula ambi-

entes de grades computacionais, monitorando seus recursos. Utiliza-se do pacote SimJava

(simulação baseada em eventos), o que torna-o escalável e portável.

Finalmente, para este trabalho escolheu-se a ferramenta SIMGRID, que será descrita

a seguir, na Seção 3.1.

3.1 SIMGRID

A primeira versão do simulador SIMGRID (chamada de SIMGRID v1.0 ) era uma

versão mais simples, e está descrita em [16]. Foi desenvolvida por Henri Casanova, que

modi�cou uma implementação previamente realizada, criando uma estrutura de simula-

ção mais genérica e com uma API (Application Programming Interface) amigável. Após

13

Page 15: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

3. Simulação de Grades Computacionais 14

algum tempo, uma nova camada chamadaMSG (Meta-SIMGRID) foi desenvolvida, acres-

centando threads e também a idéia de processos sendo simulados independentemente. No

�nal do ano de 2003, o SIMGRID passou a executar em sua versão SIMGRID v2. A

partir da versão 3, outros diferentes módulos foram adicionados à implementação (alguns

destes sendo tratados a seguir). O simulador encontra-se, ultimamente, em sua versão

3.2.

O SIMGRID é uma das ferramentas mais conhecidas para a simulação de ambientes

de programação distribuída, e neste estudo será utilizado para ambientes de grades com-

putacionais. Alguns de seus principais componentes podem ser vistos na Figura 3.1, os

quais são responsáveis por facilitar determinadas funções.

Figura 3.1: Componentes do SIMGRID

O primeiro componente trata-se do MSG supracitado. É um ambiente de programa-

ção simples, incluído desde a segunda versão do simulador, e foi o primeiro ambiente de

programação distribuída provido no SIMGRID. Neste componente, algumas funcionali-

dades básicas são oferecidas, tais como o gerenciamento de hosts e tarefas. Para facilitar

a comunicação, o simulador trabalha com a noção de canal, que é similar à notação do

MPI (Message Passing Interface). Um canal de comunicação não se trata de um socket,

pois não necessita ser aberto e fechado, mas corresponde a portas abertas nas diferentes

máquinas. Este módulo contém alguns tipos de dados de�nidos (tais como host, tarefa

e processo), além de funções que são utilizadas para a realização das simulações. É nor-

malmente utilizado para a simulação de aplicações distribuídas genéricas.

O próximo componente trata-se do SMPI, que se refere ao ambiente de programação

para aplicações construídas com a utilização da biblioteca MPI. Aplicações implementadas

em MPI serão executadas no simulador através deste módulo, sem que sua implementação

tenha que ser modi�cada.

O componente SURF é responsável por providenciar todas as funcionalidades de simu-

lação da plataforma virtual. É o kernel de todos os componentes do SIMGRID, tratando-se

assim de um módulo de bastante baixo nível.

O último componente (GRAS ) é de maior importância neste estudo, e é descrito na

seção que segue.

Page 16: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

3. Simulação de Grades Computacionais 15

3.2 Gras

O componente GRAS (Grid Reality And Simulation) é utilizado para usuários que

desejam desenvolver aplicações reais, ou seja, aplicações com a �nalidade de que, após o

término das simulações, o programa realmente venha a ser distribuído. Este componente

provê uma API simples para a implementação de aplicações distribuídas sobre plata-

formas heterogêneas, permitindo que diversos processos interajam através de trocas de

mensagens.

Entretanto, alguns pontos diferem o componente GRAS de outras clássicas APIs de

troca de mensagem existentes. Alguns destes pontos são:

• Modos de execução: este é o ponto mais importante deste componente. O mó-

dulo GRAS possui duas implementações distintas. A primeira delas é construída no

próprio simulador SIMGRID, o que permite que o usuário execute suas aplicações

em ambientes controlados, sendo esta abordagem extremamente interessante para

estudar os algoritmos propostos. Nesta implementação (chamada de SG , referente

ao SIMGRID), algoritmos podem ser testados sobre diversas condições que seriam

complexas de serem alcançadas em plataformas reais, e erros podem ser inseridos

quantas vezes forem desejadas. A segunda implementação refere-se às plataformas

reais (chamado de RL, referente a RealLife). Após veri�car o bom funcionamento do

algoritmo no simulador, esta implementação permite que este algoritmo seja execu-

tado em plataformas reais, sem que alterações e nem sequer compilações adicionais

sejam realizadas.

• Abordagem de desenvolvimento: o componente em questão foi desenvolvido

para trabalhar com computação distribuída, não paralela. Assim, os algoritmos

são desenvolvidos para existirem como processos independentes que comunicam-se

através de troca de mensagens. Este modelo difere de implementações MPI e PVM,

nas quais o programa explicita o que cada processo deve fazer (de acordo com o

rank, por exemplo). Ou seja, para a execução no GRAS, o modelo deve ser MPMD

(Multiple Program, Multiple Data), ao invés de SPMD (Single Program, Multiple

Data), e a idéia de paralelismo (como ganho de desempenho) não existe.

• Escala de desenvolvimento: diferenciando-se novamente da maioria das imple-

mentações existentes para troca de mensagens, o GRAS foi projetado e desenvolvido

para plataformas grandes e dinâmicas, como grades.

• Simplicidade de utilização: os desenvolvedores do GRAS de�nem este compo-

nente como simples de utilizar, e pretendem que ele assim continue. Por exemplo,

não existem threads no GRAS. Isto se deve ao fato de que programas multi-thread

são demasiadamente complicados para usuários comuns, e não faz parte do plane-

jamento futuro a inclusão de threads neste componente. O não-determinismo e as

Page 17: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

3. Simulação de Grades Computacionais 16

race conditions (quando diferentes processos utilizam o mesmo recurso ao mesmo

tempo) são alguns dos fatores que explicam tal ponto de vista.

A ferramenta GRAS, então, habilita o desenvolvimento simultâneo de aplicações distri-

buídas que podem tanto executar em plataformas reais quanto no simulador. O resultado

não é um protótipo, mas sim uma aplicação com as funcionalidades completas, sem a

necessidade de modi�cações no código. A Figura 3.2 representa a pesquisa e o desenvol-

vimento de uma aplicação com e sem a utilização do GRAS.

Figura 3.2: Pesquisa e Desenvolvimento com e sem GRAS

Portanto, esta ferramenta (componente) será de grande importância, tanto para a

realização dos experimentos quanto para a obtenção dos parâmetros necessários para a

modelagem das aplicações, que serão escolhidas no decorrer da pesquisa.

Page 18: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

4 Proposta para a Dissertação de

Mestrado

Neste capítulo encontra-se a proposta da Dissertação de Mestrado. Nela, os objetivos

do estudo são relatados, assim como algumas ferramentas que servirão de auxílio para o

seu correto desenvolvimento. A metodologia de pesquisa e de realização das idéias são

descritas, de maneira a dar uma breve visão de como se pretende proceder para alcançar os

objetivos propostos. Finalmente, uma lista de atividades é apresentada, e suas respectivas

relações com o período de tempo em que serão executadas é descrito.

4.1 Objetivos

O objetivo do trabalho a ser realizado é comparar o comportamento e os resul-

tados obtidos através da modelagem SAN de aplicações de grades computaci-

onais, com os resultados obtidos através do simulador SIMGRID . Para tanto,

tem-se como premissa que os resultados do simulador em questão são válidos e aceitáveis.

O intuito da modelagem com SAN, neste contexto, é procurar parametrizar da maneira

mais �el possível o modelo criado para as aplicações, de acordo com os parâmetros obtidos

com o simulador, com a �nalidade de validar a utilização de tal modelagem para este �m.

Ao �nal do estudo, acredita-se que será possível extrair uma conclusão fortemente aceitável

sobre a utilização da abordagem utilizando modelos SAN.

4.2 Ferramentas

Algumas ferramentas serão fundamentais no decorrer do desenvolvimento da pesquisa

proposta. Primeiramente, a utilização da ferramenta PEPS (Performance Evaluation

for Parallel Systems), que faz uso de métodos interativos para resolução de sistemas de

equações, e gera resultados estocásticos e transientes [18]. O primeiro permite ao usuário

saber as probabilidades de cada do modelo SAN correspondente. O segundo, por sua

vez, resulta nos tempos de execução do modelo. Tal software, então, realizará a tarefa de

resolver os modelos SAN propostos.

17

Page 19: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

4. Proposta para a Dissertação de Mestrado 18

Além do PEPS, outra aplicação a ser empregada trata-se da própria ferramenta SIM-

GRID (seção 3.1), para a realização das simulações. Esta ferramenta será a base para

a obtenção dos parâmetros da modelagem SAN. Conforme descrito na Seção 3.1, o si-

mulador em questão é dividido em alguns componentes, e o componente que será mais

utilizado para o desenvolvimento do estudo é o componente GRAS (Seção 3.2).

4.3 Metodologia

No decorrer do desenvolvimento da pesquisa em questão, a metodologia adotada será

conforme segue. Primeiramente, dar-se-á a escolha das aplicações a serem utilizadas no

estudo, para que seus comportamentos sejam avaliados. Em seguida, a modelagem SAN

de cada aplicação será realizada, de acordo com suas funcionalidades e interações entre

seus subsistemas (Seção 2). Então, os parâmetros da aplicação serão extraídos a partir do

simulador SIMGRID, e servirão como entrada para os parâmetros da modelagem previa-

mente realizada. Uma vez construído o modelo SAN com os parâmetros corretos de cada

aplicação, estes serão resolvidos (com a utilização da ferramenta PEPS), paralelamente

com a execução da aplicação modelada na ferramenta de simulação. Os resultados obtidos

através do PEPS e do SIMGRID serão analisados e sua corretude será avaliada. Por �m,

comparações destes resultados serão realizados, com a �nalidade de validar a utilização

do modelo SAN proposto.

4.4 Cronograma de atividades

Para a realização da pesquisa proposta neste documento, durante o ano de 2008 al-

gumas atividades serão executadas. Abaixo, segue um detalhamento de cada uma destas

atividades:

• Estudo sobre o SIMGRID: nesta atividade, desenvolver-se-á um estudo mais

detalhado das funcionalidades do simulador SIMGRID, com um foco de mais baixo

nível, procurando o entendimento das funções de programação e a maneira de utilizá-

las, assim como a execução das simulações;

• Escolha das aplicações: para a construção dos modelos e execução da simulação,

algumas aplicações serão escolhidas e avaliadas, procurando-se realizar uma escolha

que agregue valor tanto à simulação quanto à criação da modelagem e escolha dos

parâmetros;

• Criação dos modelos SAN das aplicações: de acordo com os parâmetros e com

as funcionalidades das aplicações, a construção do modelo SAN tenderá a representar

�elmente as aplicações escolhidas;

Page 20: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

4. Proposta para a Dissertação de Mestrado 19

• Extrair parâmetros das aplicações: obter do SIMGRID (através do GRAS ) os

parâmetros que servirão para a construção do modelo SAN de cada aplicação;

• Executar os modelos e as simulações: utilizar as ferramentas PEPS e SIMGRID

para coletar os resultados do modelo e da simulação;

• Coletar e comparar os resultados: validar a modelagem SAN proposta de

acordo com a comparação dos resultados obtidos da atividade de execução;

• Escrita do seminário de andamento;

• Escrita da dissertação de mestrado.

A Tabela 4.1 apresenta as atividades descritas acima de acordo com uma linha de

tempo que inicia em Janeiro de 2008 e conclui-se em Dezembro do mesmo ano (foram

acrescentadas à tabela a apresentação do seminário de andamento e a defesa da disserta-

ção).

Tabela 4.1: Cronograma das Atividades Previstas (2008)

Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov DezEstudo sobre o SIMGRID X XEscolha das aplicações X X X

Criação dos modelos SAN das aplicações X XExtrair parâmetros das aplicações X X

Executar os modelos e as simulações X XColetar e comparar os resultados X XEscrita do seminário de andamento X X

Apresentação do seminário de andamento XEscrita da dissertação de mestrado X X X XDefesa da dissertação de mestrado X

Page 21: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

Referências Bibliográ�cas

[1] BECKER, D.; STERLING, T. Beowulf project webpa. Disponível em

http://www.beowulf.org/overview/history.html. Acessado em 09/12/2007.

[2] FOSTER, I.; KESSELMAN, C. (Ed.). The grid: blueprint for a new computing in-

frastructure. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1999. ISBN

1-55860-475-8.

[3] FOSTER, I.; KESSELMAN, C.; TUECKE, S. The anatomy of the grid: Enabling

scalable virtual organizations. Int. J. High Perform. Comput. Appl., Sage Publications,

Inc., Thousand Oaks, CA, USA, v. 15, n. 3, p. 200�222, 2001. ISSN 1094-3420.

[4] CALIFORNIA, U. of. SETI@Home webpage. Disponível em

http://setiathome.ssl.berkeley.edu. Acessado em 10/12/2007.

[5] PLATEAU, B.; ATIF, K. Stochastic automata network of modeling parallel systems.

IEEE Trans. Softw. Eng., IEEE Press, Piscataway, NJ, USA, v. 17, n. 10, p. 1093�1108,

1991. ISSN 0098-5589.

[6] BOLCH, G. et al. Queueing networks and Markov chains: modeling and performance

evaluation with computer science applications. New York, NY, USA: Wiley-Interscience,

1998. ISBN 0-471-19366-6.

[7] LEGRAND, A.; MARCHAL, L.; CASANOVA, H. Scheduling distributed applications:

the simgrid simulation framework. In: CCGRID '03: Proceedings of the 3st Interna-

tional Symposium on Cluster Computing and the Grid. Washington, DC, USA: IEEE

Computer Society, 2003. p. 138. ISBN 0-7695-1919-9.

[8] CASANOVA, A. L. H.; QUINSON, M. Simgrid project webpage. Disponível em

http://simgrid.gforge.inria.fr/. Acessado em 07/12/2007.

[9] MARCULESCU, R.; NANDI, A. Probabilistic application modeling for system-level

perfromance analysis. In: DATE '01: Proceedings of the conference on Design, auto-

mation and test in Europe. Piscataway, NJ, USA: IEEE Press, 2001. p. 572�579. ISBN

0-7695-0993-2.

20

Page 22: Simulação e Modelagem Analítica na Avaliação de Desempenho ... · Apesar da utilização de grades computacionais ser uma alternativa que salta aos olhos, o desenvolvimento de

REFERÊNCIAS BIBLIOGRÁFICAS 21

[10] BALDO, L. et al. Performance models for master/slave parallel programs. Electr.

Notes Theor. Comput. Sci., v. 128, n. 4, p. 101�121, 2005.

[11] LHUILLIER, M. Modélisation pour la synthse d'images partir d'images. Tese (Dou-

torado) � Institut National Polytechnique de Grenoble, França, 2000.

[12] GUEROUI, A. Quality of service of a rerouting algorithm using stochastic automata

networks. In: ISCC '01: Proceedings of the Sixth IEEE Symposium on Computers and

Communications. Washington, DC, USA: IEEE Computer Society, 2001. p. 338.

[13] BELL, W. et al. OptorSim - A Grid Simulator for Studying Dynamic Data Replica-

tion Strategies. 2003. Disponível em: <mack.ittc.ku.edu/bell03optorsim.html>.

[14] BUYYA, R.; MURSHED, M. M. Gridsim: A toolkit for the modeling and simula-

tion of distributed resource management and scheduling for grid computing. CoRR,

cs.DC/0203019, 2002.

[15] SONG, H. J. et al. The microgrid: A scienti�c tool for modeling computational grids.

Sci. Program., IOS Press, Amsterdam, The Netherlands, The Netherlands, v. 8, n. 3,

p. 127�141, 2000. ISSN 1058-9244.

[16] CASANOVA, H. Simgrid: A toolkit for the simulation of application scheduling. In:

CCGRID '01: Proceedings of the 1st International Symposium on Cluster Computing

and the Grid. Washington, DC, USA: IEEE Computer Society, 2001. p. 430. ISBN

0-7695-1010-8.

[17] FOSTER, I.; KESSELMAN, C. Globus: A Metacomputing Infrastructure Toolkit.

1996. Disponível em: <mack.ittc.ku.edu/article/foster96globus.html>.

[18] STEWART, W. J. Introduction to the numerical solution of markov chains. Princeton

University Press, 1994.