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.

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

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

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

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

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

Trabalhos Relacionados

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

Legion

U. of Virginia (1993)

Primeira implementação: 1997

Arquitetura Orientada a Objetos

Objetos centrais (core objects)

Infra-estrutura específica

Projeto encerrado: Avaki

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

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

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

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

InteGrade: Arquitetura e Implementação

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

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

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

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

Derivado do protocolo do 2K

Conceito de dica (hint)

Protocolo de Disseminação de Informações

Application Repository (AR)

Armazena as aplicações a serem executadas na Grade

Implementação atual: apenas duas operações

registerApplication

getApplication

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

AsctGui: Tela Principal

AsctGui: Execução de Aplicação Convencional

AsctGui: Execução de Aplicação BSP

AsctGui: Execução de Aplicação Paramétrica

AsctGui: Adição de Cópia Paramétrica

AsctGui: Visualização de Resultados

Protocolo de Execução de Aplicações

Tecnologias Utilizadas

C++/Lua/O2

LRM

Java/JacORB

GRM, AR, ASCT

InteGrade: Demais Módulos

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

Local Usage Pattern Analyzer (LUPA)

Realiza a coleta das séries temporais

Aplica os algoritmos de clustering

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

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

Programação Paralela no InteGrade

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)

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

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

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()

Finalizando

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).

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

Agradecimentos

Família

Fabio Kon

Membros do InteGrade

Membros do GSD

CAPES

IMESCOSTM

Wagner César Bruna

Leo Kazuhiro Ueda

FIM!

http://gsd.ime.usp.br/integrade

(Fim)

2004-12-11T13:30:41