10

Click here to load reader

Grid com JPPF

Embed Size (px)

Citation preview

Page 1: Grid com JPPF

Trabalho desenvolvido pelos alunos:Anderson Algacir MallmannMatheus Marchezan de MarcoRodrigo Catão AraujoRoger Royer de MoraesThiago Baronio Trevisan

Computação ParalelaTradicionalmente, o software tem sido escrito para ser executado sequencialmente. Para

resolver um problema, um algoritmo é construído e implementado como um fluxo serial de instruções. Tais instruções são então executadas por uma unidade central de processamento de um computador. Somente uma instrução pode ser executada por vez; após sua execução, a próxima então é executada.

Por outro lado, a computação paralela faz uso de múltiplos elementos de processamento simultaneamente para resolver um problema. Isso é possível ao quebrar um problema em partes independentes de forma que cada elemento de processamento pode executar sua parte do algoritmo simultaneamente com outros. Os elementos de processamento podem ser diversos e incluir recursos como um único computador com múltiplos processadores, diversos computadores em rede, hardware especializado ou qualquer combinação dos anteriores.

JPPFJPPF é um framework desenvolvido em java, que pode ajudar os desenvolvedores a rodar e

implementar computação paralela em java. Isso permite que uma aplicação em java rode independentes partes em vários outros computadores em paralelo. É útil para dividir a aplicação java em diversas partes independentes, tipicamente chamadas de Tarefas.

Arquitetura e TopologiaUm grid JPPG é feito com três diferentes tipos de componentes que se comunicam entre si.

Clientes: São os pontos de entradas para o grid, que permite desenvolvedores enviar works através da API

Servers: É o componente que receber o work dos clientes, e então despacha eles para os Nó, também recebem os resultados dos Nós e envia os resultados de volta aos clientes.

Nós: Executam o work atual.

Distribuição dos Trabalhos

Para entender a distribuição no Grid, vamos começar definindo as duas unidades de trabalho que o JPPF suporta.

Uma tarefa é a menor unidade de trabalho que pode ser controlada dentro do Grid. Da perspectiva do JPPF, ela é considerada atômica.

Um trabalho é um grupo lógico de tarefas que são submetidas ao mesmo tempo.

Page 2: Grid com JPPF

Para ilustrar o fluxo mais comum de execução de um trabalho, vamos dar uma olhada no seguinte gráfico:

Fontes do Paralelismo

No nível do cliente: Um cliente, múltiplos jobs simultâneos; Múltiplos clientes; Local misturado, e conexão remota;

No nível do servidor: Número de clientes conectados; Número de nós conectados; Balanceamento de cargas; Job SLA; E/S paralela;

No nível do nó: Execução.

Page 3: Grid com JPPF

Usando o JPPF

Softwares Requiridos Java 1.6 ou superior Apache Ant 1.7.0

InstalaçãoPara instalar o JPPF é simples, ele vem em um formato ZIP, que para instalar basta

simplesmente descompactar o arquivo no diretório de sua escolha.Depois de descompactado, o conteúdo vai aparecer no diretório chamado: JPPF-x.y.z-

<nome-do-modulo>

Executando MódulosO JPPF inclui diferentes módulos, que podem ser executados individualmente.Os módulos são:

Application template: É o modelo de aplicação usado como base para uma nova Aplicação JPPF.

Driver: É o componente que inicia o servidor. Node: É o componente que inicia o computador como Nó. Administration console: É a ferramenta de monitoramento e administração do

servidor.

Iniciando o ServidorPara iniciar o servidor no windows, basta executar o arquivo startDriver.bat que está

incluido dentro da pasta JPPF-x.y.z-driver. E para o Linux basta executar o startDriver.sh.

Após executar é para ser exibida uma tela semelhante a essa:

Page 4: Grid com JPPF

Iniciando um NóPara iniciar o nó no windows, basta executar o arquivo startNode.bat que está incluido

dentro da pasta JPPF-x.y.z-node. E para o Linux basta executar o startNode.sh.

Após executar é para ser exibida uma tela semelhante a essa:

Executando a ferramenta de monitoramentoPara iniciar a ferramenta no windows, basta executar o arquivo startConsole.bat que está

incluido dentro da pasta JPPF-x.y.z-admin-ui. E para o Linux basta executar o startConsole.sh.

Após executar é para ser exibida uma tela semelhante a essa:

Page 5: Grid com JPPF

Na ferramenta de monitoramento e administração é possível ver quantos computadores estão conectados ao servidor através de uma lista e também através de um gráfico. Isto pode ser localizado na Aba Topology.

Também é possível ver a execução das Jobs e os Nós que estão executando. Isto pode ser encontrado na aba Job Data.

Dados como o Status do servidor, e gráficos de desempenho também podem ser encontrados nas abas Server Stats e Charts respectivamente.

Page 6: Grid com JPPF

Executando uma aplicaçãoPara servir como exemplo foi usado o pacote de exemplos que existe no site do JPPF.Depois de baixar e extrair, o exemplo pode ser encontrado na pasta JPPF-x.y.z-samples-

pack/MatrixMultiplication/.Esse exemplo executa a multiplicação de 2 matrizes, dividindo a operação de acordo com o

numero de linhas de cada matriz.O tamanho da matriz e o numero de iterações pode ser alterado no arquivo config/jppf-

client.properties através de qualquer editor de texto, as informações se encontram no final do arquivo

# the size of the matrices to multiplymatrix.size = 300# number of times the matrix multiplication is performedmatrix.iterations = 100

Finalmente para executar, basta iniciar o arquivo run.bat no Windows ou run.sh no Linux

Uma tela semelhante a essa deverá ser exibida:

Acompanhando pela ferramenta de Monitoramento deverá ser exibido algo assim na aba Job Data:

Page 7: Grid com JPPF
Page 8: Grid com JPPF

Referenciashttp://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_paralela

http://www.jppf.org/doc/v3/index.php?title=JPPF_Overview