Tópicos em redes e
sistemas distribuídos B
Carlos Oberdan Rolim
Ciência da Computação
Grid Computing
Motivação
Anos 70 -> mainframe: computação centralizada
Anos 80 -> descentralização, uso de redes locais criou Ilhas
computacionais nas instituições
Baixo nível de utilização: estações de trabalho passam maior tempo
ociosas
Distribuição desproporcional de carga de trabalho: alguns servidores
passam ocupados a maior parte do tempo enquanto outros não
Necessidade de alto poder de processamento atual e tende a aumentar
no futuro
Necessidade de ambiente dinâmico, auto-ajustável, com alta
disponibilidade, com escalável, TCO adequado
Motivação
Como cientistas podem fazer para trocar informações de forma
transparente entre instituições ?
Como proporcionar a demanda de recursos necessários pelas
aplicações ?
Como melhor aproveitar os recursos disponíveis?
Como integrar diferentes tipos de recursos = Ambiente
heterogêneo?
Como gerenciar a enorme quantidade de recursos existentes?
Motivação
Observações sobre clusters
a) limitação de número de nodos pelo sistema
b) escalabilidade do desempenho: aplicação precisa estar preparada
c) overhead das atividades de gerenciamento do próprio cluster: ganho
não linear – aproveitamento de somente 80% da capacidade do poder
de cada máquina envolvida
d) desempenho depende da característica da aplicação. Escrita em
excesso degrada performance
e) Flexibilidade de configuração: é permitido existir diferentes sistemas
operacionais ?
f) Diferentes protocolos podem ser usados ?
g) Sistema de arquivo: existe sistema de volume lógicos (virtuais) ?
h) Recursos de gerenciamento: pode-se gerenciar o cluster de forma
descentalizada ?
j) transparência: não obrigar usuário a alterar seus sistemas para tirar
proveito da solução
Passo evolutivo
Grid Computing !!!
Grid: um novo modelo computacional
É uma evolução da computação distribuída
Analogia a rede elétrica tradicional que fornece energia de forma
transparente e sob demanda
Tem como objetivo criar a ilusão de um e poderoso computador virtual
através da interconexão de vários sistemas heterogêneos que
compartilham recursos entre si
Tem como proposta ser uma infra-estrutura de computação que atende às
necessidades computacionais dos usuários abstraindo os detalhes de
como esse atendimento é realizado
Distribuição geográfica dos sistemas, exigindo recursos administrativos e
gerenciais que permitam autonomia entre os diversos sites
Sistemas heterogêneos
Altamente escalável
Ambiente completamente dinâmico. Adaptativo, ocorre a autoconfiguração
quando um nodo entra ou sai do ambiente
Foco das aplicações é o compartilhamento de recursos em grande
escala
Surge o conceito de Organizações virtuais
Organização virtual
Paradigma administrativo de redes virtuais
organizacionais
Rede é um tipo organização dinâmico e cooperativo
criada para explorar as oportunidades do mercado
Rede baseia-se em competências especializadas onde
cada membro contribui com conhecimento especifico
para melhora do todo
Mudança na hierarquia rígida das organizações
tradicionais. Hierarquia tende a desaparecer para haver
cooperação de múltiplos especialistas de diversas
áreas
Organização virtual
Propõe o uso compartilhado de recursos
pela organização
Capacidade de organização de diferentes
comunidades com diferentes propósitos e
diferentes políticas
Membros de uma organização podem
participar de outra organização
Virtualização de recursos: homogeneização
dos recursos usados pela organização
Organização virtual
Instituição 1
Instituição 2
Legenda
Organização
virtual
Recurso
compartilhado
Instituição 3
Estrutura de organização virtual
Definição de grid
“É um ambiente computacional distribuído paralelo que tem como
objetivo alcançar a interoperabilidade entre as organizações
virtuais, através da habilidade de cooperação, de compartilhamento
e agregação de recursos computacionais geograficamente
distribuídos de forma a disponibilizá-los como recursos e
serviços.”
Exemplo de uma grid simples dentro de uma organização
Exemplo de uma grid complexa interligando diferentes organizações
Estrutura de uma grid
Camada de aplicações
Portais de acesso e programas que exploram
a potencialidade das grids
Serviços orientados aos usuários
Ambiente de programação em grid
Middleware
Serviços básicos como gestão de recursos distribuidos
Elementos básicos
Recursos computacionais como servidores, desktops e
seus sistemas operacionais
Arquitetura da grid
Estrutura: é responsável diretamente
pelo compartilhamento e
gerenciamento de acesso aos recursos
da grade.
Conectividade: é responsável pela
definição dos protocolos que são
utilizados na comunicação entre os
recursos da grade
Recursos: é a camada responsável pelo
monitoramento e controle de
recursos. Serve como uma camada
intermediária entre as camadas
superiores e as mais baixas
Coletividade: proporciona mecanismos
para que aconteça o compartilhamento
e a alocação de recursos de forma
global dentro da grade. Esses
mecanismos estão relacionados
diretamente ao gerenciamento das
organizações virtuais existentes no
ambiente.
Aplicação: é a camada onde ficam as
aplicações que fazem o uso das
funcionalidades proporcionadas pela
grade computacional.
Comparação do modelo de camadas da
arquitetura de grades computacional em
relação à arquitetura Internet
O que a grid pode fazer ?
Compartilhamento de
processamento
Execução de tarefas
paralelamente
Tarefas são “quebradas” em
pequenas partes (jobs) e estas
então alocadas para execução
em diferentes computadores
No final o resultado de cada um
desses jobs é recuperado e
então o resultado final obtido
O que a grid pode fazer ?
Balanceamento de recursos:
a carga de execução das
tarefas é distribuída
igualmente entre as
máquinas componentes da
grid
Aproveitamento de recursos
não utilizados: as máquinas
que estão ociosas (por
exemplo, durante a
madrugada ou no horário do
almoço) podem ser
utilizadas para execução de
tarefas)
O que a grid pode fazer ?
Compartilhamento de disco
São criados “data grids” que são
vistos como grandes unidades de
armazenamento.
Os dados são gravados de forma
distribuída entre os diferentes
componentes da grid
Grid mantém controle sobre como
recuperar e gravar os dados
Usuário tem acesso aos dados de
forma transparente
O que a grid pode fazer ?
Confiança na execução de trabalhos
críticos
Tarefas críticas podem ser
executadas em mais de um local de
forma simultânea, caso algum dos
locais falhe ou o resultado não seja o
desejável o resultado do outro local é
utilizado
O que a grid pode fazer ?
Gerenciamento de grandes ambientes de
forma simplificada e centralizada: no
momento em que um equipamento é
conectado na grid ele passa a ser visto
como um nodo da rede. Suas
características são abstraídas
O gerente ou a aplicação preocupa-se em
acessar nodos e não equipamentos
específicos
Paralelo Grid x Cluster
Cluster
Grid
Solucionar problemas da organização =
Disponibilizar recursos e serviços de uma
Local
forma geograficamente distribuída
Gerenciamento por uma autoridade central
Cada organização virtual gerencia seus
recursos mantendo a visão única do
sistema
Voltado a performance e disponibilidade
Além disso prioridade para prestação de
serviços
Custo para a organização
Custo dissolvido entre as organizações
Devido a natureza das aplicações não
Permite latência devido as aplicações
permite latência na comunicação
paralelas possuírem pouca ou nenhuma
comunicação entre as tasks
Exemplos de uso de grid
Projeto SETI@Home: projeto pioneiro de uso de grade
computacional em grande escala e tem por finalidade a busca de vida
inteligente fora da terra. Url: http://setiathome.berkley.edu
Exemplos de uso de grid
ChessBrain: busca criar um supercomputador virtual capaz de jogar
xadrez utilizando a capacidade ociosa de milhares de máquinas.
Url: http://www.chessbrain.net
Exemplos de uso de grid
Climaprediction: através do uso da capacidade ociosa
de computadores busca fazer a simulação do sistema
climático para facilitar a maior compreensão dos
fenomemos envolvidos nas mudanças do clima
Url: http://www.climaprediction.net
Grid.org: concentra vários projetos filantrópicos que
fazem uso de grade computacional. Entre os projetos
está um relacionado a cura do câncer.
Url: http://www.grid.org/projects/cancer
Exemplos de uso de grid
Distributed.net: é formado por milhares de computadores distribuídos em todo o
mundo. Tem o poder computacional equivalente a mais de 160.000 computadores
pentium 266Mhz trabalhando 24 horas por dia. Entre os mais interessantes
resultados obtidos por esse projeto está a quebra de um algoritmo de criptografia
do laboratório RSA com chave de 56 bits considerado imune a quebras em 212
dias, a quebra da chave do DES-II-1 em 40 dias e também a quebra de
criptografia com chave de 64 bits em 1757 dias. Url: http://www.distributed.net
FightAIDS@Home: é um projeto que
visa efetuar simulações de novas drogas
contra a ADIS através da ociosidade de
computadores voluntários.
Url: http://www.fightaidsathome.org
Folding@home: projeto destinado ao
processamento de proteínas do corpo humano,
essa área é considerada chave nas pesquisas
da moderna biofísica molecular.
Url: http://www.stanford.edu/group/panedgroup/folding
Exemplos de uso de grid
Exemplos de grid de alto desempenho
Teragrid é um dos maiores projetos de grade. Foi criado pelo
laboratório de Argone e financiado pelo Departamento de Energia dos
Estados Unidos. Interliga 8 centros de computação de alto
desempenho. Sua capacidade é de mais de 20 trilhões de pontos
flutuantes por segundo. Isso equivale a 8 vezes a velocidade do mais
poderoso super-computador atual.
Url: http://www.teragrid.org
Eurogrid: projeto custeado por países da Comissão Européia. Visa
dar suporte a computação de alto desempenho a projetos como
BioGrid (pesquisas biomoleculares), MeteoGrid (pesquisas
meteorológicas), CAEGrid (projetos de engenharia baseados em
Computer Aided Engineering), HPC Research grid (projetos de
simulações físicas).
Url: http://www.eurogrid.org
Exemplos de uso de grid
Exemplos de grid de alto desempenho (continuação)
DataGrid: projeto europeu que visa proporcionar computação de
alto desempenho para pesquisadores europeus tanto acadêmicos
quanto da indústria.
Url: httpd://www.eu-datagrid.org
DOE Science grid: projeto criado pelo DOE dos EUA para projetos
de pesquisa relacionados com a área de energia.
Url: http://doesciencegrid.org
Nasa Information Power Grid: desenvolvido pela Nasa para auxiliar
no desenvolvimento de pesquisas e simulações espaciais.
Url: http://www.ipg.nasa.gov
Exemplos de uso de grid
Exemplos de uso de grid no Brasil
Grid Rio: projeto que envolve instituições acadêmicas do estado do Rio de
Janeiro
Url: (http://easygrid.ic.uff.br/grid/GridRio.html)
CBPF: projeto experimental para uso de grade computacional em simulações
físicas.
Url: http://www.cbpf.br
GRADE: projeto desenvolvido pelo Laboratório Nacional de Computação
Científica (LNCC). Tem por objetivo a construção de uma grade composta por
cluster distribuídos geograficamente.
Url: http://www.lncc.br
Grid-M: projeto para desenvolvimento de grid para dispositivos móveis e
embarcados UFSC
URL: http://grid.lrg.ufsc.br
Softwares para grid
Globus
Unicore
Legion
Condor
Gridbus