Multiprocessadores e multicomputadores
Discutiremos multiprocessadores e multicomputadores neste capítulo.
Multiprocessor System Interconnects
O processamento paralelo requer o uso de interconexões de sistema eficientes para comunicação rápida entre os dispositivos de entrada / saída e periféricos, multiprocessadores e memória compartilhada.
Sistemas Hierárquicos de Barramento
Um sistema de barramento hierárquico consiste em uma hierarquia de barramentos conectando vários sistemas e subsistemas / componentes em um computador. Cada barramento é composto de várias linhas de sinal, controle e energia. Barramentos diferentes, como barramentos locais, barramentos de backplane e barramentos de E / S, são usados para realizar diferentes funções de interconexão.
Os ônibus locais são os ônibus implementados nas placas de circuito impresso. Um barramento de backplane é um circuito impresso no qual muitos conectores são usados para conectar placas funcionais. Os barramentos que conectam dispositivos de entrada / saída a um sistema de computador são conhecidos como barramentos de E / S.
Interruptor de barra transversal e memória multiporta
As redes comutadas fornecem interconexões dinâmicas entre as entradas e saídas. Os sistemas de pequeno ou médio porte usam principalmente redes crossbar. Redes de múltiplos estágios podem ser expandidas para sistemas maiores, se o problema de latência aumentada puder ser resolvido.
Tanto o switch crossbar quanto a organização de memória multiporta são uma rede de estágio único. Embora seja mais barato construir uma rede de estágio único, podem ser necessárias várias passagens para estabelecer certas conexões. Uma rede com vários estágios possui mais de um estágio de caixas de comutação. Essas redes devem ser capazes de conectar qualquer entrada a qualquer saída.
Redes de múltiplos estágios e combinação
Redes de múltiplos estágios ou redes de interconexão de múltiplos estágios são uma classe de redes de computadores de alta velocidade que são principalmente compostas por elementos de processamento em uma extremidade da rede e elementos de memória na outra extremidade, conectados por elementos de comutação.
Essas redes são aplicadas para construir sistemas multiprocessadores maiores. Isso inclui a Omega Network, a Butterfly Network e muito mais.
Multicomputadores
Multicomputadores são arquiteturas MIMD de memória distribuída. O diagrama a seguir mostra um modelo conceitual de um multicomputador -
Multicomputadores são máquinas que passam mensagens que aplicam o método de comutação de pacotes para trocar dados. Aqui, cada processador tem uma memória privada, mas nenhum espaço de endereço global, pois um processador pode acessar apenas sua própria memória local. Portanto, a comunicação não é transparente: aqui, os programadores devem colocar explicitamente as primitivas de comunicação em seu código.
Não ter memória acessível globalmente é uma desvantagem dos multicomputadores. Isso pode ser resolvido usando os dois esquemas a seguir -
- Memória Virtual Compartilhada (VSM)
- Memória Virtual Compartilhada (SVM)
Nesses esquemas, o programador de aplicativos assume uma grande memória compartilhada que pode ser endereçada globalmente. Se necessário, as referências de memória feitas pelos aplicativos são traduzidas no paradigma de transmissão de mensagens.
Memória Virtual Compartilhada (VSM)
VSM é uma implementação de hardware. Portanto, o sistema de memória virtual do sistema operacional é implementado de forma transparente no topo do VSM. Portanto, o sistema operacional pensa que está sendo executado em uma máquina com memória compartilhada.
Memória Virtual Compartilhada (SVM)
SVM é uma implementação de software no nível do sistema operacional com suporte de hardware da Unidade de gerenciamento de memória (MMU) do processador. Aqui, a unidade de compartilhamento são as páginas de memória do sistema operacional.
Se um processador endereça um determinado local de memória, a MMU determina se a página de memória associada ao acesso à memória está na memória local ou não. Se a página não estiver na memória, em um sistema de computador normal, ela será trocada do disco pelo sistema operacional. Mas, no SVM, o sistema operacional busca a página do nó remoto que possui essa página específica.
Três Gerações de Multicomputadores
Nesta seção, discutiremos três gerações de multicomputadores.
Escolhas de design no passado
Ao selecionar uma tecnologia de processador, um designer de multicomputador escolhe processadores de baixo custo de grãos médios como blocos de construção. A maioria dos computadores paralelos é construída com microprocessadores padrão prontos para uso. A memória distribuída foi escolhida para vários computadores em vez de usar memória compartilhada, o que limitaria a escalabilidade. Cada processador possui sua própria unidade de memória local.
Para esquema de interconexão, os multicomputadores têm troca de mensagens, redes diretas ponto a ponto, em vez de redes de comutação de endereços. Para estratégia de controle, o projetista de multi-computadores escolhe as operações assíncronas MIMD, MPMD e SMPD. O Cosmic Cube da Caltech (Seitz, 1983) é o primeiro multicomputador da primeira geração.
Desenvolvimento Presente e Futuro
A próxima geração de computadores evoluiu de multicomputadores de grão médio para fino usando uma memória virtual compartilhada globalmente. Multi-computadores de segunda geração ainda estão em uso atualmente. Mas usando um processador melhor, como i386, i860, etc., os computadores de segunda geração evoluíram muito.
Os computadores de terceira geração são os computadores da próxima geração em que os nós implementados VLSI serão usados. Cada nó pode ter um processador de 14 MIPS, canais de roteamento de 20 Mbytes / s e 16 Kbytes de RAM integrados em um único chip.
O Sistema Intel Paragon
Anteriormente, nós homogêneos eram usados para fazer multicomputadores hipercubos, já que todas as funções eram atribuídas ao host. Portanto, isso limitou a largura de banda de E / S. Assim, para resolver problemas de grande escala com eficiência ou com alto rendimento, esses computadores não podiam ser usados. O Intel Paragon System foi projetado para superar essa dificuldade. Ele transformou o multicomputador em um servidor de aplicativos com acesso multiusuário em um ambiente de rede.
Mecanismos de passagem de mensagem
Os mecanismos de passagem de mensagens em uma rede multicomputador precisam de suporte especial de hardware e software. Nesta seção, discutiremos alguns esquemas.
Esquemas de roteamento de mensagens
Em multicomputador com esquema de roteamento de armazenamento e encaminhamento, os pacotes são a menor unidade de transmissão de informações. Em redes roteadas por buracos de minhoca, os pacotes são subdivididos em flits. O comprimento do pacote é determinado pelo esquema de roteamento e implementação da rede, enquanto o comprimento do flit é afetado pelo tamanho da rede.
Dentro Store and forward routing, os pacotes são a unidade básica de transmissão de informações. Nesse caso, cada nó usa um buffer de pacote. Um pacote é transmitido de um nó de origem para um nó de destino por meio de uma sequência de nós intermediários. A latência é diretamente proporcional à distância entre a origem e o destino.
Dentro wormhole routing, a transmissão do nó de origem para o nó de destino é feita por meio de uma sequência de roteadores. Todos os flits do mesmo pacote são transmitidos em uma sequência inseparável em um pipeline. Nesse caso, apenas o flit de cabeçalho sabe para onde o pacote está indo.
Deadlock e canais virtuais
Um canal virtual é um link lógico entre dois nós. É formado por flit buffer no nó fonte e no nó receptor, e um canal físico entre eles. Quando um canal físico é alocado para um par, um buffer de origem é emparelhado com um buffer de receptor para formar um canal virtual.
Quando todos os canais estiverem ocupados por mensagens e nenhum canal do ciclo for liberado, ocorrerá uma situação de deadlock. Para evitar isso, um esquema de prevenção de deadlock deve ser seguido.