SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Redes de Computadores - KAREN LOWHANY
Redes de Computadores - KAREN LOWHANYRedes de Computadores - KAREN LOWHANY
Redes de Computadores - KAREN LOWHANYKaren Costa
 
Ana e Sónia - 8F - 2012-13
Ana e Sónia - 8F - 2012-13Ana e Sónia - 8F - 2012-13
Ana e Sónia - 8F - 2012-13Informatica_
 
Redes de computadores e a internet
Redes de computadores e a internetRedes de computadores e a internet
Redes de computadores e a internetIRaza Gomes
 
Rd1 02 comunicacao
Rd1 02 comunicacaoRd1 02 comunicacao
Rd1 02 comunicacaorbraga79
 
Redes - Introdução
Redes - IntroduçãoRedes - Introdução
Redes - IntroduçãoLuiz Arthur
 
Aula 11 evolução dos microcomputadores
Aula 11   evolução dos microcomputadoresAula 11   evolução dos microcomputadores
Aula 11 evolução dos microcomputadoresRenaldo Adriano
 
081112 fund redes_comp
081112 fund redes_comp081112 fund redes_comp
081112 fund redes_compjoao feniasse
 

Was ist angesagt? (10)

Redes de Computadores - KAREN LOWHANY
Redes de Computadores - KAREN LOWHANYRedes de Computadores - KAREN LOWHANY
Redes de Computadores - KAREN LOWHANY
 
Aula01
Aula01Aula01
Aula01
 
Case de redes pinheiro
Case de redes pinheiroCase de redes pinheiro
Case de redes pinheiro
 
Ana e Sónia - 8F - 2012-13
Ana e Sónia - 8F - 2012-13Ana e Sónia - 8F - 2012-13
Ana e Sónia - 8F - 2012-13
 
Redes de computadores e a internet
Redes de computadores e a internetRedes de computadores e a internet
Redes de computadores e a internet
 
Rd1 02 comunicacao
Rd1 02 comunicacaoRd1 02 comunicacao
Rd1 02 comunicacao
 
Redes - Introdução
Redes - IntroduçãoRedes - Introdução
Redes - Introdução
 
Projeto de pesquisa 1
Projeto de pesquisa 1Projeto de pesquisa 1
Projeto de pesquisa 1
 
Aula 11 evolução dos microcomputadores
Aula 11   evolução dos microcomputadoresAula 11   evolução dos microcomputadores
Aula 11 evolução dos microcomputadores
 
081112 fund redes_comp
081112 fund redes_comp081112 fund redes_comp
081112 fund redes_comp
 

Ähnlich wie Introdução à computação distribuída e paralela

Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Redes de Computadores FMU
Redes de Computadores FMURedes de Computadores FMU
Redes de Computadores FMUFMU - Oficial
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacaoLuiz
 
Redes de computadores douglas rocha mendes
Redes de computadores   douglas rocha mendesRedes de computadores   douglas rocha mendes
Redes de computadores douglas rocha mendesWilliam Nascimento
 
Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Michel Alves
 
Comunicação em Sistemas de Controle
Comunicação em Sistemas de ControleComunicação em Sistemas de Controle
Comunicação em Sistemas de ControleCampos18
 
[Pereira ic'2011] explorando o paralelismo no nível de threads
[Pereira ic'2011] explorando o paralelismo no nível de threads[Pereira ic'2011] explorando o paralelismo no nível de threads
[Pereira ic'2011] explorando o paralelismo no nível de threadsMarcio Machado Pereira
 
CONCEITOS E APLICAÇÕES DE REDES MEC
CONCEITOS E APLICAÇÕES DE REDES MECCONCEITOS E APLICAÇÕES DE REDES MEC
CONCEITOS E APLICAÇÕES DE REDES MECJúlio César Magro
 
Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.valdarnini
 

Ähnlich wie Introdução à computação distribuída e paralela (20)

Conceitos redes
Conceitos redesConceitos redes
Conceitos redes
 
Apostila cantu
Apostila cantuApostila cantu
Apostila cantu
 
Conceitos básicos 01
Conceitos básicos   01Conceitos básicos   01
Conceitos básicos 01
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Noes geraisdeinformtica
Noes geraisdeinformticaNoes geraisdeinformtica
Noes geraisdeinformtica
 
Redes osi
Redes osiRedes osi
Redes osi
 
Redes de Computadores FMU
Redes de Computadores FMURedes de Computadores FMU
Redes de Computadores FMU
 
Fundamentos por terminar
Fundamentos por terminarFundamentos por terminar
Fundamentos por terminar
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacao
 
Redes de computadores douglas rocha mendes
Redes de computadores   douglas rocha mendesRedes de computadores   douglas rocha mendes
Redes de computadores douglas rocha mendes
 
Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.
 
Comunicação em Sistemas de Controle
Comunicação em Sistemas de ControleComunicação em Sistemas de Controle
Comunicação em Sistemas de Controle
 
Convergencia art02
Convergencia art02Convergencia art02
Convergencia art02
 
[Pereira ic'2011] explorando o paralelismo no nível de threads
[Pereira ic'2011] explorando o paralelismo no nível de threads[Pereira ic'2011] explorando o paralelismo no nível de threads
[Pereira ic'2011] explorando o paralelismo no nível de threads
 
CONCEITOS E APLICAÇÕES DE REDES MEC
CONCEITOS E APLICAÇÕES DE REDES MECCONCEITOS E APLICAÇÕES DE REDES MEC
CONCEITOS E APLICAÇÕES DE REDES MEC
 
Apostila redes e internet
Apostila redes e internetApostila redes e internet
Apostila redes e internet
 
Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.
 
Apostila redes
Apostila redesApostila redes
Apostila redes
 
Apostila cantu
Apostila cantuApostila cantu
Apostila cantu
 

Mehr von Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 

Mehr von Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 

Introdução à computação distribuída e paralela

  • 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