Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
InteGrade: um Sistema de Middleware para Computação em Grade Oportunista
Dissertação apresentada ao Instituto de Matemática e Estatística da Universidade de São Paulo para obtenção do título de Mestre em Ciência da Computação.
Andrei Goldchleger
Orientador: Prof. Dr. Fabio Kon
São Paulo, 14 de dezembro de 2004.
2
Visão Geral
● Computação em Grade
● InteGrade: Introdução
● Trabalhos Relacionados
● InteGrade: Arquitetura e principais módulos
● InteGrade: Demais Módulos
● Programação paralela no InteGrade
3
Computação em Grade: Motivação
● Uso crescente de computação nas mais diversas áreas
– Simulações
● Previsão do Tempo● Mercados Financeiros● Quase todas as ciências: Química, Física, Biologia,...
– Análise e Mineração de Dados
● Wal-Mart● Experimentos (LHC...)
– Renderização
● Tradicionalmente: Máquinas Paralelas
● Mais recentemente: Aglomerados dedicados (Beowulf, ...)
● Idéia: interligar recursos computacionais onde quer que estejam
4
Computação em Grade: Características
● Infra-estrutura de software para interligar recursos computacionais distribuídos:
– Normalmente dispersos em uma grande área geográfica
– Possivelmente heterogêneos
– Pertencentes a diversos Domínios Administrativos
– De diferentes tipos
● Taxonomia para sistemas de Computação em Grade(Krauter et al.)
– Grade Computacional
● Grade Computacional Oportunista– Grade de Dados
– Grade de Serviços
5
InteGrade: Motivação
● Recursos computacionais dedicados são caros
● Instituições possuem dezenas ou centenas de computadores pessoais
● Ociosidade de tais recursos é grande
● Avanços na tecnologia dos computadores pessoais
● Possibilidade de utilizar a capacidade ociosa para realizar computação
6
InteGrade: Principais Características
● Sistema de Middleware para Computação em Grade oportunista
● Foco na utilização do poder computacional de estações de trabalho (computadores pessoais)
● Implementação e Arquitetura Orientada a Objetos
● Suporte a diversas categorias de aplicações
– Atualmente: Seqüenciais, Bag-of-Tasks, paralelas BSP
● Preservar os usuários que compartilham recursos na grade
– Qualidade de Serviço
– Segurança
7
Trabalhos Relacionados
8
Globus
● Argonne National Labs / U. of Chicago / USC (1996)
● Projeto de maior impacto em Computação em Grade
● Globus Toolkit (GT)
● GT2: Conjunto de serviços independentes
– MDS, GRAM, GARA,...
● GT3: Serviços baseados em uma fundação comum
– Open Grid Services Architecture (OGSA)
● Baseado em Web Services– Open Grid Services Infrastructure (OGSI)
● GT4 (em testes): WS-Resource Framework
– Refatoramento da OGSI
– Utiliza novas especificações de Web Services
9
Legion
● U. of Virginia (1993)
– Primeira implementação: 1997
● Arquitetura Orientada a Objetos
– Objetos centrais (core objects)
● Infra-estrutura específica
● Projeto encerrado: Avaki
10
Condor
● U. of Wisconsin-Madison (1988)
● Originalmente um gerenciador de aglomerados não dedicados
● High Throughput Computing
● Extensões para computação em grade
– Flocking
– Condor-G
11
MyGrid/OurGrid
● UFCG/HP
● Grade Computacional Simplificada
– Próprio usuário pode implantar
● Aplicações Bag-of-Tasks
● OurGrid: extensão do MyGrid
– Peer-to-peer
– reutiliza o MyGrid
– Comunidade de favores
12
SETI@home
● U. of Califórnia-Berkeley
● SETI
● Sistema simples
– “Sistema” embutido na Aplicação
● Grande sucesso
– 4,5 milhões de usuários (600mil ativos)
– Maior tempo de computação da história
13
BOINC
● U. of Califórnia-Berkeley
● Arcabouço genérico para aplicações Bag-of-Tasks
● Permite diferentes projetos (6 atualmente)
● SETI@home está sendo migrado para o BOINC
14
InteGrade: Arquitetura e Implementação
15
InteGrade: Arquitetura
● Inspirada no sistema 2K
● Unidade básica: Aglomerado
● Diferentes tipos de nós (máquinas)
● Grade InteGrade: união de vários aglomerados
16
InteGrade: Módulos
● Cooperam de maneira a desempenhar diversas funções necessárias à grade
– Coleta de Informações
– Escalonamento
– Armazenamento de Aplicações da Grade
● Interface definida em IDL de CORBA
17
Local Resource Manager (LRM)
● Disponibiliza os recursos de uma máquina na Grade
● Responsável por:
– Coletar e atualizar informações sobre a disponibilidade de recursos
– Executar aplicações
– Permitir o controle de aplicações
18
Global Resource Manager (GRM)
● Mantém informações sobre cada nó
– Estáticas: Sistema Operacional, modelo do processador, ...
– Dinâmicas: CPU e memória disponíveis, ...
● Escalonador das aplicações da grade
19
● Derivado do protocolo do 2K
● Conceito de dica (hint)
Protocolo de Disseminação de Informações
20
Application Repository (AR)
● Armazena as aplicações a serem executadas na Grade
● Implementação atual: apenas duas operações
– registerApplication
– getApplication
21
Application Submission and Control Tool (ASCT)● Principal ferramenta de interação entre o usuário e o
InteGrade, oferece as seguintes funcionalidades:
– Registro de aplicação
– Requisição de execução
– Monitoramento de execução
– Coleta de resultados
22
AsctGui: Tela Principal
23
AsctGui: Execução de Aplicação Convencional
24
AsctGui: Execução de Aplicação BSP
25
AsctGui: Execução de Aplicação Paramétrica
26
AsctGui: Adição de Cópia Paramétrica
27
AsctGui: Visualização de Resultados
28
Protocolo de Execução de Aplicações
29
Tecnologias Utilizadas
● C++/Lua/O2
– LRM
● Java/JacORB
– GRM, AR, ASCT
30
InteGrade: Demais Módulos
31
Análise e Monitoramento dos Padrões de Uso
● Recursos administrados pelo InteGrade podem ser retomados pelo proprietário a qualquer momento
● GRM apenas possui informações sobre a disponibilidade de recursos atual
● Problema: como estimar por quanto tempo a máquina ficará ociosa?
● Solução: Análise e Monitoramento dos Padrões de Uso
– Coleta de séries temporais que refletem a utilização dos recursos (CPU, memória, disco,...)
– Aplicação não supervisionada de algoritmos de clustering
– Clusters resultantes representam os Padrões de Uso
32
Local Usage Pattern Analyzer (LUPA)
● Realiza a coleta das séries temporais
● Aplica os algoritmos de clustering
33
Global Usage Pattern Analyzer (GUPA)
● Responsável por consultar os diversos LUPA sobre a possibilidade de executar uma aplicação
● Pode concentrar os padrões de uso das máquinas do aglomerado
– Questão importante: privacidade
34
Node Control Center (NCC)
● Permite que o proprietário do recurso imponha restrições sobre o compartilhamento
– Horários (não) permitidos
– Fração dos recursos a ser compartilhada
– Quando considerar a máquina ociosa
● Uso opcional
35
Programação Paralela no InteGrade
36
Introdução
● Multiplicidade de recursos na Grade sugere uso por aplicações paralelas
● Questões importantes:
– Comunicação
– Tolerância a falhas
– Variedade de modelos existentes
● MPI, PVM, BSP, CGM● InteGrade adotou o modelo BSP (inicialmente)
37
O Modelo BSP
● A bridging model for parallel computation (Valiant, 1990)
● Aplicações do tipo SPMD (Single Program, Multiple Data)
● Bibliotecas enxutas
– Oxford BSPlib possui apenas 20 funções
● Computação organizada em superpassos
– Processador trabalha com os valores que dispõe localmente
– Processador comunica-se com os demais
– Barreira de sincronização
● Comunicação só é efetivada no final do superpasso
38
Características da Implementação
● Adota a interface C da BSPlib
– Elimina necessidade de porte da aplicação
– Dois mecanismos de comunicação:
● Distributed Remote Memory Addressing (DRMA)● Bulk Synchronous Message Passing (BSMP)
● CORBA para comunicação entre nós da aplicação
● Independência da biblioteca em relação ao InteGrade
– Praticamente auto-contida
39
Funções implementadas
void bsp_begin(maxProcs)
void bsp_end()
int bsp_pid()
int bsp_nprocs()
void bsp_pushregister(addr, size)
void bsp_popregister(addr)
void bsp_put(pid, src, dst, offset, nbytes)
void bsp_get(pid, src, offset, dst, nbytes)
void bsp_sync()
40
Finalizando
41
Publicações: 1/2
● InteGrade: Object-Oriented Grid Middleware Leveraging Idle Computing Power of Desktop Machines. A. Goldchleger, F. Kon, A. Goldman, M. Finger. ACM/IFIP/USENIX 1st International Workshop on Middleware for Grid Computing.
● InteGrade: Object-Oriented Grid Middleware Leveraging Idle Computing Power of Desktop Machines. A. Goldchleger, F. Kon, A. Goldman, M. Finger, and G. C. Bezerra. Concurrency and Computation: Practice & Experience.
● Running Highly-Coupled Parallel Applications in a Computational Grid (Short Paper). A. Goldchleger, C. A. Queiroz, F. Kon and A. Goldman. 22th Brazilian Symposium on Computer Networks (SBRC'2004).
42
● Grid: An Architectural Pattern. Raphael Y. de Camargo, Andrei Goldchleger, Marcio Carneiro, and Fabio Kon. The 11th Conference on Pattern Languages of Programs (PloP'2004)
● Checkpointing-based Rollback Recovery for Parallel Applications on the InteGrade Grid Middleware. Raphael Y. de Camargo, Andrei Goldchleger, Fabio Kon, and Alfredo Goldman. ACM/IFIP/USENIX 2nd International Workshop on Middleware for Grid Computing
Publicações: 2/2
43
Agradecimentos
● Família
● Fabio Kon
● Membros do InteGrade
● Membros do GSD
● CAPES
● IMESCOSTM
– Wagner César Bruna
– Leo Kazuhiro Ueda
44
FIM!
http://gsd.ime.usp.br/integrade
(Fim)