Gustavo Romano Humberto Gomes PPGC - PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO INSTITUTO DE INFORMÁTICA - UFRGS CMP PROGRAMAÇÃO PARALELA E DISTRIBUÍDA 2006/02 BOINC A System for Public-Resource Computing and Storage
Introdução Já faz algum tempo que o poder de computação mundial, assim como a capacidade de armazenamento de dados, não está mais apenas concentrada em grandes centros de supercomputadores. Mas sim, distribuída em centenas de milhões de computadores pessoais e consoles de video-games.
Public-Resource Computing Também conhecida como “Global Computing” ou Peer-to-peer computing. Consiste em usar os computadores pessoais e consoles de video game distribuídos pelo mundo para realizar super-computação cientifica. Middlewares disponíveis: Cosm, Jxta, XtremWeb, Entropia, United Devices e BOINC - Berkeley Open Infrastructure for Network Computing
Public-Resource Computing Iniciou em meados da década de 90 com os projetos GIMPS e Distributed.net foi lançado o projeto Roda em aproximadamente 1 milhão de computadores. Obtém uma taxa sustentada de processamento de aproximadamente 70 TeraFLOPs (em comparação, o NEC Earth Simulator, obtém 35 TeraFLOPs). Grande potencial de crescimento: 1 bilhão de PCs conectados à internet em 2015!
Grade x Public Resource Computing Grade Envolve recursos de organizações ( Super- computadores, clusters e PC de universidades) Gerenciamento centralizado por profissionais de TI. Sempre ligados e conectados através de redes de alta velocidade Cada organização prove e usa recursos da grade (relacionamento simétrico) Comportamento malicioso serão tratados fora do sistema.
Public-Resource Computing Envolve recursos de participantes individuais, geralmente PCs conectados à Internet; Participantes geralmente inexperientes em computação, participam por incentivos. Computadores são geralmente desligados ou desconectados da internet. Relacionamento Assimétrico entre projetos e participantes Comportamento malicioso tratados dentro do sistema. Grade x Public Resource Computing
Objetivos Reduzir a barreira para criação de projetos em public-resource computing: pesquisador com poucas habilidades em computação pode operar um projeto BOINC em uma semana e com apenas 1 hora por dia de manutenção; Compartilhar recursos entre projetos autônomos: compartilhar CPU e espaço de disco, por exemplo (mais de um projeto, melhor resultado global); Suportar diversas aplicações: mecanismos flexíveis e escaláveis para distribuição de dados e sistemas de escalonamento inteligentes que casam as necessidades com os recursos, C, C++,. Fortran rodam no BOINC com pouca adaptação; Recompensar os participantes (créditos);
Projetos Climateprediction.net CERN projects Estudo da UCB/Intel sobre recursos da internet
Requisitos de aplicações apelo público, para atrair participantes; paralelismo independente: devem poder ser divididas em partes paralelas com pouca ou nenhuma dependência de dados; baixa relação dados/computação: se o projeto consome mais de 1GB por dia de computação, melhor usar um cluster; deve ter um nível de tolerância a falhas;
Visão Geral Um projeto BOINC corresponde a uma ou mais aplicações distribuídas gerenciadas por uma organização; Projetos são independentes, possuem suas próprias aplicações e bancos de dados, o status de um não afeta o comportamento de outro; O servidor está centralizado em um banco de dados onde são armazenados descrições das aplicações, plataformas, versões, workunits, resultados, contas,.. Funciona através de web services. Prove ferramentas (Phyton e C++) para gerência do projeto. Desenhado para ser utilizado por cientistas (interface mais amigável). Cliente BOINC pode ser gráfico ou não.
Aplicação Computação e dados Versão da aplicação (diferentes plataformas) Workunit - descrição da computação a ser executada, possui atributos tais como: aplicação, arquivos de entrada, prioridade, recursos necessários; Resultados - instância de uma aplicação: não iniciada, em progresso, completada, associa arquivos de saída e atributos (tempo de cpu, etc.);
Aplicação
Computação redundante Prevenir participantes maliciosos, limitando o número total de resultados que um participante envia por dia; N resultados para definir o correto; Possibilita redundância homogênea (escalonador seleciona clientes com mesma CPU e sistema operacional) - aplicações com requisitos de precisão; Falhas e Retomadas De forma gradativa: se um cliente falha, ele buscará dados do servidor de acordo com o número de falhas anteriores
Aplicação Créditos e contas Valoriza a contribuição dos usuários, crédito é resultado de uma combinação entre processamento, armazenamento e transferência de dados; Organiza ranks relativos a outros usuários; Recursos para comunidade de usuários Permite grupos Permite criar perfis de usuários, incluindo texto e imagens Quadros de mensagens, incluindo FAQ dinâmicos; Suporte a grande numero de plataformas Plataforma Anônima (código fonte disponível e compilável) Escalonamento local O cliente BOINC decide a melhor forma de maximizar o uso dos recursos.
Conclusão Artigo Public-resource computing não é computação em grade BOINC é uma ferramenta fácil de utilizar (aparentemente) BOINC ainda tem algumas áreas incompletas replicação de dados; Gerenciamento do armazenamento de dados no cliente;
Conclusão Grupo artigo está bem escrito e explica de forma sucinta e clara os principais recursos do BOINC; o BOINC parece ser uma ferramenta bastante útil para criação de aplicações no modelo Public-Resource Computing e a experiência do grupo de Berkeley dá ao BOINC boas referências quanto à qualidade do trabalho;
Notas a) Motivação e estado-da-arte: 4; b) Problemas a resolver e Modelo: 4; c) Protótipo, Resultados e comparação com trabalhos relacionados: 4; d) Redação e formatação: 5;
Referências D. P. Anderson. “BOINC: A System for Public- Resource Computing and Storage. Procedings of the Fifth IEEE/ACM International Workshop on Grid Computing (GRID’04). (10/2006)