integrade: um sistema de middleware para computação em ...andgold/presentations/... ·...

Post on 20-Jul-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related