Uma extensão da Ferramenta IC2D para Monitoração de...

Documentos relacionados
Extensão da Ferramenta IC2D para Monitoração de Carga em Clusters e Grids de Computadores

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Chapter 4: Threads. Operating System Concepts 8th Edition

Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total

Uso de Software de Monitoramento em Projetos Educacionais Metasys Monitor. Home

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

CONSTRUÇÃO DE UM BANCO DE DADOS PARA O LIMA

Monitoração de clusters com a ferramenta Ganglia:

Estrutura do Sistema Operacional

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

DESENVOLVIMENTO DE SOFTWARE PARA ANÁLISE DO ELEITORADO BRASILEIRO COM DADOS ABERTOS

Sistemas Operacionais. Visão Geral

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sistemas Distribuídos

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Características de Sistemas Distribuídos

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Características de Sistemas Distribuídos

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Sobre a execução de workflows científicos sobre diferentes estrategias de dados de entrada - Uma Avaliação Experimental

Sistemas Distribuídos

PROGRAMA DE DISCIPLINA

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

Curso: Redes de Computadores

6 Arquitetura do Sistema

Solução para Gestão de Ambientes de TI.

Implementação da Especificação de Tempo Real Java para o EPOS

Guia de Segurança do Oracle Hardware Management Pack para Oracle Solaris 11.3

Universidade de São Paulo Instituto de Matemática e

Adaptação Dinâmica desistemas Distribuídos p.1/54

Programação Concorrente

Desenvolvimento de Aplicações Distribuídas

As principais contribuições do presente trabalho são as seguintes:

VISÃO GERAL. Faça a gestão da segurança de rede até 250 postos através de uma consola baseada na cloud.

Gerenciamento de Redes. Alan Santos

Desenvolvimento de Software I

Sistemas Distribuídos Aula 3

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Escalonamento de Aplicações BoT em Ambiente de Nuvem

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Sistemas Operacionais Aula 3

Manual de Versão Sistema Condomínio21

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Processos ca 3 pítulo

Nuvem e Virtualização Redes Programáveis

Estruturas de Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência

AULA 1 INTRODUÇÃO AO JAVA

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Programação Paralela e Distribuída

6 Conclusão Contribuições da Dissertação

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Concorrência em Processos

Manual de instalação, configuração e utilização do Enviador XML

SISTEMAS OPERACIONAIS

BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1

Instalação e Configuração de Servidores Linux Server. Prof. Alex Furtunato

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

EA876 - Introdução a Software de Sistema

SISTEMAS DISTRIBUÍDOS

Gerência de Redes de Computadores RMON. Prof. Alex Furtunato

Chamadas de Sistema (SYSCALL)

Sistemas Distribuídos

SISTEMAS OPERACIONAIS DE REDE

Sistemas Operacionais II. Linux - Introdução

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO CONCEITO DE SOFTWARE PROFESSOR CARLOS MUNIZ

Serviços Integrados: Segmentos de mercado. Cobrança Pagamentos Folha de Pagamento Débito Automático Extrato Eletrônico

Guia de Integração do SIGAGFE com TOTVS Colaboração 2.0

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

A Biologia na Era da Computação. Hugo Brandão Uchôa Laboratório de Sistemas Biomoleculares IBILCE-UNESP

OpenMP: Variáveis de Ambiente

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Um Calculador de Capacidade de Computação para Nós de Máquinas Virtuais LAM/MPI

Grupo de Usuários Java do Noroeste Paulista. Introdução à tecnologia Java

Integração de Ganglia, librastro e Pajé para o Monitoramento de Aplicações Paralelas*

Ambientes de Execução

Comunicação entre Processos

CP Introdução à Informática Prof. Msc. Carlos de Salles

Alerta de riscos ambientais

Common Object Request Broker Architecture

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Sistemas Operacionais I

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Pesquisa de Iniciação Científica desenvolvida no Grupo de Pesquisa em Computação Aplicada (GCA) da UNIJUI 2

Sistemas Operacionais

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

SSC546 -Avaliação de Desempenho de Sistemas

Métodos de implementação de linguagens. Kellen Pinagé

Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos 10º ano

TEMPLATE PARA TCC IFFAR - SVS

Visões Arquiteturais. Visões Arquiteturais

Transcrição:

Uma extensão da Ferramenta IC2D para Monitoração de... Elton Nicoletti Mathias 1, Marcelo Veiga Neves 1, Edmar Araujo Pessoa Neto 1, Marcelo Pasin 2 e Andrea Schertner Charão 1 1 Curso de Ciência da Computação Universidade Federal de Santa Maria (UFSM) Santa Maria RS Brazil 2 École d Ingénieurs et d Architects Fribourg, Suisse. {emathias, veiga, araujo, scheid, pasin, andrea}@inf.ufsm.br Abstract. Not yet! Resumo. Ainda não! 1. Introdução No contexto do desenvolvimento de aplicações distribuídas, sejam elas para execução em clusters, ou mesmo grades computacionais, a análise do comportamento de aplicações pode ser de grande utilidade para a redução de gargalos, otimização dos algoritmos, ou melhor distribuição de carga. A execução de qualquer uma dessas melhoras permite a obtenção de melhores desempenhos, que se refletem em tempos computacionais menores na execução de tarefas. Entretanto, de nada adianta monitorar apenas a aplicação, se seu comportamento sofre influência direta do ambiente onde a mesma está sendo executada. Para facilitar a depuração de programas, o middleware ProActive [Caromel et al. 1998] oferece uma interface gráfica chamada IC2D, que permite a visualização e controle de aplicações implementadas a partir dessa bibiloteca. Apesar de oferecer uma série de funcionalidades que permitem um controle sobre os objetos monitorados, esta interface não apresenta qualquer tipo de informação a respeito do ambiente onde as aplicações estão sendo executadas, além da topologia onde a aplicação distribui-se. A não existência de informações a respeito do ambiente de execução prejudica a tarefa de depuração, pois nem sempre é possível perceber que determinada tarefa está levando mais do que o tempo necessário devido a uma alta carga da máquina, ou então que o tempo de uma comunicação é demasiado alto devido ao trafego intenso de rede que pode estar ocorrendo na máquina onde a tarefa encontra-se. Outra tarefa prejudicada pela falta de informações a respeito do ambiente de execução é o lançamento de tarefas, pois não há como saber qual o recurso mais adequado a execução da tarefa. Como o middleware ProActive destina-se à distribuição de tarefas em grades computacionais, torna-se comum a utilização de recursos não dedicados. Nesse tipo de ambiente, a visualização de carga das máquinas pode se tornar ainda mais importante. Nesse sentido, esse artigo apresenta uma extensão ao ambiente gráfico IC2D, para a geração e visualização de gráficos relativos a índices de cargas. Este artigo apresenta

inicialmente uma breve seção contextualizando o trabalho; depois serão apresentadas as ferramentas onde o trabalho inclui-se. Depois, serão apresentados trabalhos relacionados. Por fim, serão apresentadas algumas considerações finais e trabalhos futuros. 2. Visualização de Índices de Carga Ainda não fiz, mas acho q vai ser cut n paste de algum artigo do lsc... 3. ProActive e o Modelo de Objetos Ativos ProActive é uma biblioteca implementada completamente em Java, que busca oferecer um modelo de programação concorrente e distribuído com transparência. Como essa biblioteca é construída inteiramente utilizando a API padrão Java, ela não requer qualquer modificação no ambiente de execução, uso de compiladores especiais, pré-processadores ou máquina virtual modificada [Caromel et al. 1998]. Esta biblioteca é implementada através de um modelo de programação chamado de objetos ativos. Nesse modelo, cada objeto ativo tem sua própria thread de controle, que tem habilidade de controlar a execução de chamadas de métodos remotos, armazenadas em um sistema de fila. Objetos Ativos são remotamente acessíveis através da invocação de métodos. A chamada desses métodos ocorre de forma assíncrona através de um mecanismo de sincronização automático oferecido pela biblioteca. Esse mecanismo baseia-se em objetos futuros, que são retornados imediatamente após a chamada de método remota e substituídos automaticamente quando o método retorna realmente. A utilização do valor retornado antes de sua disponibilidade bloqueia o fluxo que chamou o método, em um mecanismo chamado de espera por necessidade [Caromel et al. 1998]. Outro mecanismo de comunicação oferecido é baseado em um modelo de comunicação em grupo. A comunicação em grupo permite a invocação de métodos em um grupo de objetos ativos de tipo compatível, e a geração de resultados de grupo. [Baduel et al. 2002] O middleware ProActive também permite a mobilidade de objetos ativos entre diferentes máquinas virtuais Java (JVM), possivelmente localizada em computadores diferentes. O mecanismo de migração oferecido transfere o objeto ativo para outra JVM, levando consigo o código e seu estado (objetos futuros, chamadas pendentes,...). O tipo de migração é classificado como migração fraca, por não permitir a migração durante a execução de métodos, sendo necessário a espera pelo fim da execução do métodos, ou suspensão dos mesmos. 4. A Ferramenta IC2D Junto ao middleware ProActive é disponibilizado o ambiente gráfico IC2D. Este ambiente permite a monitoração e controle de aplicações distribuídas construídas com a bibilioteca ProActive. Implementada utilizando RMI e ProActive, a ferramenta trabalha segundo o mecanismo de chamadas assíncronas e migração de tarefas [Baude et al. 2001]. A versão atual da ferramenta permite uma série de funcionalidades, organizadas em três módulos distintos:

Módulo de Visualização Gráfica: Este módulo permite a visualização de Hosts, JVMs e objetos ativos. Nesse tipo de visualização é possível verificar a topologia na qual a aplicação está distribuída, o estado dos objetos ativos (execução, espera, etc.) e a migração de tarefas. Módulo de Visualização Textual: Este módulo proporciona a visualização textual, ordenada, dos eventos gerados no ambiente monitorado. Entre esses eventos podemos citar: lista ordenada de mensagens, dependência causal entre mensagens e eventos relacionados (envio e recepção correspondentes, por ex.). Módulo de Controle e Monitoração: Módulo que permite controlar o mapeamento de tarefas através do lançamento das mesmas e a migração interativa de objetos ativos através de um mecanismo drag-and-drop. Esta ferramenta também apresenta interface com os middlewares JINI (Sun) e Globus, o que permite a sua utilização como portal para lançamento de aplicações nos ambientes oferecidos por estas ferramentas. A figura 1 mostra a interface principal da ferramenta ic2d, onde pode ser vista a monitoração de uma aplicação em ambiente distribuído. Figure 1. Interface principal da ferramenta IC2D 5. Extensão da ferramenta IC2D O módulo implementado busca agregar à ferramenta IC2D a visualização de gráficos referentes a índices de carga coletados nas máquinas monitoradas. A subseções a seguir mostram como funciona a coleta das métricas monitoradas, como estas são armazenadas nas máquinas monitoradas e na máquina onde a ferramenta IC2D está sendo executada, o protocolo de comunicação utilizado e a interface onde os gráficos referentes aos índices coletados são exibidos.

5.1. Coleta de Métricas Por ser implementado completamente na linguagem Java, o middleware ProActive é portável a vários sistemas operacionais e arquiteturas, dependendo apenas da existência de uma JVM compatível. Entretanto, a coleta de métricas é realizada de formas diferentes em cada um dos sistemas operacionais. Enquanto, em alguns sistemas, basta a leitura das métricas em arquivos de texto especiais, outros necessitam da utilização de chamadas de sistemas, por exemplo. Para contornar essa dificuldade, foi implementada uma biblioteca em linguagem nativa (C) que permite a coleta de dados em diversos sistema operacional, para diversas arquiteturas. Atualmente os sistemas operacionais suportados são: Linux (i386, ia64, sparc, alpha, powerpc, m68k, mips, arm, hppa, s390), Solaris, FreeBSD, AIX, IRIX, Tru64, HPUX, MacOS X e Windows NT/XP/2000. Para reduzir a intrusividade, esta biblioteca também permite a coleta junto a algumas ferramentas de monitoração de clusters e grids, que podem já estar efetuando a coleta de dados. Atualmente, as ferramentas suportadas são: Ganglia, Performance Co-Pilot, Parmon e SCMS. Também é possível a coleta através de dados via SNMP. Além de permitir a manutenção da portabilidade, a utilização de métodos nativos também permite uma minimização da intrusividade, já que a leitura em código nativo apresenta menor custo computacional. A ligação entre código nativo e Java é feita por uma interface JNI (Java Native Interface) [Liang 1999]. Para realizar a coleta, cada máquina possui um deamon responsável pela coleta cíclica dos dados, que são armazenados em uma base de dados circular. O intervalo escolhido para a coleta das métricas é, por padrão, de 10 segundos. Este intervalo foi determinado para evitar o aumento da sobrecarga dada pela coleta e pelo necessidade de comunicação dos dados à máquina onde o usuário monitora o ambiente, Entretanto, é possível a configuração para utilizar intervalos menores, mas dependendo do hardware monitorado e da quantidade de máquinas monitoradas, a operação de coleta e comunicação dos valores coletados pode causar sobrecarga no ambiente. As métricas coletadas dividem-se em métricas de valor constante, que são coletadas apenas uma vez e métricas que tem seu valor alterado com o decorrer do tempo, as quais necessitam de coleta cíclica. Entre as métricas constantes temos número e freqüência de processadores, quantidade de memória principal e swap e tamanho dos discos rígidos. As métricas dinâmicas monitoradas são utilização de cpu, memória principal, swap e disco, carga média nos últimos 1, 5 e 15 minutos e o número de bytes e pacotes entrando e saindo pelas interfaces de rede. Além da coleta para visualização, o coletor também disponibiliza uma API (Application Programming Interface) pública, de acesso às métricas coletadas. Essa interface permite o acesso simplificado a características de hardware, ou carga e pode beneficiar aplicações que queiram fazer uso desse tipo de informação. 5.2. Armazenamento A extensão implementada permite visualizar informações históricas de monitoramento para grids, cluster e hosts, a partir do armazenamento cíclico dos índices coletados. Essa visualização permite a verificação das tendências de ocupação existentes nas amostras

coletadas em diferentes granularidades de tempo, em intervalos que vão desde minutos a anos. Para realizar essa tarefa, há a necessidade de manter histórico das amostras coletadas. A extensão implementada utiliza a biblioteca JRobin, que implementa a versão Java da ferramenta RRDtool, utilizada por ferramentas como o Ganglia [Massie et al. 2003]. Trata-se de uma biblioteca Java, OpenSource, de manipulação de arquivos RRD (Round Robin Database). Como o próprio nome sugere, estes arquivos constituem-se em bases de dados circulares com tamanho fixo. Cada RRD organiza-se em tabelas chamadas RRAs (Round Robin Archives). Depois que cada tabela alcança seu tamanho máximo, os novos dados inseridos sobrescrevem os valores mais velhos armazenados. Apesar de sobrescritos, estes valores não são, de todo, perdidos, pois é aplicado sobre eles uma função de consolidação, no caso deste trabalho, a média aritmética. Os dados consolidados são armazenados em outro RRA, do mesmo RRD. O deamon coletor cria um RRD, em uma pasta especial, para cada métrica variável coletada. Cada RRD é composto por 6 RRAs, que se destinam ao armazenamento de métricas referentes aos últimos minutos, horas, dias, semanas, meses e anos. Embora, para a construção dos gráficos, o armazenamento seja necessária apenas no computador onde está sendo executada a interface gráfica IC2D, o armazenamento local continua sendo necessário pois, dessa forma, é possível a visualização de gráficos referentes a períodos anteriores à execução da interface. A seção seguinte descreve o protocolo utilizado á comunicação dos dados. 5.3. Protocolo de Comunicação A comunicação entre os módulos coletores presentes em cada nó e a interface gráfica ocorre de duas formas distintas. Uma quando se inicia a monitoração e outra ciclicamente após a comunicação inicial. Quando incluída na interface de monitoração, cada máquina gera um arquivo XML (Extended Markup Language), contendo os dados coletados e os respectivos timestamps nos quais foram armazenados. O arquivo gerado é enviado à máquina onde reside a interface gráfica, convertido novamente ao formato RRD e salvo em local apropriado. Nesse momento ocorre a sincronização de tempo entre a base de dados recebida e do horário local. A sincronização consiste na atualização do timestamp de criação da base RRD segundo a diferença de tempo verificada entre o horário da máquinas de origem e o local. Como a menor unidade de tempo permitida em uma base RRD é de 1 segundo e a visualização mais fina da interface é da ordem de minutos, o protocolo de sincronização utilizado é bastante simples, consistindo apenas de uma chamada de método na máquina monitorada, que retorna o tempo local à máquina, descontado da metade do tempo que levou a chamada. Depois de incluído na interface, cada nó envia, ciclicamente, as métricas coletadas à máquina onde está ocorrendo a monitoração. O intervalo de envio é definido segundo o TTR (Time To Refresh) definido pelo usuário na interface. Cada vez que ocorre modificação no TTR, todos os nós monitorados são notificados. Para minimizar a ocorrência de gargalos que podem existir em decorrência da tentativa de todos os nós monitorados tentarem enviar seus dados coletados no mesmo instante, cada nó monitorado envia seu último valor coletado, em um tempo escolhido randomicamente dentro do intervalo determinado pelo TTR.

Figure 2. (a)visualização Host View (b)visualização Global View 5.3.1. Visualização Depois de disponíveis localmente, os arquivos das métricas coletadas em cada um dos nós monitorados, e de suas atualizações acionadas remotamente, os gráficos podem ser gerados a partir dos arquivos RRD. A geração de gráficos ocorre através da mesma ferramenta que proporciona a manipulação de arquivos RRD (JRobin), que agrega em seu pacote a ferramenta FreeJChart, para a geraçãod e dados referentes às séries temporais armazenadas. A interface desenvolvida permite dois tipos diferentes de visualização, visualizados em abas separadas: Host View(Figura 2.a): Permite a visualização de informações referentes a um host, escolhido entre os hosts monitorados. As métricas estáticas são mostradas separadamente das dinâmicas, as quais podem ter sua granularidade definida em minutos, horas, dias, semanas, meses ou anos. Esta visualização apresenta todas as métricas coletadas, referentes a este host Global View(Figura 2.b): Permite a visualização de determinada métrica simultaneamente em todos os hosts monitorados, segundo as mesmas granularidades da visualização anterior. Além da visualização, a interface também apresenta funcionalidades referentes a inserção ou remoção de nós na monitoração e outras configurações como TTR. 6. Trabalhos Relacionados A área de monitoramento e visualização de aplicações e sistemas distribuídos é bastante grande. Existe uma série de ferramentas que buscam realizar essas tarefas, com diferentes enfoques. Uma primeira classe de ferramentas focalizam na monitoração do ambiente a fim de oferecer, principalmente a administradores mecanismos de avaliar o estado dos recursos computacionais. Outra classe é a das ferramentas que focalizam o monitoramento de aplicações, voltadas principalmente a desenvolvedores na tarefa de depuração de programas distribuídos. A versão original da ferramenta IC2D tem o enfoque do segundo grupo de ferramentas. Entretanto, a partir do armazenamento de histórico dos índices, geração e visualização de gráficos, agregados pela extensão desenvolvida, características do primeiro grupo passam, também, a estar presentes.

Na primeira classe citada, das que focalizam o monitoramento de ambientes, podemos citar o Ganglia [Massie et al. 2003], SCMS [Uthayopas and Rungsawang 1999], e Parmon [Buyya 2000], entre outras. Estas ferramentas apresentam características bastante distintas. Ganglia volta-se à arquiteturas hierárquicas, organizadas em federações de clusters, e apresenta gráficos relativos às métricas coletadas em uma interface Web. SCMS volta-se a clusters de pequeno e médio porte, apresentando funcionalidades como a execução de comandos em paralelo. Parmon, por sua vez, volta-se ao monitoramento de clusters, permite a execuçao de comandos em paralelo e geração de alarmes condicionados a determinadas condições do sistema. Apesar de não possuir interface Web como Ganglia, nem permitir a execução de comandos paralelos, como o SCMS e Parmon, comparativamente a essa classe de ferramentas, o IC2D, com a extensão desenvolvida, apresenta algumas vantagens. A primeira delas é a de permitir a visualização de gráficos referentes a diferentes domínios administrativos, sem necessidade de instalação de ferramentas adicionais nesses domínios. Além disso, estando disponível alguma das ferramentas suportadas pelo coletor, nenhuma sobrecarga decorrente da coleta ocorrerá. Na outra classe, das ferramentas que focalizam o monitoramento de aplicações, podemos citar as ferramentas XPVM [Geist et al. 1994], GECCO (Grid Enabled Console COmponent) [von Laszewski et al. 2000] e ParaGraph [Ries et al. 1993]. XPVM permite a depuração de aplicações que utilizam a biblioteca PVM, em clusters, GECCO volta-se a monitoração e execução de tarefas, com dependências entre si em grids. Paragraph constitui-se em um ambiente gráfico oferecido no ambiente de monitoramento Paragon, e apresenta animações do tráfico de mensagem ou atividade dos nós processadores, entretanto permite apenas análise post-mortem. Nenhuma das ferramentas voltadas ao monitoramento de aplicações citadas acima apresenta geração de gráficos referentes a carga de máquinas, nas quais aplicações estão sendo monitoradas. Além disso voltam-se apenas ao ambiente ao qual destinam-se, enquanto o IC2D pertite interface com outras ferramentas, como Globus, JINI e Ibis. Além das características apresentadas anteriormente, outro benefício obtido está no fato de que, juntamente a extensão é oferecida uma API pública, que pode servir a aplicações que necessitem dados referentes ao sistema em que estão rodando. 7. Conclusões e Trabalhos Futuros Este trabalho apresentou uma extensão da ferramenta IC2D, que permite a visualização de gráficos referentes a índices de carga. A extensão implementada mantém a portabilidade do middleware ProActive, no qual se integra. Através da utilização de métodos nativos e bases de dados circulares permite uma coleta de dados e transmissão de dados de forma a minimizar a intrusividade. A visualização de gráficos de utilização dos nós monitorados complementa as funcionalidades disponibilizadas na versão original da ferramenta, pois permite ao usuário um controle mais efetivo da criação, lançamento e migração de tarefas. Isso por que permite visualizar características de cargas atuais, ou históricas para tomada dessas decisões. A título de exemplo, com a visualização oferecida por esse novo módulo, torna-se possível o lançamento de tarefas em máquinas menos carregadas ou então a migração de objetos que estão trafegando um grande número de pacotes, entre si, para a mesma máquina.

A versão atual ainda não proporciona a visualização hierárquica, de máquinas inacessíveis diretamente da máquina de onde está ocorrendo o monitoramento, como as demais funcionalidades da ferramenta IC2D, mas pretende-se que esta funcionalidade também seja oferecida em breve. Pretende-se também a realização de testes de escalabilidade, para verificar o comportamento da extensão implementada frente a um número grande de máquinas monitoradas, em locais distantes geograficamente. References Baduel, L., Baude, F., and Caromel, D. (2002). efficient, Flexible, and Typed Group Communications in Java. In Joint ACM Java Grande - ISCOPE 2002 Conference, pages 28 36, Seattle. ACM Press. ISBN 1-58113-559-8. Baude, F., Bergel, A., Caromel, D., Huet, F., Nano, O., and Vayssière, J. (2001). Ic2d: Interactive control and debugging of distribution. In Margenov, S., Wasiewski, J., and Yalamov, P., editors, Proceedings of the Third International Conference, LSSC 2001, volume 2179 of LNCS, pages 193 200, Sozopol, Bulgaria. Springer-Verlag. Buyya, R. (2000). PARMON: a portable and scalable monitoring system for clusters. Software Practice and Experience, 30(7):723 739. Caromel, D., Klauser, W., and Vayssière, J. (1998). Towards seamless computing and metacomputing in Java. Concurrency: Practice and Experience, 10(11 13):1043 1061. Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., and Sunderam, V. (1994). PVM Parallel Virtual Machine, A User s Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge, Mass. Liang, S. (1999). Java Native Interface: Programmer s Guide and Reference. Addison- Wesley Longman Publishing Co., Inc. Massie, M., Chun, B., and Culler, D. (2003). The ganglia distributed monitoring system: Design, implementation, and experience. Technical report, University of California, Berkeley Technical Report. Ries, B., Anderson, R., Auld, W., Breazeal, D., Callaghan, K., Richards, E., and Smith, W. (1993). The paragon performance monitoring environment. In Supercomputing 93: Proceedings of the 1993 ACM/IEEE conference on Supercomputing, pages 850 859, New York, NY, USA. ACM Press. Uthayopas, P. and Rungsawang, A. (1999). SCMS: An extensible cluster management tool for beowulf cluster. In Proceedings of Supercomputing 99 (CD-ROM), Portland, OR. ACM SIGARCH and IEEE. Department of Computer Engineering, Kasetsart University. von Laszewski, G., Foster, I. T., and Gawor, J. (2000). Cog kits: a bridge between commodity distributed computing and high-performance grids. In Java Grande, pages 97 106.