1. 1 2
REDES DE COMPUTADORES
Introdu ção a Computação Distribuída
Computação Paralela
UNIVERSIDADE PARANAENSE – UNIPAR
Reconhecida pela Portaria - MEC N.º 1580, de 09/11/93 – D.O.U. 10/11/93
Mantenedora: Associação Paranaense de Ensino e Cultura – APEC Nas ultimas décadas a taxa de crescimento do poder de processamento de computadores e
os tradicionais supercomputadores tem sido algo em torno de 20% ao ano, enquanto que a
taxa de crescimento do poder de processamento de microprocessadores tem sido algo em
torno de 40% ao ano.
Tópicos Especiais em Sistemas de Informação As melhorias na arquitetura servem para diminuir o esforço necessário para processar
Sistemas de Informação - 4.o / 2005 uma instrução por ciclo de máquina, enquanto que avanços tecnológicos tendem a reduzir
o tempo necessário por ciclo de instrução.
Prof. LuizArthur Feitosa dos Santos Mas existe a necessidade de sistemas computacionais melhores, e essa evolução pode ser
conseguida através do uso de redes de interconexão modernas que facilite interligar
diversos computadores através de um barramentoexterno de alta velocidade.
A computação paralela surgiu para tentar resolver uma das maiores restrições
computacionais que é o processamento das informações de forma seqüencial.
1 2
e-mail: luiz_arthur@unipar.br
3 4
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Porém a tecnologia empregada na construção de processadores é limitada
A constante demanda de poder computacional vem gerando a necessidade de e apesar de ter evoluído rapidamente, até hoje ela ainda leva um tempo considerável para
processadores cada vez mais r pidos para viabilizar aplicações com elevada taxa de
á apresentar ganhos substanciais, no tocante ao tempo de execução do programa.
computação e diminuir o tempo de resposta desejado pelos usuários.
(“...a velocidade de operação dos circuitos eletrônicos não pode
Existem alguns problemas a serem resolvidos que requerem um grande poder de continuar a melhorar indefinidamente. ”, TANENBAUM 2001)
processamento de dados, por exemplo, simulações numéricas em sistemas complexos
como clima, computação gráfica, aplicações aerodinâmicas, programas de exploração Então, apesar dos arquitetos de hardware estarem se empenhando para produzir
sísmica, engenharia genética, entre inúmeras outras aplicações. processadores cada vez mais velozes, processando desta forma um maior número de
instruções por segundo, essa evolução um dia pode esbarrar em alguns limites físicos,
O modelo de execução seqüencial foi proposto nos primórdios da computação, seu como por exemplo, a velocidade da luz.
precursor foi John von Neumann. Um computador seqüencial é formado basicamente
pelos seguintes elementos de hardware: um único processador, memória e dispositivos de Talvez a melhor solução será projetar uma arquitetura com dois processadores,
entrada e saída. trabalhando à velocidade da luz e processando o programa de forma paralela, tendo assim
um sistema, que teoricamente executaria as instruções em uma velocidade equivalente a
Um programa desenvolvido para esta arquitetura também é planejado para ser executado duas vezes à velocidade da luz.
de forma seqüencial, e é totalmente dependente do n úmero de instruções que o
processador pode executar em seqüência, quanto mais instruções puderem ser executadas É justamente esta a proposta da computação paralela, ter um sistema trabalhando com
em um determinado período de tempo (segundos, por exemplo) melhor é o processador. milhares de processadores executando uma mesma tarefa.
3 4
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
2. 5 6
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Apesar da computação paralela apresentar alguns aspectos desfavoráveis, ela provê
Mas isso não é bem verdade, pois sistemas paralelos de uma forma ou de outra sofrem inúmeros benefícios, e vem evoluindo a cada ano, tornando-se motivo de estudo de
influência de outros fatores que não o do processador, tais como: inúmeros pesquisadores e tem apresentado bons resultados.
Mudar a programação do modelo seqüencial para a programação paralela é muito E o modelo seqüencial com apenas um único processador, sempre fica limitado às
difícil, pois já existe toda uma cultura criada quanto à maneira seqüencial de projetar restrições tecnológicas de cada época, ou seja, os programas só obterão uma performance
programas. Além disso, existem trechos de códigos para resolução de alguns problemas melhor, no tocante ao tempo de execução, se os engenheiros da computação projetarem
que são intrinsecamente seqüenciais não podendo ser paralelizados; um processador mais rápido que o seu antecessor.
Outro fator diz respeito à comunicação entre os processadores para a divisão de tarefas, Em geral os processadores têm melhorado sua performance em mais de 50% ao ano, mas
esse problema gera um outro gargalo que não o do processamento, que é o do tempo gasto um dia essa evolução pode encontrar algum limite físico, o que se tornará um empecilho
para enviar um dado a ser processado em um determinado processador. Os esforços para cientistas que necessitam criar programas que utilizam um c onjunto de dados
tecnológicos para melhorar as redes de interconexão e minimizar essa restrição física são gigantesco e necessitam de computadores que possam processar esta massa de dados a
tão grandes quanto o de se construir processadores seqüenciais mais rápidos. uma velocidade cada vez mais rápida e não podem ficar limitados a esse obstáculo.
Mais um problema a ser enfrentado é a concorrência entre os processadores para Neste contexto, a computação paralela é uma alternativa viável com potencial para
acessar a memória compartilhada. Qual processador teria direito à escrita e à leitura em superar esse obstáculo da computação seqüencial. Mas o que é computação paralela? A
um determinado trecho na memória. Existem outros inúmeros fatores que influenciam a definição clássica dada por é : “Um computador paralelo é um conjunto de elementos de
computação paralela e serão abordados no decorrer do trabalho. processamento que se comunicam e cooperam para resolver rapidamente grandes
5 problemas”. 6
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
7 8
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
PROCESSAMENTO SEQ ÜENCIAL
O modelo de processamento seqüencial, bem como o computador, teve dentre seus Entretanto, mesmo as arquiteturas seqüenciais utilizam algum tipo de paralelismo interno
criadores Blaise Pascal, Charles Babbage e John von Neumann (cada um em sua época). ao processador ou aos dispositivos que compõem a arquitetura para conseguirem
John von Neumann apresentou um modelo elementar de execução seqüencial, composto melhores desempenhos.
basicamente por memória, unidade aritmética lógica, unidade de controle e os dispositivos
de entrada/saída Um dos primeiros benefícios que os sistemas paralelos trouxeram aos modelos
Memória
Dispositivo
seqüenciais foi provavelmente o advento do uso do pipeline, que permite a execução
Unidade deentrada sobreposta de várias instruções de forma simultânea.
Aritm ética
lógica Dispositivo
Unidadede Outra melhoria que os modelos seqüenciais já experimentaram é denominada de
de sa ída
controle
arquitetura superescalar, que permite executar alguns códigos (trechos dos programas) em
Acumulador
paralelo, esses códigos são extraídos do paralelismo implícito no programa seqüencial,
possibilitando desta forma que instruções sejam executadas em uma ordem diferente
Em computadores estritamente seqüenciais, as instruções que compõem um programa daquela do programa original, além de fazer um melhor uso de unidades funcionais
são executadas de forma seqüencial (conforme foram definidas pelo programador) pelo através do pipeline.
processador. Este modelo proposto serve até hoje como base para a resolução de
problemas através de algoritmos seqüenciais e, também, é utilizado como modelo para a
Porém, esses níveis de paralelismo são considerados de baixo nível e não são tratados
construção de computadores. pelos programadores.
7 8
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
3. 9 10
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
O avanço dos dispositivos foi acontecendo de forma gradual até os anos 80, com o vComo as memórias também eram lentas e criavam um gargalo, surgiram técnicas como
surgimento dos circuitos integrados de larga escala de integração, os chips VLSI (Very o uso da memória cache;
Large Scale Integration).
vO aparecimento dos pipelines ou vias internas do microprocessador, que paralelizam a
Historicamente a utilização de paralelismo começou pelo hardware. execução de instruções e operações aritméticas de uma forma implícita;
O aumento da velocidade do hardware, por mais rápida que possa ser sempre esbarra no vNo período de 1953 a 1970, o paralelismo existente era transparente ao usu ário,
limite tecnológico de cada época. Dessa forma, desde o inicio do desenvolvimento dos influenciando apenas na melhoria do desempenho da m áquina, sendo denominado
computadores percebeu-se que a utilização de paralelismo é essencial. paralelismo de baixo nível;
A paralelização proporcionou grandes mudanças nas arquiteturas que evoluíram ao longo vEm 1975 o Illiac, com 64 processadores, a primeira forma em que o paralelismo
dos anos com o surgimento de diversas características nas máquinas, tais como: diferencia do paralelismo de baixo nível;
vO aparecimento do conceito de palavra (word), leva à manipulação de vários bits em vO surgimento da filosofia VLSI para projetos de microcomputadores, oferece maior
paralelo, ao invés da unidade básica (byte); facilidade e menor custo no desenvolvimento de microcomputadores cada vez mais
complexos e menores;
vOs processadores de entrada e saída possibilitaram o paralelismo entre os periféricos e o
processador principal, tornando as tarefas de E/S mais independentes; vA partir dessa época surgiram dois caminhos distintos: Arquiteturas paralelas e sistemas
distribuídos ou baseados em redes e as máquinas vetoriais;
9 10
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
11 12
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Michael Flynn (GUTZMANN, 1996) em 1966 classificou os inúmeros modelos de
arquitetura computacional de acordo o número de instruções executadas e o número de Arquitetura MISD - Multiple Instruction, Single Data: conjunto único de instruções,
conjuntos de dados tratados, essa caracterização produziu quatro classes de computadores, múltiplos conjuntos de dados. Seriam computadores que executam várias instruções ao
que são: mesmo tempo sobre um único dado. Não existe nenhuma máquina implementada neste
modelo, e até mesmo Flynn duvidou que algum dia isso pudesse existir.
Arquitetura SISD - Single Instruction, Single Data: conjunto único de instruções,
conjunto único de dados. É a identificação mais simples, em que a máquina é considerada
seqüencial, pois só processa uma única instrução sobre um único dado por vez. É o
modelo de von Neumann apresentado na seção 2.1, sem qualquer nível de paralelismo. C P M
Instruções
Dados
C P M
C P M
C P M
11 12
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
4. 13 14
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
ArquiteturaSIMD – Single Instruction, Multiple Data: conjunto único de instruções, Arquitetura MIMD – Multiple Instruction, Multiple Data: múltiplos conjuntos de
múltiplos conjuntos de dados. É o equivalente ao paralelismo de dados, uma instrução é instruções, múltiplos conjuntos de dados. Este modelo é o que faz a melhor referência à
executada paralelamente utilizando vários dados (processadores vetoriais, matriciais e os computação paralela propriamente dita, pois refere-se ao modelo de execução paralela, no
processadores mais recentes se enquadram nesta categoria). qual cada processador está essencialmente agindo independentemente, havendo, portanto
realmente múltiplos fluxos de instruções e múltiplos dados).
P M M
C P
C P M C P M
P M C P M
13 14
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
15 16
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Além da classificação de Flynn é possível similarmente dividir os computadores em A categoria MIMD foi dividida em:
outras sub-categorias: •multi-processadores (máquinas com memória compartilhada);
•multicomputadores (máquinas com memória distribuída).
Arquiteturadem áquinas
paralelas
Multiprocessadores com memória compartilhada
SISD SIMD MISD MIMD Um multiprocessador é um sistema computacional que tem vários processadores e um
único espaço de endereçamento visível a todos esses processadores.
Processador Processador Multiprocessa Multicomputa
vetorial matricial dores dores
A comunicação entre a memória comum e processador é feito através de instruções load e
store que dão acesso aos endereços da memória, neste modelo surge à necessidade de se
UMA COMA NUMA MPP COW coordenar os acessos ao meio comum, gerenciando quem pode ler e escrever em um
determinado endereço comum da memória, a esta coordenação de acessos à memória se
Barramento Comutador CC - NC- Grade Hipercu dá o nome de sincronização.
NUMA NUMA bo
Memó ria Compartilhada Troca de Mensagens Este modelo também é denominado de “fortemente acoplado”
Taxonomia para máquinasparalelas
15 16
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
5. 17 18
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Multiprocessadores com memória compartilhada A principal vantagem das arquiteturas de memória compartilhada será o
compartilhamento de dados entre os processos torna-se muito rápido.
E como desvantagens classificam-se:
PROCESSADOR 1 ØSão computadores extremamente caros;
ØExiste uma limitação física para a quantidade de processadores;
ØSão necessárias t écnicas de sincronização para a leitura e gravação de dados;
PROCESSADOR 2
BARRAMENTO M E MÓ RIA As arquiteturas de memória compartilhada podem ainda ser divididas em dois esquemas
distintos que são:
...
•Multiprocessadores UMA ou SMP (Symmetric MultiProcessor) todos os
PROCESSADOR N processadores consomem o mesmo tempo para acessar a memória compartilhada;
•Multiprocessadores NUMA no qual alguns acessos à memória são mais rápidos que
DISPOSITIVOS
E/S outros.
17 18
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
19 20
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Multicomputadores com memória distribuída
No esquema memória distribuída os processadores trocam mensagens uns com os outros,
Uma outra implementação da arquitetura MIMD, são os multiprocessadores com memória usando a rede de interconexão.
distribuída, é aquela na qual cada processador tem sua própria memória, acessível
somente pelo proprietário e nunca diretamente por qualquer outro processador do sistema. A falta de memória compartilhada de um sistema multicomputador tem implicações
O sistema multiprocessador de memória distribuída também e conhecida como importantes na estrutura do software dessas máquinas. Em um sistema de memória
multicomputador. distribuída ou multicomputador, a comunicação entre processos normalmente usa as
PROCESSADOR 1 primitivas SEND e RECEIVE, implementadas por software.
M E MÓ RIA
Isso faz com que os programas para essas máquinas adquiram uma estrutura diferente e
mais complexa do que a estrutura dos programas que funcionam em sistemas
PROCESSADOR 2
BARRAMENTO multiprocessadores, isso significa que o programador e responsável pelo bom uso dos
DISPOSITIVOS recursos computacionais, ficando a cargo do desenvolvedor definir que processadores e
M E MÓ RIA E/S
quais processos serão executados em determinados momentos
...
PROCESSADOR N
M E MÓ RIA 19 20
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
6. 21 22
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
As desvantagens da memória distribuída são basicamente duas: Com isso podemos montar nossa estrutura de máquinas, MIMD segundo
compartilhamento de memória.
üA programação é mais complicada e o paralelismo não é tão intuitivo. Isto porque
existe a necessidade de tarefas enviarem mensagens de forma explicita a outras que
estão em execução em algum outro processador, e também de forma explicita, uma UMA
tarefa precisa receber esta mensagem; Multiprocessadores (Memória central)
(espaço de endereç amento único)
üSe exigir muita comunicação, o desempenho acaba sendo comprometido pelo alto CC-NUMA
custo envolvido na troca de mensagens. NUMA
MIMD (Memória distribuída)
COMA
Multicomputadores
(Múltiplos espaços de endereçamento)
NORMA
21 22
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
23 24
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Processadores Paralelos Massivos (MPP) Multiprocessadores Simétricos (SMP)
Um sistema MPP é um grande sistema de processamento paralelo com arquitetura de Os sistemas de processamento simétrico possuem de 2 a 64 processadores, e são
memória compartilhada e centralizada. considerados uma arquitetura de memória compartilhada (multiprocessador).
Cada processador tem acesso a toda a memória do sistema através de um barramento ou
Ele é composto por algumas centenas de elementos processadores, interconectados por de uma rede de comunicação dedicada.
uma rede de alta velocidade. O modelo ideal para uma memória compartilhada por v ários processadores seria um
tempo de acesso baixo, num s ciclo de relógio e com largura de banda infinita. Na
ó
Cada nó pode possuir uma memória principal e um ou mais processadores. Alguns nós
verdade, os tempos de aceso não são desprezíveis, crescem com o tamanho do sistema, a
podem possuir periféricos como discos ou um sistema de backup.
largura de banda é limitada.
Esta arquitetura é limitada ao nível de processadores devido ao problema clássico de
saturação do barramento e coerência na memória cache.
Também, qualquer processo ou processador pode ler e escrever qualquer palavra na
memória compartilhada simplesmente movendo os dados para o local determinado.
A sincronização entre as tarefas é feita por leitura/escrita na memória compartilhada, a
comunicação entre tarefas é rápida, a escalabilidade é limitada pelo número de caminhos
entre a memória e os processadores, podendo saturar o barramento de comunicação. 24
23
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
7. 25 26
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
As interligações entre computadores SMP se enquadram em três categorias principais: Non Uniform Memory Access (NUMA)
vA memória é distribuída, implementada com vários módulos que são associadas a cada
Uniform Memory Access (UMA) processador.
vÉ uma arquitetura fortemente acoplada, normalmente utilizada em multiprocessadores
de pequena dimensão, devido ao aumento to tempo de acesso à medida que o sistema vO espaço de endere çamento é único, e cada processador pode acessar toda a memória
cresce. do sistema.
vO desenvolvimento de aplicações é simplificado, pois não existe a preocupação com a vCom isso um maior número de processadores pode ser interligado, mas o projeto tende
localidade da informação. a ser mais complexo devido a protocolos altamente sofisticado para coerência em cache e
o desempenho dos algoritmos depende exclusivamente da localização dos dados.
vContudo, o congestionamento das interligações é um fator que limita a largura de banda
que pode ser amenizada com o uso de cache nos processadores. Existem algoritmos Espaço de endereçamento único
eficiente em hardware para coerência de cache nesta arquitetura.
M M M M M M
P P P P P P
P P P P P P
Rede de Interconexão
Rede de Interconexão
Memória 25 26
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
27 28
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
CC-NUMA (Cache-Coherent Non Uniform Memory Access)
Cache-Only Memory Architecture (COMA)
É um tipo especial de NUMA, onde as memórias globais distribuídas são substituídas por É um sistema de multiprocessadores escaláveis que possui uma arquitetura de coerência
caches não existe uma hierarquia de memória em cada processador. de cache com acesso não uniforme.
Todas as cachês formam um espaço de endereçamento global. Um sofisticado mecanismo Nestas arquiteturas a memória é dividida em tantos blocos quanto forem os processadores
de coerência de cache em hardware se faz necessário, o que justifica o alto preço desta do sistema e cada bloco de memória é conectado via barramento a um processador com
tecnologia. memória local.
Uma variação desta arquitetura utiliza o recurso de memória virtual compartilhada. O acesso aos dados que estão na memória local é muito mais rápido que o acesso aos
dados em blocos de memória remotos.
Apesar do uso de memória compartilhada as arquiteturas NUMA mais modernas
oferecem bibliotecas para programação utilizando trocas de mensagens. Cada nó
P P P P P P processador possui uma cache local para reduzir o trafego na rede de interconexão. O
balanceamento de carga é realizado dinamicamente pelos protocolos de coerência das
C C C C C C caches. No caso de arquiteturas com paralelismo no nível de threads apenas sistemas com
memória compartilhada foram construídos ou propostos.
Rede de Interconexão
No CS (Software-Coherent) a coerência de cache é feita em software e podemos incluir os
27 28
e-mail: luiz_arthur@unipar.br recursos de memória compartilhada distribuída nesta filosofia. e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
8. 29 30
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Programação em Multiprocessadores NORMA (No Remote Memory Access)
Existem varias técnicas para programar os multiprocessadores, para realizar comunicação, É um modelo de memória para os multicomputadores com arquitetura fracamente
um processo é necessário apenas escreve dados na memória global para ser lido por todos acoplada.
os outros.
Neste modelo, não existe um espaço de endereçamento global, cada processador tem sua
Para sincronização, seções criticas podem ser utilizadas, o que evitam condições de memória local e a troca de dados é realizada através de passagem de mensagens e os
concorrência, isso se da através do emprego de técnicas como semáforos ou monitores processadores são conectados por uma rede de alto desempenho.
para garantir a exclusão mutua.
No entanto, o desenvolvimento de sistemas de memória compartilhada distribuída (DSM)
O desenvolvimento de aplicações paralelas neste modelo pode ser feito tendo como base a pode gradualmente ir substituindo este modelo.
biblioteca OpenMP. A API disponibilizada estende as linguagens de programação
seqüenciais (C/C++/Fotran) acrescentando-lhes estruturas SPMD, isto é estruturas que É atualmente a arquitetura mais usada tanto para máquinas paralelas e genéricas, quanto
simplificam o compartilhamento de dados entre processos cooperativos. Possui ainda para redes de computadores.
primitivas de sincronização, de compartilhamento e privatização dos dados, gerando
assim todo o ambiente necessário para facilitar a vida dos programadores. Os sistemas MIMD são m áquinas assíncronas. Surge daí a necessidade de seus múltiplos
processadores se comunicarem para que possam coordenar e se comportar como unidade
coerente.
29 30
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
31 32
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Sistemas distribuídos
NORMA (No Remote Memory Access)
Um sistema distribuído é um conjunto de elementos que se comunicam através de uma
As redes de computadores podem ser vistas como arquiteturas NORMA, porem existem rede de interconexão e que utilizam software de sistema distribuído.
diferenças quanto à velocidade e confiabilidade da rede de interconexão. Como os
processadores necessitam fazer explicitamente operações de I/O (envio e recepção de Cada elemento é composto por um ou mais processadores e uma ou mais memórias. O
mensagens) o modelo de programação tradicionalmente usado nas arquiteturas NORMA é uso de tais sistemas tem se expandido nos últimos anos principalmente devido ao
a troca de mensagens. contínuo barateamento e disponibilidade de hardware para computadores, bem como a
disseminação das redes de computadores.
No que se refere à programação, o ambiente é formado por bibliotecas (APIs) com rotinas
para passagens de mensagens (MPI e PVM) que são ligadas a programas escritos em C, As vantagens de sistemas distribuídos incluem a possibilidade de seu crescimento
C++ e Fortran, em que o problema é dividido em tarefas, e estas se comunicam entre si incremental, ou seja, grande escalabilidade, a possibilidade de implementação de
por troca de mensagens. aplicações distribuídas e a possibilidade de implementação de sistemas tolerantes a falhas
por meio de replicação de serviços ou de máquinas.
Como vantagens desta arquitetura temos um projeto simples, relativamente barato e com
alta escalabilidade. Um sistema distribuído também pode ser classificado como um conjunto de computadores
com seu próprio clock e que não possuem memória compartilhada, e é visto pelos seus
E como desvantagem fica o problema de que a memória não é mais diretamente acessível usuários como um sistema de recurso único, também chamado de imagem única do
a todos os processadores do sistema e o alto custo na comunicação e sincronização entre sistema (SSI – Single System Image), que se comunicam através de um barramento por
osprocessadores. troca de mensagens. Estes sistemas são considerados por meio destas características como
31 32
fracamente acoplados, ou seja, um cluster ou agregado de máquinas.
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
9. 33 34
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Sistemas distribuídos Sistemas distribuídos
Os sistemas distribuídos têm por seu maior objetivo melhorar a comunicação entre os Se realizado de forma especial entre seus participantes, poderemos classificá-los como:
computadores, sendo este o gargalo no incremento de performance da comunicação entre
processos. vGrades computacionais (Grid Computing);
vVariedade de estações de trabalho e PC’s;
Porém, no desenvolvimento de um sistema distribuído, encontramos um pequeno vUm meio filantrópico tal como o projeto SETI@home.
problema: o software. Devido ao elevado tamanho e complexidade dos sistemas
distribuídos, o seu desenvolvimento exige um conhecimento bastante profundo nesta área Essas classes exploram ciclos de máquinas disponíveis entre computadores ociosos.
e a utilização de técnicas adequadas para concepção e projetos de sistemas.
A diferença entre um sistema distribuído e um computador paralelo está no objetivo que
O software distribuído permite aos computadores coordenarem suas atividades através de se tem quando se usa o sistema.
cooperação e interação, compartilhando recursos do sistema como o hardware, software e
os dados. O computador paralelo é definido como uma coleção de elementos de processamento que
cooperam e comunicam para resolver problemas de uma maneira bem rápida.
A computação distribuída, algumas vezes denominada “metacomputação”, combina a
capacidade de computa ção de diversos computadores geograficamente distribuídos via Conforme PITANGA: “Poderíamos dizer então que os sistemas paralelos são um tipo
Internet. específico de sistema distribuído.”
33 34
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
35 36
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Problemas com Supercomputadores na Atualidade
ØAlt íssimo custo; Cluster de computadores
ØSoftwares proprietários e caros;
ØAlto custo de manutenção; O termo Cluster é definido como “Quando você utiliza dois ou mais computadores em
ØTotal dependência de fornecedores; conjunto para resolver um problema...”.
ØDificuldade de atualização;
Os Clusters de computadores podem ser subdividos em duas categorias básicas:
São estes fatores que diretamente influenciam na existência de f rtes pesquisas em
o
Alta Disponibilidade (HA – High Availability) e
clusters de computadores.
Alta Performance de Computação (HPC – High Performance Computing).
A definição de um supercomputador varia de acordo com o tempo. A tendência é que a
demanda será definida por nós, para que os futuros supercomputadores sejam cada vez O cluster de alta disponibilidade tem a finalidade de manter um determinado serviço de
mais rápidos e inteligentes. M áquinas consideradas supercomputadores hoje, por forma ininterrupta, e o Cluster de Alta Performance tem por finalidade oferecer alto poder
exemplo, podem perder seu posto em menos de um ano. de processamento.
As pesquisas mais recentes das tendências em aplicações, arquiteturas de computadores, e
redes sugerem um futuro no qual o paralelismo atingirá não somente em
supercomputadores ou clusters de computadores, mas sim a união d todos elese
interligados pelo mundo, daí um enorme esforço na junção destes equipamentos
35 36
geograficamente dispersos: nasce o projeto GRID.
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
10. 37 38
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster de Alta Disponibilidade Cluster de Alta Disponibilidade
Cluster de Alta Disponibilidade (HA – High Availability) conceitua-se em dois ou mais O Cluster de Alta Disponibilidade tem seu funcionamento baseado em um conceito de
nós interligados por uma rede de computadores de qualquer topologia, no qual o objetivo servidores backup
é ter disponibilidade continua dos serviços oferecidos pelos servidores do cluster.
Uma implementação de um C luster de Alta Disponibilidade baseia-se em se ter um
Cluster de Alta Disponibilidade é definido como “uma técnica que consiste na servidor principal e um servidor backup interligados por uma rede de computadores de
configuração de dois ou mais computadores para que eles passem a trabalhar em qualquer topologia.
conjunto”, um cluster não é uma característica de hardware, e sim um conjunto completo
de sistema operacional e softwares desenvolvidos especificamente para trabalhar como Neste tipo de implementação, o servidor backup é responsável por monitorar o
um cluster. funcionamento do servidor principal, tanto em funcionamento do software e hardware,
em uma configuração de Alta Disponibilidade existe uma redundância dos dados
O Cluster de Alta Disponibilidade trabalha com a redundância de servidores, softwares e armazenados e dos serviços oferecidos pelo cluster.
dados para poder dispor a disponibilidade continua dos serviços fornecidos a uma rede de
computadores. A redundância de dados é realizada em ambos os computadores, tornando assim os dados
do usuário redundantes e disponíveis com um nível de segurança maior.
O Cluster de Alta Disponibilidade vem a oferecer uma solução para ambiente
computacionais que necessitam de serviços que operem 24 horas por dia e 7 dias por O cluster deve oferecer transparência para o usuário que o está utilizando, sendo visível
semana. São serviços que são considerados essenciais e sua parada é inadmissível. para este usuário um único computador, determinando-se assim o mascaramento de
falhas.
37 38
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
39 40
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster de Alta Disponibilidade Cluster de Alta Disponibilidade
Um cluster de Alta Disponibilidade pode ter um de seus nós inoperante por um período de Falha: Conceitua-se como sendo o problema ocasionado ao meio físico do cluster, como o hardware
tempo, ocasionado por uma falha. (parte ísica do computador) de comunicação entre os nós, uma placa de rede, um cabo de rede, uma
f
fonte de alimentação de energia dos servidores, etc. Para prevenir o acontecimento de uma falha
deve existir equipamento de segurança, como no-break, estabilizadores de energia, fontes
Para realizar o cálculo da disponibilidade de um cluster é necessário entender o conceito
redundantes e um ambiente climatizado adequadamente para instalação do hardware utilizado para
de componente em reparo e funcionando. Quando um componente se encontra no estado montar o cluster .
em reparo, após ele ser substituído ele é considerado como um novo componente, sendo
seu novo estado o funcionando. Erro: É ocasionado por uma falha, uma interferência magn ética é considerada uma falha e pode
ocasionar a troca de alguns bits , o que irá ocasionar uma resposta incorreta do computador, causando
A definição do cálculo para alta disponibilidade é realizada analisando-se dois fatores uma falha na informação.
fundamentais, o tempo médio até apresentar falha (MTTF – Middle Time To Fail) e o
tempo m édio de reparo (MTTR – Middle Time To Repair). Defeito: O defeito é ocasionado pelo não tratamento de uma falha, que por sua vez, acarreta em um
erro, que não tratado ocasiona o defeito, que é percebido no usuário do cluster , como mensagens de
erro, travamento do sistema, perda de dados, etc.
Durante a análise realizada para o cálculo, devem ser observadas as possíveis paradas
planejadas para manutenção ou atualização, que não devem ser incluídos como MTTR. Um defeito pode ser causado por um componente danificado, que é uma falha, que irá ocasionar um
erro e por fim irá ocasionar um defeito, sendo este componente um meio de comunicação entre os
A disponibilidade de computadores pertencentes à classe de alta disponibilidade tem de computadores, como a rede de computadores que faz a conexão entre os nós do cluster , teremos uma
99,99% a 99,9996 de estarem disponíveis durante o período de um ano. perda de dados, que causará uma inconsistência dos dados armazenados.
39 40
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
11. 41 42
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster de Alta Disponibilidade
Cluster de Alta Performance de Computação
Failover: é o conceito utilizado para definir o processo de troca dos servidores, ao ser
detectado um defeito no servidor principal o servidor secundário assume o lugar do A idéia básica do cluster de alto poder de processamento é fazer com que um grande
primário, tornando assim a aplicação funcional, a esse processo de troca dá-se o nome de número de computadores individuais atue como se fossem um único computador, assim
failover. aumentando o seu poder de processamento.
Failback: pós a manutenção do servidor principal, ele é colocado novamente em Esse tipo de Cluster é mais bem aplicado á problemas que requeiram grandes números de
funcionamento e sincronizado com o servidor backup, esse processo de volta do servidor instruções que exijam um grande poder computacional.
principal é denominado failback (volta da falha).
Cliente Os clusters de alto desempenho de processamento podem ser vistos como uma solução
server:/# ls
alternativa para universidades e empresas de pequeno porte e médio porte, para obterem
processamento de alto desempenho na resolução de problemas através de aplicações
paralelizáveis, a um custo razoavelmente baixo se comparada com os altos valores que
seriam necessários para a aquisição de supercomputador.
IP - 192.168.1.5
IP - 192.168.1.1 HeartBeat IP - 192.168.1.2
41 42
Servidor Primário Servidor Backup
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
43 44
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster de Alta Performance de Computação Cluster de Alta Performance de Computação
Vantagens do Cluster de Computadores: Desvantagens do Cluster de computadores
Ø AltoDesempenho – possibilidade de se resolver problemas muitos complexos Ø O hardware de rede tipicamente utilizado não foi criado especificamente para
através do processamento paralelo, o que diminui o tempo de resolução do problema; processamento paralelo, o que origina latência superior e largura de banda inferior a
outras arquiteturas;
Ø Escalabilidade – possibilidade de que novos componentes sejam adicionados á
medida que cresce a carga do trabalho; Ø Os algoritmos de programação utilizados deverão ser tolerantes a este problema
dentre outros e a utilização de hardware mais específico que minimize o problema de
Ø Tolerância e Falhas – o aumento de confiabilidade do sistema como um todo, caso saturação da rede origina custos acrescidos;
alguma parte falhe;
Ø É necessária experiência na administração de redes de computadores para construir,
Ø Baixo Custo – a redução de custo para se obter processamento de alto desempenho configurar e gerir um cluster.
utilizando-se simples computadores;
Ø Independência de fornecedores – Utilização de hardware aberto, software de uso
livre e independência de fabricante e licença de uso.
43 44
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
12. 45 46
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster Beowulf Cluster Beowulf
A computação em cluster originou-se com o projeto SAGE (Semi-Automatic Ground Em 1994 nascia o Cluster Beowulf, ele surgiu quando a agência espacial necessitava de
Environment), construído para o NORAD (North American Air Defense) pela IBM, um equipamento que processasse na ordem de um gigaflops, entretanto, um
entrando em operações em 1962, e consiste em diversos sistemas separados trabalhando supercomputador com este nível de desempenho custava em torno de um milhão de
de forma cooperativa para monitorar invasões aéreas no continente norte americano. dólares, o que era considerado um investimento muito alto para ser utilizado somente por
um grupo de pesquisadores.
No inicio dos anos 90, diversos lugares á experimentavam clusters de estações de
j
trabalho. Os pesquisadores Thomas Sterling e Donald J. Becker decidiram então interligar 16
computadores pessoais, cada um contendo um microprocessador 486, usando o sistema
Em 1993 a NASA j utilizava um pequeno cluster de estações de trabalho da IBM
á operacional Linux e uma rede padrão Ethernet.
utilizado para simular partidas de naves espaciais.
Também nesse período temos que relatar o projeto NOW (Network of Workstations) da Usado para aplicações cientificas, este conjunto atingiu a marca de 70 megaflops.
UC Berkeley.
Naquela época esta velocidade não era nada baixa se comparada aos pequenos
O potencial de expandir a força de processamento paralelo com o uso de PCs comuns foi supercomputadores comerciais disponíveis, cerca de U$50.000.00 sendo dez pontos
identificado como uma possibilidade importante pela NASA em suas aplicações de percentuais do preço de uma máquina comercial em 1994, com desempenho equivalente.
missão crítica, e atendia aos objetivos da empresa de “barato e rápido”.
45 46
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
47 48
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster Beowulf Cluster Beowulf
ØCaracterísticas de um cluster: Como vantagens dessa filosofia de trabalho são:
ØUso de componentes comuns, disponíveis no mercado;
qNenhum fornecedor possui direitos sobre o produto. Sistemas podem ser construídos
ØProcessadores dedicados na execução das tarefas, ao invés de usar o tempo ocioso;
usando componentes de diversas origens, graças à padronização de interfaces, tais como:
ØUma rede de interconexão privada; IDE, PCI, SCSI;
Alem dos itens básicos de um cluster o Beowulf deve ter as seguintes características: qRápida atualização do sistema devido às rápidas evoluções tecnológicas, a menores
preços, capazes de continuar executando o mesmo software;
üNenhum componente feito sob encomenda;
qOs sistemas podem ser montados e modificados ao longo do tempo, de acordo com as
üIndependência de fornecedores de hardware e software;
necessidades e recursos do usuário, sem depender de configurações disponíveis de um
üPeriféricos escaláveis;
vendedor especifico;
üSoftware livre de código aberto;
üUso de ferramentas de computação distribuída disponível livremente com alterações qO beowulf usa software disponível livremente, tão sofisticado, robusto e eficiente
mínimas; quando o comercial;
üRetorno à comunidade do projeto e melhorias.
qInvestimentopreservado.
47 48
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com
13. 49 50
REDES DE COMPUTADORES REDES DE COMPUTADORES
Introdu ção a Computação Distribuída Introdu ção a Computação Distribuída
Cluster Beowulf Cluster Beowulf
Sendo assim, uma característica chave de um cluster Beowulf é o uso do sistema
operacional Linux, assim como de bibliotecas de troca de mensagens de livre distribuição.
Com isso permitiu-se fazer alterações no sistema operacional para dotá-lo de novas
características que facilitaram a implementação para aplicações paralelas.
Atualmente o Beowulf pode ser dividido em duas classes:
v Cluster Classe I - construído com equipamentos genéricos de fabricantes conhecidos
e aprovados mundialmente,
v Cluster Classe II – são construídos com equipamentos específicos de diversos
fabricantes.
Um cluster Beowulf é constituído de v ários nós escravos (back-end ou escravo)
controlados por um computador principal (front-end ou mestre), onde este computador
principal é responsável pela distribuição das tarefas e os escravos limitam-se a processar
os cálculos que lhe são enviados.
49 50
e-mail: luiz_arthur@unipar.br e-mail: luiz_arthur@unipar.br
51
REDES DE COMPUTADORES
Introdu ção a Computação Distribuída
Cluster Beowulf
51
e-mail: luiz_arthur@unipar.br
Printed with FinePrint - purchase at www.fineprint.com