1                                                                                                    2
                   ...
5                                                                                              6
                         ...
9                                                                                                   10
                   ...
13                                                                                                 14
                    ...
17                                                                                                 18
                    ...
21                                                                                                      22
               ...
25                                                                                                 26
                    ...
29                                                                                               30
                      ...
33                                                                                                34
                     ...
37                                                                                                              38
       ...
41                                                                                              42
                       ...
45                                                                                             46
                        ...
49                                                                                               50
                      ...
Upcoming SlideShare
Loading in...5
×

Tópicos - Computacao Paralela Introdução

1,926

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,926
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
69
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tópicos - Computacao Paralela Introdução

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×