Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo...
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