Você está na página 1de 6

Arquitetura de Máquinas Paralelas

Apesar de as freqüências de clock dos processadores estarem sempre crescendo, a


velocidade da luz tornou-se o maior obstáculo a ser enfrentado pelos projetistas das
máquinas topo de linha.
O projetistas estão se voltando cada vez mais para os computadores paralelos de
maneira a poderem tratar problemas que envolvam uma potência computacional cada vez
maior.
O paralelismo pode ser introduzido em vários níveis:

No nível das instruções : por exemplo, os projetos pipeline podem aumentar a performance

No nível do hardware : onde podemos replicar vários processadores, ou no mínimo partes


substanciais de processadores, fazendo com que tudo isso trabalhe junto, de maneira
eficiente.

Aspectos do projeto de máquinas paralelas

Ao começar-se o estudo de um sistema de computação paralela, as três perguntas


básicas que devem ser feitas são:

1 – Qual a natureza, o tamanho e a quantidade de sues elementos de processamento?


2 – Qual a natureza, o tamanho e a quantidade de sues elementos de memória?
3 – Como os elementos de processamento e os elementos de memória estão
interconectados?

O que precisa rodas em paralelo? Alguns computadores paralelos são concebidos


para rodar simultaneamente várias tarefas independentes. Essas tarefas nada tem a ver umas
com as outras, e portanto não precisam se comunicar. Um exemplo típico é um computador
com 8 a 64 processadores funcionando como um imenso sistema UNIX que roda tarefas em
regime de tempo compartilhado e que pode atender a milhares de usuários remotos. Os
sistemas de processamento de transações usados pelos bancos (como, por exemplo, uma
rede de caixas eletrônicos), pelas empresas aéreas (como um sistema de reservas) e os
grandes servidores Web.

Um outro ponto é representado pelas máquinas paralelas usadas para rodar uma
única tarefa dividida entre diversos processos que executam simultaneamente. Como
exemplo, considere um programa para jogar xadrez, que deve ser capaz de analisar a
situação no tabuleiro, gerando uma lista das jogadas legais que poderão ser feitas a partir
dessa posição particular e processos paralelos para analisar(recursividade) cada uma das
novas situações no tabuleiro, resultantes de cada jogada válida. Neste caso, o paralelismo
não é empregado para acomodar mais usuários no sistema como no exemplo anterior. Mas
para ganhar velocidade na solução de um único problema.
Modelos de Comunicação

Em qualquer tipo de sistema de processamento paralelo, os processadores que


estiverem trabalhando nas diferentes partes de uma mesma tarefa precisam se comunicar
entre si para poder trocar informações. Existem duas filosofias de projeto diferentes, os
sistemas multiprocessadores e os sistemas multicomputadores.

Multiprocessadores

Nesta filosofia de comunicação de uma máquina paralela, todos os processadores


compartilham uma mesma memória física. Um sistema como esse é chamado de sistema
multiprocessador ou simplesmente sistema com memória compartilhada.
Os sistemas multiprocessadores são muito populares em razão da capacidade de
dois (ou mais) processos se comunicarem simplesmente lendo ou escrevendo na memória.
Muitos fabricantes de computadores vendem sistemas multiprocessadores. Alguns
exemplos são os sistemas Sun Enterprise 10000, Sequent NUMA-Q, SGI Origin 2000 e
HP/Convez

Multicomputadores

Nesta filosofia de comunicação cada processador tem sua própria memória,


acessível somente pelo processador proprietário e nunca diretamente por qualquer outro
processador do sistema. Tal projeto é conhecido como multicomputador ou sistema de
memória distribuída. Os multicomputadores são, com freqüência (mas nem sempre),
fracamente acoplados.

Desenhar os exemplos do livro pagina 317 e 318.

Temos um dilema a conhecer: os multiprocessadores são difíceis de construir e


fáceis de programar, enquanto os multicomputadores sÃo fáceis de construir e difíceis de
programar. Essa conclusão tem feito com que muito esforço de pesquisa se tenha voltado
para a construção de sistemas híbridos, relativamente fáceis de construir e relativamente
fáceis de programar.
A ponto central dessa questão é a busca de projetos que sejam escaláveis, ou seja,
que continuem a funcionar bem, mesmo quando o número de processadores do sistema
aumente.
Uma segunda possibilidade seria usar o hardware do multicomputador fazendo com
que o sistema operacional simulasse a memória compartilhada fornecendo aos processos
um espaço de endereçamento virtual paginado, compartilhado, espaço esse visualizado por
todo o sistema. Nessa metodologia, conhecida como DSM (Distributed Shared Memory –
Memória Distribuída Compartilhada) (Li, 1998; e Li Hudak, 1986, 1989) cada página está
situada em uma das memórias. Cada máquina tem a sua própria memória virtual e suas
próprias tabelas de página.

Redes de Interconexão

Em uma rede de interconexão vários módulos de memória que precisam se


comunicar entre si e com os processadores esta mesma visão explica Multicomputadores e
Multiprocessadores. Esta semelhança das redes de interconexão dos sistemas
multiprocessadores e multicomputadores é o fato de que, no fim das contas, ambas usam o
mecanismo da troca de mensagens para implementar a comunicação entre seus
componentes.
Observe que, mesmo em uma máquina com um único processador, quando esse
processador precisa ler ou escrever uma palavra de memória, ele geralmente ativa
determinadas linhas do barramento e espera por uma resposta. Nos sistemas
multiprocessadores de grande porte, a comunicação entre processadores e memória remota
é efetivamente quando o processador envia para a memória uma mensagem explícita,
conhecida como pacote, requisitando um dado, e a memória responde com um pacote de
resposta.
As redes de interconexão podem ser compostas por até cinco componentes:

1 – processadores
2 – Módulos de memória
3 – Interface
4 – Links
5 – Comutadores

As interfaces são dispositivos que de fato fazem o envio e a recepção de mensagens.


Em alguns projetos, a interface é um chip ou uma placa ligada a cada barramento local dos
processadores e que pode se comunicar tanto com o processador quanto com a memória
local.

Os links são os canais físicos sobre os quais os bits se movimentam. Um local canal
pode ser construídos com fios elétricos ou com fibras óticas, pode ser serial (comprimento
de 1 bit ) ou paralelo (mais de 1 bit de comprimento). Cada link tem uma banda passante
máxima, que representa a quantidade de bits que o link pode transferir em um segundo. O
link pode ser simplex (unidirecional - rádio), half duplex (bidirecional, porém só pode
haver transmissão em uma direção de cada vez – walktalk), ou full duplex (transmissões
simultâneas em ambas as direções - telefone).

Os comutadores são dispositivos com várias portas de entrada e várias portas de


saída. Quando um pacote chega à porta de entrada de um computador, alguns de seus bits
são usados para selecionar a porta de saída pela qual o pacote deve ser enviado.

Topologia

A topologia de uma rede de interconexão descreve a organização de sues links e de


seus comutadores; por exemplo, esses componentes podem ser organizados como uma
estrela ou como uma grade. O projeto da topologia pode ser modelado por meios de grafos,
com os links sendo os arcos e os comutadores os nós. Cada nó de uma rede de interconexão
(ou de seu grafo) tem um certo número de links ligados a ele.

Configuração estrela

Nesta configuração os processadores e as memórias devem estar ligados aos nós da


parte de fora, com o nó central sendo usado só para fazer a comutação. Apesar do seu
projeto muito simples, esse tipo de rede não pode ser usado em sistemas de grande porte,
pois o nó central se transforma em um gargalo muito grande.

Configuração totalmente conectada

Nesta configuração cada nó tem uma conexão direta com todos os demais nós da
rede.
Configuração em árvore

Nesta configuração o tráfego da rede é muito grande próximo ao topo da árvore é os


poucos nós do topo se transformarão em gargalos.

Configuração em anel

Nesta configuração cada pacote pode escolher entre ir para a direita ou para
esquerda.

Configuração em grade

A topologia em grade ou malha é um projeto de dimensão dois que tem sido usado
em diversos sistemas comerciais.
Configuração double torus

É uma configuração variante da topologia em grade que nada mais é que uma
topologia em grade com suas bordas conectadas

Configuração em cubo

A imagem abaixo mostra um cubo de quatro dimensões, construído a partir de dois


cubos de três dimensões com a bordas correspondentes ligadas.

Você também pode gostar