Sie sind auf Seite 1von 17

Sistema de Processamento Distribudo

Gustavo Diniz dos Santos

Sistema de Processamento Distribudo


Objetivos da Apresentao: - Demonstrar o conceito de Processamento Distribudo e Sistemas distribuidos. - Demonstrar Exemplos de programao Distribuda utilizando tecnologias livres. - Demonstrar como possvel aumentar a capacidade de processamento agrupando mais de uma maquina para executar uma ou mais tarefas (Cluster). - Demonstrar alguns projetos de pesquisas cientificas que utilizam recursos de computao distribuda.

Computao Distribuda
Um sistema de computao distribuda ou paralela um sistema que interliga vrios ns de processamento (computadores individuais, no necessariamente homogneos) de maneira que um processo de grande consumo seja executado no n "mais disponvel", ou mesmo subdividido por vrios ns. Conseguindo-se, portanto, ganhos bvios nestas solues: uma tarefa qualquer, se divisvel em vrias subtarefas pode ser realizada em paralelo. A nomenclatura geralmente utilizada neste contexto HPC (High Performance Computing) e/ou DPC (Distributed/Parallel Computing).

Sistema de Processamento Distribudo


Antes de avanar, ser necessrio distinguir um sistema de multiprocessamento paralelo (SMP) de um sistema distribudo. Para um sistema ser de processamento distribudo, uma ou vrias unidades de processamento (CPU) estar separada fisicamente da(s) outra(s), enquanto que num sistema SMP todas as unidades de processamento se encontram na mesma mquina. Ambos sistemas so capazes de processamento paralelo, e qualquer um deles pode ser visto como elemento de um sistema distribudo!

Processamento Distribudo
Com os desenvolvimentos nesta rea, surgiram solues por software que fazem, geralmente (mas no necessariamente), alteraes no ncleo do sistema operativo e que, na maioria dos casos, no so compatveis entre elas, e dificilmente entre verses diferentes da mesma soluo. Assentam, no entanto, em arquitecturas de comunicao padro, como o caso da Parallel Virtual Machine e Message Passing Interface. Resumidamente, estas arquitecturas conseguem transportar um processo (tarefa) e o seu contexto (ficheiros abertos, etc.) pela rede at outro n. O n que originou o processo passa, assim, a ser apenas um receptor dos resultados desse processo.

A Figura acima ilustra as vrias camadas de interoperabilidade de um sistema distribudo. Atravs do gateway a rede pblica tem acesso a um supercomputador, sem ter conhecimento disso, dado que s conhece o gateway. Qualquer aplicao executada no gateway (que esta preparada para ser paralelizada) e que pode ser distribuda por vrios ns, entregando os resultados mais rpido do que se fosse processada por apenas um n.

Processamento Distribudo
PROGRAMAO DISTRIBUIDA Imagine a situao onde temos um micro principal capaz de fazer contas com uma velocidade espantosa e nosso software que esta instalado em muitos pontos de venda pelo pas, deseja utilizar esse computador central para realizar contas complicadas. Outra situao comum existir um repositrio central de dados, que realiza a pesquisa no nosso estoque de livros, para saber a disponibilidade desses, como acessar essa informao sem expor o banco de dados ?

Como executar tal tarefa ? Como disponibilizar esse servio ?

Processamento Distribudo
PROGRAMAO DISTRIBUIDA No exemplo a seguir , vamos ilustrar uma aplicao de compra de livros , onde o processamento sera realizado no lado servidor, e em seguida devolvida a resposta ao cliente.

Processamento Distribudo
CLUSTER Depois de algum tempo que a aplicao esta rodando, o nmero de usurios pode crescer consideravelmente, necessitando uma melhoria de hardware, Na maioria das vezes essa melhoria resolvera o problema, porm quando nem mesmo essa abordagem melhora a performance, uma alternativa aumentar a quantidade de maquina que rodam a aplicao.

Processamento Distribudo
CLUSTER Os principais pontos que devemos considerar para esta implementao : -Compartilhamento de estados dos objetos. -Cache unificado entre as maquinas. -Qual maquina atendera cada cliente. -Comunicao entre as maquinas (fisica e logica)

Processamento Distribudo
CLUSTER Clusters so muito comuns em empresas que precisam de um processamento colossal, como por exemplo NASA, Google, entre outras. Porm no apenas nas empresas gigantes que encontramos cluster, empresas de mdio porte podem usar cluster para aumentar no s o processamento mas tambm a disponibilidade de um servio.

Processamento Distribudo
CLUSTER Farming Deploy: Aumenta a disponibilidade da aplicao. Os clientes podem acessar a aplicao chamando qualquer n do cluster. Inclusive, se um dos ns cair, os clientes podem continuar acessando a aplicao pois essa esta replicada nos ns do cluster. Isso denominado redundncia.

Processamento Distribudo
CLUSTER Load-Balancing: Eventualmente, a infra-estrutura do cluster pode permitir que alguns ns do cluster possam ficar sobrecarregados enquanto outros ficam ociosos, h diversas estratgias para diminuir a probabilidade disso ocorrer, essas estratgias so denominadas politicas de balanceamento de carga. Algumas mais conhecidas so: First Available seleciona o primeiro n disponvel do cluster. First Available Identical All Proxies seleciona o primeiro n disponivel no cluster e envia todas as requisioes deste cliente para esse n. Round Robin coloca os ns do cluster em uma fila e quando chega uma requisio ao cluster, o primeiro da fila selecionado e depois de responder ele vai para o fim da fila. Random Robim escolhe aleatoriamente um n

Processamento Distribudo

Processamento Distribudo
Projetos de computao distribuda Existem alguns projetos utilizados em departamentos cientificos e governamentais que visam utilizar implementao de computao voluntaria, funcionando atravs de uma grade computacional de dimenses mundiais, atravs de computao distribuda .

Um exemplo de computao distribuda o software cliente do BOINC , A plataforma do programa aberta, sendo desenvolvida gratuitamente sob a GNU Lesser Public License (licena pblica Lesser GNU). Atualmente o BOINC desenvolvido por uma equipe da Universidade da Califrnia, Berkeley, liderado por David Anderson, diretor do projeto SETI@home. ele altamente customizvel e permite que voc escolha quais projetos vai ajudar e defina quanto do processamento do seu computador ser destinado a cada projeto. Exemplos de projetos que ele abrange: Climateprediction: estudo de alteraes climatricas Einstein@home: procura de sinais gravitacionais provenientes de pulsares LHC@HOME: melhorar o design do acelerador de partculas CERN LHC Predictor@home: investigar doenas relacionadas com proteina Seti@home: procurar por evidencias de vida extraterrestre via rdio

Das könnte Ihnen auch gefallen