Computação em Grid usando OurGrid Walfredo Cirne Universidade Federal de Campina Grande http://walfredo.dsc.ufcg.edu.br mailto:[email protected] © 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice O que é um Grid? Computational Grid (source of computational resources and services) Para que serve um Grid? Para que serve um Grid? Para que serve um Grid? Para que serve um Grid? O Impacto de Grids VR Simul MegaCiclos Databank Inc. Embratel Mastercard Grid Auditing Estado Atual de Grids • A idéia de Grid surgiu na comunidade de Computação de Alta Performance há pouco menos de 10 anos − Agora os primeiros Grids de Alta Performance começam a entrar em produção • Há 3 anos, o mainstream da computação percebeu a possibilidade de usar tecnologia Grid para transformar computação em serviço − A tecnologia Grid está se fundindo com Web Services O que dá pra fazer hoje? • Cada site mantém controle e escalonamento local • É possível configurar o mapeamento de usuários globais para usuários locais • Aplicações usam o Grid como um todo através de brokers (ou escalonadores de aplicação) • Montar um Grid envolve uma negociação off-line Rodando uma Aplicação Globus O Projeto OurGrid • Projeto desenvolvido em parceria pela UFCG e HP A Tecnologia OurGrid • OurGrid é uma solução grid para execução de Aplicações Bag-of-Tasks • Aplicações Bag-of-Tasks são aquelas aplicações cujas tarefas são independentes • Não é viável fazer computação em grid de aplicações fortemente acopladas na Internet de hoje Aplicações Bag-of-Tasks • Data mining • Pesquisa massiva (como quebra de chave e sequenciamento de gens) • Varredura de parâmetros • Simulações • Fractais (como Mandelbrot) • Manipulação de imagem (como tomografia) • E muitas outras… Diferenciais do OurGrid • Montagem automática de grids − Evitando assim todo procedimento de negociação offline • Escalonamento de aplicação (brokerage) que não depende de informações sobre a aplicação e sobre o grid Componentes do OurGrid • MyGrid Broker: Permite um usuário utilizar todas as máquinas a que tem acesso • OurGrid Community: Fornece acesso a máquinas dentro do COPAD • SWAN: Segurança Arquitetura OurGrid Site Manager User Interface SWAN , ... , 1 n MyGrid Sandboxing OurGrid: Uma Rede de Favores • Usuários locais sempre têm prioridade nos recursos locais • Recursos ociosos são doados para comunidade • A grande questão é como fazer esta doação de forma justa Evitando o “Gerson” • É fundamental ter um mecanismo que encoraje of participantes a doarem seus computadores ociosos − Em sistemas como KaZaA, a maioria é “Gerson” • OurGrid usa um sistema de reputação peer-topeer − Todos os peer mantém um balanço local de todos os peers conhecidos − Peers com maior balanço têm prioridade − O comportamento emergente do sistema como um todo é “quanto mais você doa, mais você recebe” − Isso funciona sem requerer infra-estrutura adicional Exemplo do OurGrid [1] B 60 D 45 MyGrid A D ConsumerQuery (broadcast) * ProviderWorkRequest C ConsumerFavor ProviderFavorReport B * = no idle resources now * E Exemplo do OurGrid [2] B 60 D 45 A E 0 * ConsumerQuery D ProviderWorkRequest * MyGrid MyGrid C B E * = no idle resources now E o “Gerson”? • Epsilon is a fração dos recursos consumida por “Gersons” Equidade entre colaboradores MyGrid: o broker do OurGrid • Para fechar meu doutorado (em 2000), tive que rodar 600.000 simulações independentes • Dado que as simulações eram independentes, eu tinha a aplicação perfeita para o grid • Eu estava em um laboratório grid de ponta, mas não consegui usar o grid − Você precisa da negociação off-line para ter um grid Objetivos do MyGrid • MyGrid possibilita a um usuário de aplicações Bag-of-Tasks usar qualquer computador a que ele tem acesso para rodar suas aplicações • O grid de Zé são todas as máquinas a que Zé tem acesso − Não é necessário ter nenhuma infra-estrutura grid especial − Mas infra-estrutura grid pode ser usada (se estiver disponível) Arquitetura MyGrid Home Machine Scheduler Grid Machine Interface Globus Proxy Globus GRAM Grid Machine UA Proxy Grid Script ... User Agent Grid Machine ... Grid Machine Fatorando com MyGrid • init put Fat.class $PLAYPEN • grid1 java Fat 3 18655 34789789799 output-$TASK • collect • grid2 get $PLAYPEN/output-$TASK . java Fat 18655 37307 34789789799 output-$TASK Como escalonar no MyGrid? • Escalonamento tipicamente se baseia em informação sobre a plataforma (no caso, o grid) e sobre a aplicação (ex: tempo de execução da tarefa) • Todavia, depender de informação vai contra a idéia de usar qualquer recurso ao qual o usuário tenha acesso − A Grid Machine Interface teria que ser bem mais sofisticada, e portanto mais difícil de implementar • Além disso, pedir informação sobre a aplicação ao usuário tornaria o sistema mais difícil de usar Escalonando sem Informação • Work-queue with Replication − Tarefas são enviadas a processadores disponíveis − Quando não há mais tarefas a iniciar, tarefas são replicadas nos processadores disponíveis − A primeira replica a terminar é a “execução oficial” − As demais replicas são canceladas − É possível estabelecer um limite para replicação • Replicação evita ficar esperando por máquinas lentas/sobrecarregadas Work-queue with Replication • 8000 experimentos • Experimentos variaram em: − heterogeneidade do grid − heterogeneidade da aplicação − granularidade da aplicação • Sumário dos resultados: Average Std. Dev. Sufferage 13530.26 9556.55 DFPLTF 12901.78 9714.08 Workqueue 23066.99 32655.85 WQR 2x 12835.70 10739.50 WQR 3x 12123.66 9434.70 WQR 4x 11652.80 8603.06 Granularidade da Aplicação Overhead do WQR • • Obviamente, a desvantagem do WQR são os recursos desperdiçados pelas replicas canceladas Recursos desperdiçados: Average Std. Dev. WQR 2x 23.55% 22.29% WQR 3x 36.32% 34.79% WQR 4x 48.87% 48.93% Prova de Conceito • Durante um período de 40 dias, rodei 600,000 simulações usando 178 processadores espalhados por 6 sites nos EUA • As simulações executaram por 16,7 dias • Meu computador desktop teria levado 5,3 anos processando as simulações • Speed-up = 115.8 (com 178 processadores) MyGrid na Luta contra AIDS ? HIV-1 HIV-2 B,c,F O N M A B C D F G H J K prevalent in Africa prevalent in Europe and Americas majority in the world 18% in Brazil HIV protease + Ritonavir RMSD Subtype F Subtype B O MyGrid da luta contra AIDS • 55 máquinas em 6 sites no Brasil e EUA • Tarefa = 3.3 MB entrada, 1 MB saída, 4 a 33 minutos de execução dedicada • Rodou 60 tarefas em 38 minutos • Speed-up = 29.2 (com 55 máquinas) Segurança no OurGrid • Na comunidade OurGrid, um site roda código desconhecido que veio do grid • Claramente, isto é um (grande) risco de segurança − Pode afetar dados e recursos locais das máquinas − A máquina pode ser usada para atacar outras • Aproveitamos o fato de aplicações Bag-of-Tasks só precisarem se comunicar para receber a entrada e devolver a saída para rodar a aplicação do grid em um sandbox sem acesso a rede Uma segunda linha de defesa • Nós também rebootamos a máquina para adicionar uma segunda linha de defesa • Isto também tem a vantagem extra de possibilitar o uso de um SO diferente − Ou seja, mesmo que a máquina seja Windows, nós ainda podemos ter Linux • Retornar ao SO nativo é muito rápido graças a hibernação Arquitetura SWAN Native Application Grid Application reboot Host OS Grid OS Grid Middleware Guest OS OurGrid Status • A solução OurGrid é software de código aberto (licença GPL), disponível em www.ourgrid.org − Contando com colaborações externas do Inst. Eldorado, Inst. Atlântico, e UFRGS • OurGrid está na versão 3.0.2 − É a 9ª versão disponível − É a 3ª versão a disponibilizar a rede de favores − Aproximadamente 200 downloads − Grid aberto em produção desde de dezembro • SWAN está em testes finais − Com lançamento dia 30 de abril de 2005, na versão 3.1 status.ourgrid.org Projetos que usam OurGrid • Segurança Hídrica, liderado pela UFCG • Segurança Pública, liderado pela UniFor • BioPAUÁ, liderado pelo UniSinos • Mineração de dados, liderado pela UniSantos • Raciocínio Bayesiano, liderado pela USP • Uso do solo amazônico, liderado pela UNIR • Ruas de POA, liderado pela PUC-RS • HIV Brasileiro, liderado pela LNCC/UFRJ • Saúde em Recife, liderado pelo UFPE/CESAR Muito Obrigado! Mais em www.ourgrid.org © 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice