Projeto InteGrade: Projeto InteGrade: Interfaces Interfaces Ubíquas Ubíquas Eliminando Ociosidade Eliminando Ociosidade http://gsd.ime.usp.br/InteGrade Alfredo Goldman, Fabio Kon, Marcelo Finger e Siang W. Song DCC – IME/USP Markus Endler e Renato Cerqueira DI – PUC-Rio Edson Cáceres e Henrique Mongelli DCT – UFMS 1 Motivação Motivação ✵ Sociedade demanda a solução de problemas computacionalmente pesados: ✵ ✵ ✵ ✵ ✵ ✵ ✵ Previsão do Tempo Manipulação de Multimídia (vídeo, áudio, TV Interativa) Simulações de Tráfego de Veículos (CET) Análise de dados estatísticos (IBGE, Censo, etc.) Prospecção de Petróleo (Petrobrás) Simulações/Previsões no sistema financeiro Simulações Mercadológicas 2 Abordagem Tradicional Abordagem Tradicional ✵ ✵ Supercomputadores Máquinas Paralelas de alto desempenho ✵ Mais recentemente: ✵ ✵ Aglomerados de PCs (clusters) 8, 16, 64, ... 512 PCs conectados via Fast Ethernet 3 Problemas Problemas ✵ ✵ ✵ ✵ ✵ ✵ Aglomerados custam muito caro Em geral, passam a maior parte do tempo ociosos Ocupam muito espaço Fazem muito barulho, esquentam Desperdício de recursos ambientais Somos um país pobre, não podemos nos dar ao luxo de jogar recursos fora desta forma 4 Mais Desperdício Mais Desperdício ✵ ✵ Hoje, qualquer instituição pública ou privada possui dezenas (ou centenas, milhares...) de computadores ligados à Internet. Computadores de ✵ ✵ ✵ Empresas: secretárias, pessoal administrativo, diretores, quiosques Universidades: professores, funcionários, laboratórios de pesquisas, laboratórios de alunos Residências, LAN houses etc. 5 Baixíssima Taxa Taxa dedeUtilização Baixíssima Utilização ✵ Exemplos: ✵ ✵ ✵ Computador da secretária que usa editor de textos IME/USP: 200 computadores em laboratórios + 100 computadores de professores... Estimativa grosseira: ✵ Em um instante qualquer, aproveitamos menos de 1% da capacidade computacional instalada no mundo. 6 Solução ✵ ✵ ✵ Criação de uma infra-estrutura de software (middleware) para interligar estes computadores em uma grande Grade Computacional (Computational Grid). Grade = interligação de aglomerados Projeto InteGrade (USP/PUC-Rio/UFMS): ✵ ✵ ✵ Estamos apenas começando Já temos três bolsistas + dois alunos não bolsistas Obtivemos financiamento do CNPq 7 Desafios de Pesquisa Desafios de Pesquisa ✵ ✵ ✵ Não podemos atrapalhar os usuários tradicionais dos PCs que integram a Grade Como detectar quando uma máquina se torna livre? (encontrar padrões de utilização) Segurança ✵ ✵ ✵ ✵ dos computadores que fazer parte da Grade dos dados manipulados pelos programas que executamos Como descobrir dinamicamente onde estão os recursos computacionais de que preciso? Como cobrar pelo serviço? $$$ ou escambo :-) 8 Trabalhos Trabalhos Relacionados Relacionados ✵ Grades Computacionais: ✵ ✵ ✵ Globus Legion Ênfase em aproveitamento de máquinas ociosas: ✵ ✵ ✵ Condor / Condor-G SETI@home BOINC 9 Condor Condor ✵ Trabalho pioneiro do final dos anos 80: ✵ ✵ ✵ Mais recentemente: ✵ ✵ University of Wisconsin at Madison Condor: a hunter of idle workstations Condor-G permite acesso a grades Globus Código-fonte e executáveis não disponíveis (???) ✵ Tentei obtê-lo várias vezes sem sucesso :-( 10 SETI@hom SETI@home e ✵ ✵ ✵ ✵ University of California at Berkeley Search for Extraterrestrial Intelligence at home Protetor de tela baixado, instalado e executado voluntariamente por milhões de usuários. A aplicação que mais recebeu tempo de processador da história da computação: ✵ ✵ 2001: vazão de 27.4 TFLOPS; 1.87x1021 operações cliente: 6.423 linhas de C++ transportado para 175 plataformas diferentes. 11 Segurança Segurança ✵ ✵ O SETI@home foi feito de forma a evitar problemas de segurança. Mesmo assim, alguns problemas marginais ocorreram: ✵ ✵ hackers invadiram e roubaram emails dos voluntários foi criado um vírus de email p/ Windows que instala o SETI@home na máquina e credita as horas de processador para o criador do vírus. 12 Funcionamento do Funcionamento do SETI@home SETI@home ✵ ✵ ✵ ✵ ✵ Fitas com 35GB de dados são transportadas do observatório Arecibo para UCB. Servidor divide dados em unidades de 350KB e distribui para clientes via HTTP. Uma unidade é suficiente para manter clientes ocupados por cerca de 1 dia. Cada unidade é enviada para 2 ou 3 clientes para verificação de consistência. Resposta em geral tem apenas 1KB. 13 Limitações do Limitações do SETI@home SETI@home ✵ ✵ ✵ ✵ ✵ So é capaz de resolver um único problema. Não é possivel atualizar o código sem intervenção manual nas máquinas dos voluntários. Os clientes decidem quando o protetor de tela vai entrar; o servidor central nunca toma iniciativas. Topologia em estrela; não há comunicacao entre os vários nós distribuídos Não é capaz de aproveitar processadores quando usuários estão ativos (mesmo que a utilização seja menor que 5%). 14 BOINC BOINC Berkeley Open Open Infrastructure Infrastructure for for Network Network Computing Computing Berkeley ✵ ✵ ✵ ✵ ✵ Novo projeto de Berkeley que tenta eliminar algumas das limitações do SETI@home. Projeto de código aberto: boinc.sourceforge.net Infra-estrutura genérica que permite a execução de qualquer algoritmo em um ambiente similar ao SETI. Ainda está em um estágio inicial de desenvolvimento. Ainda mantém algumas das limitações do SETI: ✵ ✵ topologia em estrela, outras ? mas é um projeto aberto: deficiências podem ser sanadas 15 InteGrade InteGrade Principais Inovações ✵ Código carregável dinamicamente: ✵ ✵ ✵ ✵ ✵ permite executar diferentes algoritmos permite atualização do próprio middleware Comunicação entre os clientes. O servidor mantém informações dinâmicas sobre os recursos disponíveis no passado, no presente e no futuro. Aproveitamento de recursos semi-ociosos. 16 InteGrade Áreas de de Pesquisa Pesquisa ✵ ✵ ✵ ✵ Arquitetura geral do sistema (CORBA) Segurança Monitoração de recursos (processador, memória, disco, rede, hardware específico etc.) Identificação de padrões de uso e ociosidade ✵ ✵ ✵ entender o passado para prever o futuro Execução de diferentes classes de algoritmos paralelos Integração com sistemas ubíquos 17 InteGrade InteGrade Arquitetura Arquitetura ✵ ✵ ✵ ✵ ✵ ✵ LRM - Local Resource Manager GRM - Global Resource Manager LUPA - Local User Pattern Analyzer GUPA - Global User Pattern Analyzer NCC - Node Control Center ASCT - Application Submission and Control Tool 18 Dentro de um Dentro de um Aglomerado Aglomerado 19 Grade Global Grade Global 20 Concluindo Concluindo ✵ ✵ ✵ Estamos criando repositório CVS acessível publicamente. Primeira versão prevista para 1o semestre de 2003. Maiores informações: http://gsd.ime.usp.br/InteGrade 21