23
1 lipe L. Severino POD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

Embed Size (px)

Citation preview

Page 1: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

1Felipe L. Severino POD

XtremWeb

Felipe L. SeverinoProgramação com Objetos Distribuídos

paralela e

Page 2: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

2

XtremWeb

Felipe L. Severino POD

Sumário XtremWeb

Descrição; Características; Comunicação; Worker; Server;

XtremWeb-CH Descrição; Componentes; Características;

Caso de uso: SimGrid no XtremWeb

Page 3: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

3

XtremWeb

Felipe L. Severino POD

XtremWeb - Descrição

Plataforma open source para Desktop Grids;

Várias entradas para uma mesma tarefa;

Utilização de computação voluntária;

Trabalho relacionado: BOINC;

Page 4: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

4

XtremWeb

Felipe L. Severino POD

XtremWeb - Características

3 componentes: Worker: recurso computacional; Client: usuário, envia aplicações e tarefas (jobs) a serem

computadas; Server: gerencia os clients, workers, aplicações e jobs;

Pull and Steal: Pull: worker solicita tarefa; Steal: cycle-stealing (interrupções na computação);

Page 5: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

5

XtremWeb

Felipe L. Severino POD

XtremWeb - Comunicação

Toda comunicação é iniciada pelo Worker; Primitivas de get e put; Comunicação one-sided (usada em MPP);

Em programação distribuída, comunicações one-sided são feitas com Remote Procedure Call (RPC) ou Remote Method Invocation (RMI);

Page 6: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

6

XtremWeb

Felipe L. Severino POD

XtremWeb - Comunicação

XW utiliza chamadas RMI; Segurança (autenticação e transmissão de dados); Facilidade de utilização;

Protocolo de comunicação entre Worker e Server: hostRegister: autentica o server, obtém lista de servers

que podem prover jobs; workRequest: requisição de job; workAlive: indicação de que worker está trabalhando; workResult: envia resultado da computação;

Page 7: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

7

XtremWeb

Felipe L. Severino POD

XtremWeb - Worker

Implementado, em sua maioria, em Java Realiza chamadas de sistema em C; Utilização de Java Native Interface;

Funcionalidades principais: Prover recursos computacionais; Executar job enviado pelo server;

Page 8: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

8

XtremWeb

Felipe L. Severino POD

XtremWeb - Worker

Usuário pode definir: Quando worker realiza tarefa; Quais recursos estão disponíveis; Quanto de cada recurso estará disponível (limites);

Disponibilidade do worker depende de fatores como: Presença do usuário (mouse, teclado); Presença de atividades não interativas (uso CPU, memória, I/O); ...

Page 9: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

9

XtremWeb

Felipe L. Severino POD

XtremWeb - Server

Controlar aplicações e jobs; Composto por módulos:

Pool de aplicações: binários pré-compilados para diferentes plataformas;

Pool de jobs: tarefas submetidas pelo client, referenciando uma aplicação e os dados de entrada;

Módulo de Accouting: informações sobre as tarefas (identificação do client, data e hora, etc...);

Page 10: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

10

XtremWeb

Felipe L. Severino POD

XWCH - Descrição

Objetivo de criação de um sistema Peer-to-Peer para aplicações de uso intensivo de CPU;

Melhoramento do XW original: Substituição das comunicações RMI por Sockets; Permitir tarefas comunicantes; Comunicação entre workers;

Page 11: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

11

XtremWeb

Felipe L. Severino POD

XWCH - Componentes

Coordinator: Realiza intermediação entre workers e clients; Gerencia:

Aplicações; Jobs; Distribuição de jobs entre workers solicitantes;

Equivalente ao server no XW original;

Page 12: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

12

XtremWeb

Felipe L. Severino POD

XWCH - Componentes

Worker: Recurso computacional; Realiza solicitação de jobs ao coordinator; Possui 4 estados:

Ready: pronto para executar uma tarefa; Receiving: recebendo dados para tarefa; Running: computando; Sending: enviando dados de saída;

Page 13: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

13

XtremWeb

Felipe L. Severino POD

XWCH - Componentes

Warehouse: Recebe dados:

Entre duas tarefas comunicantes; De entrada de uma tarefa; De saída de uma tarefa;

Utilizado para evitar sobrecarga no coordinator;

Page 14: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

14

XtremWeb

Felipe L. Severino POD

XWCH - Componentes

Broker: Utilizado para dividir a aplicação do usuário em um

conjunto de tarefas; Divisão realizada de acordo com a plataforma; Depende da aplicação a ser executada; Normalmente é instalado na mesma máquina que o

coordinator;

Page 15: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

15

XtremWeb

Felipe L. Severino POD

XWCH - Características

Suporte à tarefas comunicantes: Geralmente descritas através de um grafo de fluxo de

dados: Nodos: tarefas; Vértices: trocas de dados;

Inclui um novo estado ao worker: blocked; Um worker blocked não pode executar tarefas; Dados necessários devem ser produzidos por outra tarefa

(running);

Page 16: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

16

XtremWeb

Felipe L. Severino POD

XWCH - Características

Comunicação entre workers: XWCH-sMs (slave-Master-slave):

Não há comunicação direta entre workers; Toda comunicação deve passar pelo coordinator; Sobrecarga do coordinator;

XWCH-p2p: Comunicação direta entre workers; Workers devem se “enxergar” para este tipo de comunicação

ser possível;

Page 17: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

17

XtremWeb

Felipe L. Severino POD

SimGrid

SimGrid é um toolkit que provê funcionalidades para simulação de ambientes distribuídos;

Não é um binário, mas sim uma API;

Diversas APIs, inclusive utilizando Java;

Page 18: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

18

XtremWeb

Felipe L. Severino POD

SimGrid

Para execução são necessários dois arquivos: Platform: descrição da plataforma; Deployment: descrição da aplicação;

Neste trabalho foi utilizada aplicação masterslave, disponível na página do projeto;

Page 19: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

19

XtremWeb

Felipe L. Severino POD

SimGrid

Para enviar o binário do SimGrid deve-se utilizar compilação com linkagem estática (ou seja, remover uso de bibliotecas em tempo de execução);

Para envio dos arquivos de platform e deployment: zip

Page 20: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

20

XtremWeb

Felipe L. Severino POD

SimGrid

Page 21: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

21

XtremWeb

Felipe L. Severino POD

Considerações finais

XtremWeb é uma solução para aplicações Bag-of-tasks que demandem muito poder computacional; Porém limitado a este tipo de aplicação;

XWCH apresenta uma variação do XW para tratar aplicações que requeiram troca de dados entre tarefas;

Page 22: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

22

XtremWeb

Felipe L. Severino POD

Considerações finais

Utilização do SimGrid no XW é possível com relativa facilidade;

Caso de uso interessante, pois pode existir a necessidade de executar-se diversas simulações, com diversos ambientes distintos;

Busca-se obter o resultado das simulações o mais rápido possível (às vezes pode ser demorado...);

Page 23: 1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e

23Felipe L. Severino POD

XtremWeb

Felipe L. SeverinoProgramação com Objetos Distribuídos

paralela e