Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo...

42
Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque

Transcript of Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo...

Page 1: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Simple Locality-Aware Co-allocation in Peer-to-Peer Supercomputing

Felipe Jung VilanovaRodrigo Gheller Luque

Page 2: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Problema

Supercomputing

Não é high throughput computing

Tarefas não são independentes

Há comunicação entre as tarefas

Page 3: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Supercomputing

Co-allocation Escalonar tarefas em vários sites

Setup complicado Manutenção cara Componentes centralizados

Falta de tolerância a falhas Falta de escalabilidade (gargalo)

Page 4: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Proposta

P2P Supercomputing Inexistência de componente centralizado Presença de tolerância a falha Presença de escalabilidade Escalonador considera distância entra

máquinas (locality aware) Resistente a mudanças no ambiente

Page 5: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Objetivo

Zorilla Protótipo de middleware Flooding

Selective broadcast Radius

Menor custo que grid Mais confiável a ambientes dinâmicos

Page 6: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Revisão Global Computing

Master-Worker Ciclos ociosos Exemplos

SETI@home XtremeWeb distributed.net

Poucos suportam Supercomputing XtremeWeb

Escalonador centralizado

Page 7: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Revisão

Globus e Unicore Escalonador local para sites

(normalmente clusters) Meta escalonador centralizado

Escalonadores atuais com co-alocação tem algum ponto de centralização

Page 8: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Revisão

Centralizadores facilitam Contabilização Segurança Descoberta

Como fazer isso numa rede sem centralizador?

Page 9: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Implementado em JAVA Portável Apenas precisa JVM instalado

Suporta programas nativos Virtualização para resolver segurança

VMWare VirtualBox

Page 10: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Todos os nodos podem Executar tarefas

Escalonar tarefas

Submeter tarefas

Armazenar arquivos

Page 11: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla P2P overlay network

Virtual network Nodos próximos fisicamente tendem a ser

vizinhos Suporta tarefas paralelas Tolerância a falhas requirida a nível de

aplicação Quando nodo cai, tarefa paralela reagenda para

outro nó, mas aplicação deve tratar

Page 12: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Objeto tarefa distribuída Estado Arquivos associados

Nodo Worker proporcial a # processadores

Page 13: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

1. Tarefa é submetida

Page 14: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Page 15: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Page 16: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Page 17: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

3. Workers são instanciados

w

w

w w

Page 18: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Zorilla

Job

Job

Job

w

w

w w1. Tarefa é submetida

2. Anúncio por Flooding

3. Workers são instanciados

4. Resultados são coletados

Page 19: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Escalonamento Distribuído

Nós verificam requerimento e estado Localidade

Latência entre nodos Tolerância a falhas a nível de

middleware Aplicação é notificada de falha num nodo Tratamento da falha pela aplicação Não implementa sistema de checkpoints

Page 20: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Eslonamento Heurístico

Raio baseado em log10

Vizinhança média 10 Incrementa raio até atingir requerimentos

Otimizações FIFO para anúncios

Lazzy feedback Timeout incremental Early computation

Page 21: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

TCP Bamboo Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Page 22: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

Bamboo Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Conexão direta entre os nodos

Conexão externa

TCP

Page 23: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

TCP Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Comunicação interna entre os nodos

Entrada de novos nodos

Detecção de falhas e ajuste da rede

Locality Aware

Bamboo

Page 24: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

TCP Bamboo

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Para novos nodos encontrarem os outros nodos da rede e vice -versa

Broadcast periódicoBroadcast

UDP

Page 25: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

TCP Bamboo Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Abstração da implementação de rede para a camada de cima

Sistema de troca de mensagem simples

Camada de Abstração de Rede

Page 26: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Camada de Abstração de Rede

TCP Bamboo Broadcast UDP

Máquina Virtual Java (JVM)

Funcionalidade do nodo

Jobs Pendentes

Interface com Cliente

Jobs Ativos

... ...Interface WEB

Page 27: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Camada de Abstração de Rede

TCP Bamboo Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Submissão de tarefas

Requisições via conexão TCP (criar ou cancelar tarefas, consultar estado )

Interface com Cliente

Page 28: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

TCP Bamboo Broadcast UDP

Jobs Ativos

... ...

Máquina Virtual Java (JVM)

Web Browser

Monitoração de estado de nodos e tarefas

Interface WEB

Page 29: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação

Interface WEB

Jobs Pendentes

Interface com Cliente

Camada de Abstração de Rede

TCP Bamboo Broadcast UDP

Jobs Ativos

Máquina Virtual Java (JVM)

Tarefas recebidas mas ainda não executadas

Tarefas sendo executadas armazena os arquivos, o estado e todos

“workers” de uma tarefa

... ...

Page 30: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Implementação Estado original da tarefa mantido no

nodo que a submeteu Execuções que não modificam o estado de

uma tarefa: local Execuções que modificam o estado de uma

tarefa: Encaminhadas ao responsável Arquivos

Saídas e logs: enviados ao responsável Entradas: lidas de um nodo qualquer

Page 31: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos Teste no Grid5000

Milhares de processadores distribuídos em 8 localidades na França

Latência entre 5 e 20 milisegundos

Testes de usabilidade e escalabilidade com e sem Zorilla Resolver N-Queens puzzle de maneira

distribuída

Page 32: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos Sistema Satin

Modelo paralelo de computação “dividir para conquistar”

Ibis Software em Java para Grid

Page 33: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos – Sem Zorilla Implantação

Copiar programa e arquivos de entrada em todos clusters e configurá-los

Determinar mecanismo de escalonamento local de tarefas e escrever os scripts

Execução Determinar disponibilidade de nodos Iniciar o servidor de nomes do Ibis Monitorar o progresso da aplicação

Page 34: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos – Sem Zorilla

Limpeza Coletar arquivos de saída e logs Cancelar reservas pendentes Remover arquivos de saída e logs dos

clusters

Page 35: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos – Com Zorilla

Copiar Zorilla em todos os clusters (338 máquinas com 2 processadores)

Determinar a configuração da rede local

Iniciar a execução utilizando o escalonador local

Page 36: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Experimentos – Com Zorilla

Com apenas um comando Zorilla foi implantado e iniciado automaticamente em todos os 671 processadores em 90s, sem nenhuma outra intervenção humana

Resolveu o problema N-Queens 22 em 35 minutos

Após o término copiou todos os arquivos de saída e logs para o nodo que submeteu a tarefa

Page 37: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Teste do algoritmo de escalonamento

430 máquinas em 6 diferentes sites do Grid5000

Número de workers em cada cluster variou de 18 em Grenoble a 356 em Orsay

Page 38: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Teste do algoritmo de escalonamento

Page 39: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Conclusões

Zorilla é fácil de implantar, portável e pode automatizar os passos necessários para rodar aplicações distribuídas de super-computação

Zorilla é escalável e tolerante a falhas

Page 40: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Conclusões do Grupo Considera Grid como coleção de

Clusters Testes não utilizaram sistemas P2P reais Sistema dinâmico?

Tolerância a falhas? Implementação de checkpoints?

Page 41: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Conclusões do Grupo

Escalonamento Vizinhança média? Raio progressivo? Submissão tendenciosa Locality-Aware?

Pseudo-vizinhança

Timeout incremental?

Page 42: Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.

Conclusões do Grupo

Teste de submissão única? Teste de submissão centralizada?

Concorrência? Overlay Network - Bamboo

Particionamento por latência