1
Projeto InteGrade:
Interfaces Ubíquas
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 CerqueiraDI – PUC-Rio
Edson Cáceres e Henrique MongelliDCT – UFMS
Projeto InteGrade: Interfaces Ubíquas
Eliminando Ociosidade
2
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
Motivação
3
Abordagem Tradicional
✵ Supercomputadores✵ Máquinas Paralelas de alto desempenho
✵ Mais recentemente:✵ Aglomerados de PCs (clusters) ✵ 8, 16, 64, ... 512 PCs conectados via Fast Ethernet
Abordagem Tradicional
4
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
Problemas
5
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.
Mais Desperdício
6
Baixíssima Taxa de 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.
Baixíssima Taxa de Utilização
7
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
Solução
8
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 :-)
Desafios de Pesquisa
9
Trabalhos Relacionados✵ Grades Computacionais:
✵ Globus✵ Legion
✵ Ênfase em aproveitamento de máquinas ociosas:✵ Condor / Condor-G✵ SETI@home✵ BOINC
Trabalhos Relacionados
10
Condor✵ Trabalho pioneiro do final dos anos 80:
✵ University of Wisconsin at Madison✵ Condor: a hunter of idle workstations
✵ Mais recentemente:✵ 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 :-(
Condor
11
SETI@home
✵ 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.
SETI@home
12
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.
Segurança
13
Funcionamento do 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.
Funcionamento do SETI@home
14
Limitações do 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%).
Limitações do SETI@home
15
BOINC
Berkeley Open Infrastructure for Network Computing
✵ 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
BOINCBerkeley Open Infrastructure for Network Computing
16
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.
InteGradePrincipais Inovações
17
InteGrade
Áreas de 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
InteGradeÁreas de Pesquisa
18
InteGrade
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
InteGradeArquitetura