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

Post on 21-Apr-2015

113 views 1 download

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

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

Felipe Jung VilanovaRodrigo Gheller Luque

Problema

Supercomputing

Não é high throughput computing

Tarefas não são independentes

Há comunicação entre as tarefas

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)

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

Objetivo

Zorilla Protótipo de middleware Flooding

Selective broadcast Radius

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

Revisão Global Computing

Master-Worker Ciclos ociosos Exemplos

SETI@home XtremeWeb distributed.net

Poucos suportam Supercomputing XtremeWeb

Escalonador centralizado

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

Revisão

Centralizadores facilitam Contabilização Segurança Descoberta

Como fazer isso numa rede sem centralizador?

Zorilla

Implementado em JAVA Portável Apenas precisa JVM instalado

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

VMWare VirtualBox

Zorilla

Todos os nodos podem Executar tarefas

Escalonar tarefas

Submeter tarefas

Armazenar arquivos

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

Zorilla

Objeto tarefa distribuída Estado Arquivos associados

Nodo Worker proporcial a # processadores

Zorilla

1. Tarefa é submetida

Zorilla

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

Zorilla

Job

Job

Job

1. Tarefa é submetida

2. Anúncio por Flooding

3. Workers são instanciados

w

w

w w

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

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

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

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)

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

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

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

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

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

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

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

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

... ...

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

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

Experimentos Sistema Satin

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

Ibis Software em Java para Grid

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

Experimentos – Sem Zorilla

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

clusters

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

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

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

Teste do algoritmo de escalonamento

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

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?

Conclusões do Grupo

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

Pseudo-vizinhança

Timeout incremental?

Conclusões do Grupo

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

Concorrência? Overlay Network - Bamboo

Particionamento por latência