Вы находитесь на странице: 1из 18

ARQUITETURA DE COMPUTADORES II

UNIDADE 3: ARQUITETURAS PARALELAS


Contedo:
1 INTRODUO....................................................................................................................2 1.1 Processamento Paralelo (PP) ......................................................................................2 1.2 Medidas Bsicas de Desempenho ...............................................................................5 1.2.1 Desempenho da aplicao .....................................................................................5 1.2.2 Desempenho da rede de interconexo ..................................................................6 2 PARALELISMO EM ARQUITETURAS COM UM NICO PROCESSADOR ....................7 2.1 Multiprogramao .........................................................................................................8 2.1.1 Alterao da ordem de chegada ............................................................................9 2.1.2 Fatias de tempo (time sharing) ...............................................................................9 2.1.3 Utilizao de mltiplas unidades de E/S ..............................................................10 2.2 Pipelines Especiais .....................................................................................................10 2.2.1 Superescalar.........................................................................................................11 2.2.2 Superpipeline ........................................................................................................12 2.2.3 Pipeline Super-super ............................................................................................12 2.2.4 Estudo de Casos Processador Superescalar de grau 2 ...................................13 2.3 Mquinas Vetoriais .....................................................................................................14 3 PARALELISMO EM ARQUITETURAS COM MLTIPLOS PROCESSADORES ...........15 3.1 Classificao de Flynn (fluxo de instrues / fluxo de dados) ...................................15 3.2 Classificao segundo o compartilhamento de memria...........................................18 3.2.1 Multiprocessadores...............................................................................................19 3.2.2 Multicomputadores ...............................................................................................21 3.2.3 Viso geral da classificao segundo o compartilhamento de memria .............22 3.3 Tendncias na Construo de Mquinas Paralelas...................................................22 3.3.1 Multiprocessadores simtricos (SMP) ..................................................................22 3.3.2 Redes de estaes de trabalho (NOW)................................................................23 3.3.3 Mquinas agregadas (COW)................................................................................24 3.4 Organizao da Memria Principal ............................................................................25 3.4.1 Memrias entrelaadas ........................................................................................25 3.5 Redes de Interconexo...............................................................................................26 3.5.1 Redes estticas ....................................................................................................26 3.5.2 Redes dinmicas ..................................................................................................28 3.5.3 Roteamento de Mensagens .................................................................................30 3.6 Coerncia de Cache (cache coherence) ....................................................................31 3.6.1 O problema da inconsistncia de dados ..............................................................32 3.6.2 Estratgias de coerncia de cache ......................................................................34 4 EXERCCIOS ....................................................................................................................35

1 INTRODUO
Apesar do crescente aumento de desempenho dos PCs encontrados no mercado (mquina denominadas convencionais) existem usurios especiais que executam aplicaes que precisam de ainda mais desempenho Ex:
Previso do tempo Procura de petrleo Simulaes fsicas Matemtica computacional

Se executadas em mquinas convencionais estas aplicaes precisariam de vrias semanas ou at meses para executar e em alguns casos extremos nem executariam por causa de falta de memria Ex: Compro o melhor PC que encontro no mercado, utilizo um simulador para prever o tempo daqui a trs (3) dias ... A previso pode s ficar pronta depois de 1 semana (7 dias) !!! Processamento de Alto Desempenho (PAD) uma rea da computao que se preocupa com estes problemas complexos demais para mquinas convencionais Estes usurios s tm duas alternativas:
Simplificam o seu modelo e acabam tendo resultados menos precisos

aumentando a margem de erro (Ex: a simulao de tempo indica uma alta probabilidade de chuva e no chove )
Executam a sua aplicao em mquinas mais poderosas do que as

convencionais, denominadas arquiteturas especiais ou arquiteturas paralelas As arquiteturas especiais obtm um melhor desempenho replicando o nmero de unidades ativas (normalmente processadores) Infelizmente um aumento do nmero de processadores na arquitetura acaba invariavelmente complicando ainda mais os problemas j encontrados em arquiteturas convencionais e criando novos complicadores
A dificuldade que se tinha para alimentar um processador com dados fica ainda

maior para vrios processadores


A programao de mquinas especiais mais complicada, pois o problema tem

que ser particionado (quebrado em partes e distribudo) entre as vrias unidades ativas para que execute mais rpido O tipo de processamento que ocorre nestas mquinas denominado processamento paralelo pelo fato de vrias unidades ativas atuarem em paralelo no mesmo problema com o objetivo de reduzir o tempo total de execuo

1.1 Processamento Paralelo (PP)


Definio: vrias unidades ativas colaborando na resoluo de um mesmo problema As vrias unidades ativas cooperam para resolver o mesmo problema, atacando cada uma delas uma parte do trabalho e se comunicando para a troca de resultados intermedirios ou no mnimo para a diviso inicial do trabalho e para a juno final dos resultados
2 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Exemplos de programas paralelos:


Uma aplicao escrita em C ou Java com vrias threads Uma aplicao escrita em Java usando RMI (Remote Method Invocation) Uma aplicao escrita em C que foi quebrada em vrios processos que se

Gro de Paralelismo: um conceito muito importante pois seu entendimento fundamental para a modelagem de programas paralelos
Gro grosso: o trabalho a ser feito pode ser particionado em unidades de trabalho

comunicam por sockets Um programa que no foi preparado para executar com vrias unidades ativas (implementado com apenas um processo que no dispara mltiplas threads) no executa mais rpido em uma mquina dual !!! O programa no automaticamente quebrado pelo sistema operacional e s executa em um nico processador no se aproveitando de outros processadores que possam estar disponveis na arquitetura (no caso da mquina dual) Motivao para o uso de processamento paralelo 1. Desempenho Espero reduzir o tempo de execuo devido a utilizao de diversas unidades ativas na resoluo do problema 2. Tolerncia a falhas Espero reduzir a probabilidade de falhas no clculo pois cada unidade ativa calcula o mesmo problema e fao uma eleio no final 3. Modelagem Espero reduzir a complexidade da modelagem e conseqentemente da implementao da aplicao utilizando uma linguagem que expresse paralelismo (em situaes onde o problema em sua essncia paralelo) 4. Aproveitamento de recursos Espero aproveitar melhor os recursos disponveis na rede executando uma aplicao com mltiplos processos Explorao de paralelismo est presente nos diversos nveis de um sistema:
Utilizao de processos leves (threads) Invocao de mtodos remotos (Java RMI) Utilizao de processos remotos

grandes. Mesmo pagando um alto custo de comunicao grande a chance de se obter ganho de desempenho delegando estas unidades de trabalho para outras unidades ativas (o custo do envio compensado pelo ganho de tempo em atacar o problema com mais unidades)
Gro mdio: o trabalho a ser feito s pode ser particionado em unidades de

trabalho mdio. Em caso de um alto custo de comunicao pode ser difcil se obter ganho de desempenho delegando estas unidades de trabalho para outras unidades ativas (o custo do envio no necessariamente compensado pelo ganho de tempo em atacar o problema com mais unidades)
Gro fino: o trabalho a ser feito s pode ser particionado em unidades de trabalho

pequenas. Em caso de um alto custo de comunicao no vale a pena delegar estas unidades de trabalho para outras unidades ativas (o custo do envio no compensado pelo ganho de tempo em atacar o problema com mais unidades) Processamento Paralelo x Distribudo: questes mais conceituais dependem muito de cada autor e de sua respectiva formao:
Em ambas as reas tenho os mesmos complicadores (custo de comunicao,

distribuio dos dados, dependncias) mas a motivao diferente [De Rose]


No caso de Processamento Paralelo a motivao foi o ganho de desempenho e

as unidades ativas esto normalmente na mesma mquina resultando em custos de comunicao menores (baixa latncia)
No caso de Processamento Distribudo a motivao foi a modelagem e o

aproveitamento de recursos e as unidades ativas esto normalmente mais afastadas (em uma rede local ou at na Internet) resultando em custos de comunicao maiores (alta latncia) Poderia supor que se quero aumentar o desempenho de uma aplicao s precisaria executar o programa com mais unidades ativas ... mas infelizmente tenho complicadores :
Dependncias de dados Distribuio dos dados Sincronizao reas crticas

Aplicao

Multiprocessamento Multiprogramao Vrios processadores Unidades de E/S ativa Hierarquia de memria Hierarquia de barramentos Mltiplas unidades funcionais Pipeline de instruo

Sistema Operacional

Exemplo: construo de um muro

Um pedreiro faz o muro em 3 horas, dois pedreiros fazem em 2 horas, trs pedreiros em 1 hora e meia, 4 pedreiros em duas horas (aumentou o tempo !!!)

Arquitetura

A quantidade de trabalho a ser feita limita o nmero de unidades ativas que podem ser usadas de forma eficiente Um nmero muito grande de unidades ativas para uma quantidade limitada de trabalho faz com que os recursos mais se atrapalhem do que se ajudem (o que faz o tempo aumentar e no diminuir !!!)
4 Arquitetura de Computadores II - 04/08/04

Processador
Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

A incidncia de muitos complicadores faz com que o ganho de desempenho no seja proporcional ao acrscimo de unidades ativas utilizadas (a duplicao do nmero de pedreiros de 1 para dois no reduziu o tempo de execuo pela metade no exemplo acima) Os complicadores no caso da construo do muro so os seguintes:

Se SU > 1 a verso paralela reduziu o tempo de execuo (ficou mais rpido que a seqencial) e se SU < 1 a verso paralela aumentou o tempo de execuo (ficou mais lenta que a seqencial) Cada aplicao tem a sua curva (mais ou menos acentuada) dependendo do trabalho e da incidncia de complicadores (aplicao mais ou menos amarrada) Toda aplicao tem um nmero de unidades ativas ideal para a obteno do melhor desempenho (sweetspot) no sendo verdade que quanto mais unidades ativas melhor

O muro s pode ser feito de baixo para cima (dependncia de dados) Os tijolos tm que ser distribudos entre os pedreiros (distribuio dos dados) Um pedreiro no pode levantar o muro do seu lado muito na frente dos outros pedreiros (sincronizao ritmo de subida do muro dado pelo pedreiro mais lento) Se s existir um carrinho com cimento este ser disputado por todos os pedreiros que faro uma fila para acessar o cimento. Enquanto um pedreiro acessa o cimento os outros perdero tempo esperando nessa fila (reas crticas)

Eficincia Indica como foi a taxa de utilizao mdia das unidades ativas utilizadas Mostra se os recursos foram bem aproveitados calculado pela razo entre o Speed-Up e o nmero de unidades ativas utilizadas

E p ( w) =

SU p ( w)
p

1.2 Medidas Bsicas de Desempenho


ndices que indicam o desempenho de diferentes aspectos de um programa paralelo
Desempenho da aplicao Desempenho da rede de interconexo

Onde p o nmero de unidades ativas utilizadas e w o trabalho que foi calculado

Eficincia (Speed-Up/Nua)
1.2 1

1.2.1 Desempenho da aplicao


Speed-Up (fator de acelerao) Indica quantas vezes o programa paralelo ficou mais rpido que a verso seqencial calculado pela razo entre o melhor tempo seqencial e o tempo da verso paralela T ( w) SU p ( w) = T p ( w) Onde p o nmero de unidades ativas utilizadas e w o trabalho que foi calculado
Spe e d-Up (Fator de Ace le rao) 18 16 14 12 Speed-Up 10 8 6 4 2 0 1 2 3 4 5 6 7 8 9 10 11 Nm e ro de unidade s ativas 12 13 14 15 16
Eficincia

0.8 0.6 0.4

Terico
0.2 0 1 2 3 4 5

Real

6 7 8 9 10 11 Nm e ro de unidade s ativas

12

13

14

15

16

O ideal seria que cada unidade ativa tivesse ficado 100% do tempo ativa (linha azul) Normalmente as unidades ativas ficam parte de seu tempo esperando por resultados de vizinhos o que reduz sua taxa de utilizao A melhor taxa de utilizao mdia no significa o menor tempo de execuo (nas figuras o menor tempo de execuo ocorreu com 11 unidades ativas e a melhor taxa de utilizao mdia com 5)

Terico

Real

1.2.2 Desempenho da rede de interconexo


Latncia

tempo necessrio para enviar uma mensagem atravs da rede de interconexo Unidade: medida de tempo, Ex: 4 microsegundos (4 s) Inclui o tempo de empacotamento e desempacotamento dos dados mais o tempo de envio propriamente dito
6 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

A latncia do envio de uma mensagem de 1 Byte entre duas mquinas rodando GNU/Linux ligadas por tecnologia Fast-Ethernet de aproximadamente 150 s (ver figura abaixo) A latncia aumenta a medida que a quantidade de dados a serem enviados aumenta, mas no de forma linear, pois a componente do tempo referente ao custo de empacotamento e desempacotamento no varia tanto em relao ao tamanho da mensagem como a componente de custo de envio pela rede (ver figura abaixo)

Portanto podemos ter processamento paralelo tambm em mquinas com apenas um processador Sero vistas 3 formas de paralelismo em arquiteturas com um nico processador (monoprocessadas)
Multiprogramao Pipelines Especiais Mquinas Vetoriais

Vazo

Expressa a capacidade da rede de bombear dados entre dois pontos Unidade: quantidade de dados por unidade de tempo, Ex: 10 MBytes/segundo (10 MB/s) A vazo afetada pela largura do canal de comunicao (expressa normalmente em bits) e pela freqncia da transmisso dos dados (expressa em MHz) segundo a seguinte frmula: V = L*F A melhor vazo entre dois pontos medida em uma rede Fast-Ethernet fica em torno de 10 MBytes/s, bastante prximo do seu limite terico de 12,5 MBytes (100 Mbits/s) e foi obtida com uma mensagem de aproximadamente 64 KBytes
1e+06

2.1 Multiprogramao

Durante sua execuo um processo intercala entre fases de clculo e fases de E/S A quantidade, o tamanho, e a ordem dessas fases varia de processo para processo Se o processo fizer muita E/S denominado I/O Bound e se fizer muito clculo denominado CPU bound Se o sistema operacional estiver executando apenas um processo por vez quando este fizer E/S o processador vai ficar parado at que a operao seja concluda Na tcnica de multiprogramao so mantidos ativos vrios processos ao mesmo tempo de forma que aumente a chance do sistema operacional de sempre encontrar um processo pronto para rodar (que no esteja esperando por E/S) Como os processos ativos se revezam na utilizao da CPU, se a tcnica for bem aplicada todos os usurios acreditam que esto rodando ao mesmo tempo O objetivo maior da multiprogramao aumentar a taxa de utilizao do processador, ou seja, mant-lo ocupado a maior parte do tempo A multiprogramao s se tornou possvel a partir do momento que as unidades de E/S se tornaram ativas e passaram a executar as operaes de forma autnoma liberando o processador para outras tarefas Sendo assim pode se dizer que na multiprogramao ocorre processamento paralelo entre o processador e as unidades de E/S, todas unidades ativas envolvidos na resoluo de um problema (executar um grupo de programas) O escalonador do sistema operacional responsvel por escolher dentre os processos ativos qual vai para que unidade ativa do sistema O exemplo abaixo demonstra como a multiprogramao acelera a execuo de um conjunto de processos sobrepondo sua execuo (b) em relao a execuo seqencial do mesmo conjunto de programas (a)

Vazao MPI-Ethernet (MBytes/s) Latencia MPI-Ethernet (microsegundos)

100000

10000

1000

100

10

0.1

0.01

0.001 1 2 4 8 16 32 64 128 256 512 1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1M Tamanho da Mensagem (bytes) 2M 4M

2 PARALELISMO EM ARQUITETURAS COM UM NICO PROCESSADOR



Para termos processamento paralelo precisamos de vrias unidades ativas O processador uma unidade ativa, mas no a nica em uma arquitetura moderna Temos hoje partes autnomas dentro do processador (Ex: unidades lgicas e aritmticas) e sub-sistemas autnomos fora do processador (Ex: unidades de E/S)
7 Arquitetura de Computadores II - 04/08/04 Csar A. F. De Rose 8 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Em uma situao dessas os processos que esto esperando na fila de pronto ficam muito tempo sem ter acesso a CPU e o tempo de resposta mdio do sistema aumenta consideravelmente quebrando a iluso de que os processos esto rodando ao mesmo tempo Para evitar que um processo possa ficar por muito tempo utilizando a CPU foi definido o conceito de fatia de tempo. Uma fatia de tempo (time slice) o tempo mximo que um processo pode executar antes de dar a vez ao prximo da fila de pronto Esta tcnica denominada time sharing (compartilhamento do tempo de CPU) Se a causa da troca de um processo foi o estouro de sua fatia de tempo o processo no colocado na fila de espera por E/S (nenhuma operao de E/S foi solicitada) mas sim no final da fila de pronto Para que o escalonador possa retirar um processo dessa forma o sistema tem que suportar preempo Uma fatia muito grande faz com que o comportamento do sistema fique parecido com FIFO, uma fatia muito pequena tende a SJF (Smallest Job First) Uma fatia muito pequena resulta em muita troca de processos o que acaba tendo um alto custo para o sistema por causa do salvamento de contexto (sistema guarda os registradores e algumas tabelas para que possa retomar o processo onde parou) Preciso achar um tamanho de fatia que seja um compromisso entre qualidade e custo


A execuo (c) do exemplo utiliza trs otimizaes
Alterao da ordem de chegada Fatias de tempo Utilizao de mltiplas unidades de E/S

2.1.3 Utilizao de mltiplas unidades de E/S

O aumento do nmero de unidades de E/S pode levar a um aumento de desempenho da multiprogramao pois o escalonador pode tratar vrios pedidos de E/S ao mesmo tempo Como as unidades de E/S so unidades ativas, na prtica est se aumentando o nmero de unidades que participam do processamento paralelo, o que tende a aumentar o Speed-Up (fator de acelerao) reduzindo o tempo de resoluo do problema (no caso a execuo de vrios processos)

2.1.1 Alterao da ordem de chegada

Por uma questo de justia o sistema operacional deveria tratar as requisies pela ordem de chegada de forma que o primeiro a chegar fosse o primeiro a ser atendido e tambm a terminar a sua execuo (FIFO First In First Out) Porm em alguns casos interessante para o desempenho do sistema como um todo que esta ordem de chegada no seja respeitada (posso conseguir uma reduo no tempo mdio de atendimento das requisies tornando o sistema mais eficiente) SJF (Smallest Job First), por exemplo, evita que um processo demorado seja executado primeiro (mesmo que chegue antes) o que elevaria o tempo de atendimento dos processos restantes Sempre que so feitas alteraes na ordem de atendimento tem que se tomar cuidado para no postergar indefinidamente uma requisio (sempre passo algum na frente e acabo nunca atendendo o processo mais pesado, Poe exemplo, no caso de SJF)

2.2 Pipelines Especiais

A tcnica de pipeline se baseia na quebra de um procedimento em estgios para que possa ocorrer sobreposio temporal e, como resultado, reduo do tempo de execuo Cada um desses estgios executado por uma unidade ativa independente, e todas juntas esto atuando na resoluo de um mesmo problema (Ex: executar as instrues de um programa), ou seja, de uma certa forma pode ser considerado processamento paralelo A tcnica de pipeline s acelera a execuo de um conjunto de operaes !!! O tempo necessrio para a execuo de uma operao continua o mesmo (ou fica at um pouco maior por causa do maior controle entre os estgios) Ex: um pipeline de instrues s acelera a execuo de um programa inteiro e no a execuo de uma nica instruo

2.1.2 Fatias de tempo (time sharing)



Uma outra questo crtica relacionada a multiprogramao o tempo de resposta Pode acontecer que um processo CPU bound ganhe a CPU e demore muito para fazer E/S de forma que o escalonador no seja chamado para dar chance aos outros processos
9 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

10

Arquitetura de Computadores II - 04/08/04

Um processador RISC (Reduced Instruction Set Computer) tem um CPI (Ciclos por Instruo) perto de 1 depois que o pipeline est cheio (uma instruo fica pronta no final do pipeline a cada ciclo) A grande vantagem do uso de pipeline que se pode obter uma grande acelerao sem a necessidade que o programador altere o cdigo do programa (transparente) Como a tcnica de pipeline j foi estudada em disciplinas anteriores aqui sero tratadas apenas as tcnicas de pipeline especiais (utilizam paralelismo para acelerar a execuo das operaes) Com os pipelines especiais possvel executar, por exemplo, uma instruo em menos de um ciclo CPI (Ciclos Por Instruo) <1 ou IPC (Instrues Por CIclo) > 1 importante destacar que obviamente no possvel executar uma instruo em menos de um ciclo e que o CPI s fica menor do que 1 porque que vrias instrues so executadas ao mesmo tempo (em paralelo) de forma que o tempo mdio de execuo fique menor do que 1 Para que um CPI mdio menor do que 1 seja possvel so necessrias as seguintes condies: 1. Hardware replicado disponvel (executar instrues em paralelo) 2. Ler vrias instrues ao mesmo tempo 3. Evitar as dependncias entre essas as instrues

No pipeline superescalar de grau 3 da figura acima o IPC de 3, significando que, no melhor caso, 3 instrues ficam prontas a cada ciclo em mdia

2.2.2 Superpipeline

Processador quebra os estgios do pipeline de instruo em sub-estgios (pipeline dentro de cada estgio do pipeline original) Como o pipeline resultante acaba ficando com mais estgios (considerando os subestgios) esta tcnica tambm chamada de pipeline profundo A nmero de sub-estgios utilizados na quebra d o grau do superpipeline (no caso da figura o superpipeline tem grau 3) Em teoria, dessa forma pode-se aumentar a sobreposio do pipeline e o ritmo do sistema dado pelo tempo de execuo de um sub-estgio (que uma frao do tempo do estgio original) Esta uma forma de aumentar a freqncia do sistema mas a cada ciclo feito menos trabalho do que no pipeline original (um sub-estgio)

Vamos analisar os seguintes pipelines especiais:


Superescalar Superpipeline Super-super

Considerando que m o grau do superpipeline o CPI (Ciclos Por Instruo) terico resultante dado por:

2.2.1 Superescalar

Processador possui vrios pipelines de instruo replicados A nmero de pipelines replicados d o grau do pipeline superescalar (no caso da figura o pipeline superescalar tem grau 3) Em teoria, dessa forma pode-se processar vrios fluxos de instruo em paralelo se no ocorrer conflito entre eles (como, por exemplo, o acesso memria se todos os pipes executarem uma instruo de load hazard estrutural)

CPI =

1 m

No superpipeline de grau 3 da figura acima o CPI de 1/3 = 0.33, significando que, no melhor caso, a cada 1/3 de ciclo original uma instruo fica pronta em mdia Considerando que n o grau do superpipeline o IPC (Instrues prontas Por Ciclo) terico resultante dado por: IPC = m No superpipeline de grau 3 da figura acima o IPC de 3, significando que, no melhor caso, 3 instrues ficam prontas a cada ciclo original em mdia Esta tcnica tambm pode ser usada para balancear um pipeline se os estgios mais demorados foram quebrados em um maior nmero de sub-estgios que os mais rpidos

Considerando que n o grau do pipeline superescalar o CPI (Ciclos Por Instruo) terico resultante dado por:

CPI =

1 n

2.2.3 Pipeline Super-super



Processador possui vrios pipelines de instruo replicados e cada um deles um superpipeline (pipeline profundo) resultado da combinao das duas tcnica anteriores A nmero de superpipelines replicados multiplicado pelo nmero de sub-estgios em que forma quebrados d o grau do pipeline super-super (no caso da figura o pipeline super-super tem grau 3 * 3 = 9)
12 Arquitetura de Computadores II - 04/08/04

No pipeline superescalar de grau 3 da figura acima o CPI de 1/3 = 0.33, significando que, no melhor caso, a cada 1/3 de ciclo uma instruo fica pronta em mdia Considerando que n o grau do pipeline superescalar o IPC (Instrues prontas Por Ciclo) terico resultante dado por: IPC = n
11 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

Em teoria, dessa forma pode-se processar vrios fluxos de instruo em paralelo se no ocorrer conflito entre eles e ainda aumentar a sobreposio

2.3 Mquinas Vetoriais

Arquitetura otimizada para a execuo de operaes vetoriais (presentes, por exemplo, em aplicaes que simulam fenmenos fsicos e matemticos como simulao do tempo) O processador possui um conjunto de instrues especiais denominadas vetoriais para operaes com o tipo vetor como, por exemplo:
VADD, VMUL (V x V V) VSUM, VMAX (VS)

Considerando que n o nmero de superpilines replicados e m o nmero de subestgios em que foram quebrados o CPI (Ciclos Por Instruo) terico resultante dado por:

VSQR, VSIN (VV) SADD, SDIV (V x SV)

CPI =

1 n*m

No pipeline super-super de grau 9 da figura acima o CPI de 1/9 = 0.11, significando que, no melhor caso, a cada 1/9 do ciclo original uma instruo fica pronta em mdia Considerando que n o nmero de superpilines replicados e m o nmero de subestgios em que foram quebrados o IPC (Instrues prontas Por Ciclo) terico resultante dado por: IPC = n * m No pipeline super-super de grau 9 da figura acima o IPC de 9, significando que, no melhor caso, 9 instrues ficam prontas a cada ciclo original em mdia

Unidades lgicas e aritmticas so replicadas e implementadas com pipelines aritmticos para acelerar a execuo destas instrues vetoriais (uma operao de multiplicao ponto flutuante, por exemplo, pode ser quebrada em aproximadamente 12 estgios) Grandes bancos de registradores so utilizados para alimentar estes pipelines de forma eficiente (acabam sendo usados como caches) Exemplo de cdigo Escalar DO 100 I = 1,N 100 A(I) = B(I) + C(I) Vetorial A(1:N) = B(1:N) + C(1:N)

2.2.4 Estudo de Casos Processador Superescalar de grau 2

A figura abaixo apresenta o diagrama de blocos de um processador superescalar de grau 2

A figura abaixo apresenta a arquitetura da mquina Cray-1 (Hwang, 1985) que tem as seguintes caractersticas:
12 unidades de pipeline aritmtico 8 registradores vetoriais cada um com 64 elementos de 64 bits 10 instrues vetoriais

Para reduzir o custo 4 unidades funcionais so compartilhadas no estgio de execuo Caso o compilador verifique que uma destas unidades est livre e que uma instruo que necessite esta unidade se encontra na fila para ser executada a janela de ultrapassagem (lookahead window) utilizada para que uma terceira instruo seja executada

Csar A. F. De Rose

13

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

14

Arquitetura de Computadores II - 04/08/04

SD (Single Data) SISD SI (Single Instruction) Mquinas von Neumann convencionais MISD MI (Multiple Instruction) Sem representante (at agora)

MD (Multiple Data) SIMD Mquinas Array (CM-2, MasPar)

MIMD Multiprocessadores e multicomputadores (nCUBE, Intel Paragon, Cray T3D)

Na classe SISD (Single Instruction Single Data), um nico fluxo de instrues atua sobre um nico fluxo de dados

O fluxo de instrues (linha contnua) alimenta uma unidade de controle (C) que ativa a unidade central de processamento (P) A unidade P, por sua vez, atua sobre um nico fluxo de dados (linha tracejada), que lido, processado e reescrito na memria (M) Nessa classe, so enquadradas as mquinas von Neumann tradicionais com apenas um processador, como microcomputadores pessoais e estaes de trabalho

P
Instrues Dados

Na classe MISD (Multiple Instruction Single Data), mltiplos fluxos de instrues atuariam sobre um nico fluxo de dados

3 PARALELISMO EM ARQUITETURAS COM MLTIPLOS PROCESSADORES


3.1 Classificao de Flynn (fluxo de instrues / fluxo de dados)

Para uma classificao inicial de arquiteturas paralelas, pode ser usada a classificao genrica de Flynn Apesar de ter sua origem em meados dos anos 70, ainda vlida e muito difundida. Baseando-se no fato de um computador executar uma seqncia de instrues sobre uma seqncia de dados, diferenciam-se o fluxo de instrues (instruction stream) e o fluxo de dados (data stream). Dependendo de esses fluxos serem mltiplos ou no, e atravs da combinao das possibilidades, Flynn props quatro classes:
15 Arquitetura de Computadores II - 04/08/04

Mltiplas unidades de processamento P, cada uma com sua unidade de controle prpria C, recebendo um fluxo diferente de instrues Essas unidades de processamento executam suas diferentes instrues sobre o mesmo fluxo de dados Na prtica, diferentes instrues operam a mesma posio de memria ao mesmo tempo, executando instrues diferentes Como isso, at os dias de hoje, no faz qualquer sentido, alm de ser tecnicamente impraticvel, essa classe considerada vazia

Csar A. F. De Rose

Csar A. F. De Rose

16

Arquitetura de Computadores II - 04/08/04

unidade de controle C recebe um fluxo de instrues prprio e repassa-o para sua unidade processadora P para que seja executado sobre um fluxo de instrues prprio

C C

P P

M M

Dessa forma, cada processador executa o seu prprio programa sobre seus prprios dados de forma assncrona Sendo assim, o princpio MIMD bastante genrico, pois qualquer grupo de mquinas, se analisado como uma unidade (executando, por exemplo, um sistema distribudo), pode ser considerado uma mquina MIMD Nesse caso, como na classe SIMD, para que o processamento das diferentes posies de memria possa ocorrer em paralelo, a unidade de memria M no pode ser implementada como um nico mdulo de memria, o que permitiria s uma operao por vez Nessa classe, enquadram-se servidores com mltiplos processadores (dual, quad), as redes de estaes e mquinas como CM-5, nCUBE, Intel Paragon e Cray T3D

P
Instrues Dados

As mquinas paralelas concentram-se nas duas classes restantes, SIMD e MIMD No caso SIMD (Single Instruction Multiple Data), uma nica instruo executada ao mesmo tempo sobre mltiplos dados.

O processamento controlado por uma nica unidade de controle C, alimentada por um nico fluxo de instrues A mesma instruo enviada para os diversos processadores P envolvidos na execuo. Todos os processadores executam suas instrues em paralelo de forma sncrona sobre diferentes fluxos de dados Na prtica, pode-se dizer que o mesmo programa est sendo executado sobre diferentes dados, o que faz com que o princpio de execuo SIMD assemelhe-se bastante ao paradigma de execuo seqencial importante ressaltar que, para que o processamento das diferentes posies de memria possa ocorrer em paralelo, a unidade de memria M no pode ser implementada como um nico mdulo de memria, o que permitiria s uma operao por vez Nessa classe, so enquadradas as mquinas Array como CM-2 e MasPar.

C C

P P

M M

P
Instrues Dados

3.2 Classificao segundo o compartilhamento de memria



Um outro critrio para a classificao de mquinas paralelas o compartilhamento da memria Quando se fala em memria compartilhada (shared memory), existe um nico espao de endereamento que ser usado de forma implcita para comunicao entre processadores, com operaes de load e store Quando a memria no compartilhada, existem mltiplos espaos de endereamento privados (multiple private address spaces), um para cada processador. Isso implica comunicao explcita atravs de troca de mensagens com operaes send e receive Memria distribuda (distributed memory), por sua vez, refere-se localizao fsica da memria. Se a memria implementada com vrios mdulos, e cada mdulo foi colocado prximo de um processador, ento a memria considerada distribuda. Outra alternativa o uso de uma memria centralizada (centralized memory), ou seja, a memria encontra-se mesma distncia de todos os processadores, independentemente de ter sido implementada com um ou vrios mdulos Dependendo de uma mquina paralela utilizar-se ou no de uma memria compartilhada por todos os processadores, pode-se diferenciar:
18 Arquitetura de Computadores II - 04/08/04

P C P

M M

P
Instrues Dados

Enquanto, em uma mquina SIMD, s um fluxo de instrues, ou seja, s um programa, est sendo executado, em uma mquina MIMD (Multiple Instruction Multiple Data), cada
17 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

Multiprocessadores Multicomputadores

3.2.1 Multiprocessadores

Todos os processadores P acessam, atravs de uma rede de interconexo, uma memria compartilhada M Esse tipo de mquina possui apenas um espao de endereamento, de forma que todos os processadores P so capazes de enderear todas as memrias M

Rede de Interconexo

Acesso no uniforme memria (non-uniform memory access, NUMA)

A memria usada nessas mquinas distribuda, implementada com mltiplos mdulos que so associados um a cada processador O espao de endereamento nico, e cada processador pode enderear toda a memria do sistema Se o endereo gerado pelo processador encontrar-se no mdulo de memria diretamente ligado a ele, dito local, o tempo de acesso a ele ser menor que o tempo de acesso a um mdulo que est diretamente ligado a outro processador, dito remoto, que s pode ser acessado atravs da rede de interconexo Por esse motivo, essas mquinas possuem um acesso no uniforme memria (a distncia memria no sempre a mesma e depende do endereo desejado)
espao de endereamento

Rede de Interconexo

A comunicao entre processos feita atravs da memria compartilhada de forma bastante eficiente com operaes do tipo load e store Essas caractersticas resultam do fato de esse tipo de mquina paralela ser construda a partir da replicao apenas do componente processador de uma arquitetura convencional (destacados com uma moldura mais escura na figura). Da o nome mltiplos processadores Em relao ao tipo de acesso s memrias do sistema, multiprocessadores podem ser classificados como:

M P

M P

M P

M P

M P

M P

M P

M P

UMA NUMA COMA

Rede de Interconexo
Arquiteturas de memria somente com cache (cache-only memory architecture, COMA)

Acesso uniforme memria (uniform memory access, UMA)

A memria usada nessas mquinas centralizada e encontra-se mesma distncia de todos os processadores, fazendo com que a latncia de acesso memria seja igual para todos os processadores do sistema (uniforme) Como o barramento a rede de interconexo mais usada nessas mquinas e suporta apenas uma transao por vez, a memria principal normalmente implementada com um nico bloco. importante ressaltar que mquinas com outras redes de interconexo e com memrias entrelaadas (implementadas com mltiplos mdulos e, dessa forma, permitindo acesso paralelo a diferentes) tambm se enquadram nessa categoria se mantiverem o tempo de acesso memria uniforme para todos os processadores do sistema

Em uma mquina COMA, todas as memrias locais esto estruturadas como memrias cache e so chamadas de COMA caches. Essas caches tm muito mais capacidade que uma cache tradicional Arquiteturas COMA tm suporte de hardware para a replicao efetiva do mesmo bloco de cache em mltiplos ns fazendo com que essas arquiteturas sejam mais caras de implementar que as mquinas NUMA

Csar A. F. De Rose

19

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

20

Arquitetura de Computadores II - 04/08/04

P C

P C

P C

P C

P C

P C

P C

P C

3.2.3 Viso geral da classificao segundo o compartilhamento de memria

A figura abaixo apresenta uma viso geral da classificao segundo o compartilhamento de memria:
UMA (memria central) Multiprocessadores (espao de endereamento nico) MIMD

Rede de Interconexo

COMA NUMA (memria distribuda) CCNUMA NCCNUMA SCNUMA NORMA

3.2.2 Multicomputadores

Cada processador P possui uma memria local M, qual s ele tem acesso As memrias dos outros processadores so consideradas memrias remotas e possuem espaos de endereamento distintos (um endereo gerado por P1 s capaz de enderear M1) Como no possvel o uso de variveis compartilhadas nesse ambiente, a troca de informaes com outros processos feita por envio de mensagens pela rede de interconexo Por essa razo, essas mquinas tambm so chamadas de sistemas de troca de mensagens (message passing systems) Essas caractersticas resultam do fato de esse tipo de mquina paralela ser construdo a partir da replicao de toda a arquitetura convencional (destacadas com uma moldura mais escura na figura abaixo), e no apenas do componente processador como nos multiprocessadores (da o nome mltiplos computadores)
Multicomputadores (mltiplos espaos de endereamento)

A linha tracejada indica que as mquinas das classes NCC-NUMA e norma podem ser transformadas em mquinas SC-NUMA atravs da incluso de uma camada de software que implemente coerncia de cach

3.3 Tendncias na Construo de Mquinas Paralelas



A seguir sero apresentadas as principais tendncias para a construo de mquinas paralelas [De Rose, 2003] Pode ser considerada uma classificao mais comercial que as classificaes apresentadas anteriormente Segundo a classificao de Flynn, todos os modelos aqui apresentados pertencem classe MIMD

P M

P M

P M

P M

P M

P M

P M

P M

3.3.1 Multiprocessadores simtricos (SMP)


Multiprocessadores simtricos (SMP - Symmetric Multiprocessors) so sistemas constitudos de processadores comerciais, tambm denominados de prateleira (of the shelf), conectados a uma memria compartilhada (MC), na maioria dos casos atravs de um barramento Como a maioria dos processadores comerciais encontrados no mercado utiliza-se amplamente de memrias cache, tanto no chip quanto fora dele, os processadores foram representados na figura por P/C Como conseqncia, o barramento utilizado nessas mquinas implementa coerncia de cache atravs do protocolo snoopy

Rede de Interconexo

Em relao ao tipo de acesso s memrias do sistema, multicomputadores podem ser classificados como:

NORMA

Sem acesso a variveis remotas (non-remote memory access, NORMA)

P/C

P/C

P/C

P/C

Como uma arquitetura tradicional inteira foi replicada na construo dessas mquinas, os registradores de endereamento de cada n s conseguem enderear a sua memria local

Barramento / Matriz de chaveamento MC MC


22

MC
Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

21

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

O adjetivo simtrico refere-se ao fato de que todos os processadores tm acesso igual ao barramento e memria, no ocorrendo privilgios por parte do sistema operacional a nenhum dos processadores no atendimento de requisies Devido existncia de uma memria compartilhada por todos os processadores, o que caracteriza essas mquinas como multiprocessadores, o paradigma natural de comunicao nesses sistemas o de memria compartilhada Por se tratar de um paradigma mais prximo da programao feita em sistemas convencionas, a programao desses sistemas considerada mais fcil do que em mquinas que se comunicam por troca de mensagens Programas que definem mltiplos fluxos de execuo, por exemplo, aproveitam-se automaticamente dos mltiplos processadores desse tipo de sistema (por exemplo, programas Java que possuam vrias threads). Um fator que compromete a escalabilidade dessas mquinas o uso de um barramento como rede de interconexo O barramento impede a construo de multiprocessadores simtricos com um grande nmero de processadores por se tratar de um canal compartilhado que s permite uma transao por vez. Isso faz com que o seu desempenho e, conseqentemente, o desempenho global das mquinas caia, medida que aumenta a disputa por seu acesso (ou seja, que aumenta o nmero de processadores ligados a ele). As maiores mquinas SMP encontradas hoje no mercado possuem em torno de 100 processadores So exemplos de SMP: IBM R50, SGI Power Challenge, SUN Ultra Enterprise 10000, HP/Convex Exemplar X-Class e DEC Alpha Server 8400

Redes tradicionais como Ethernet no so otimizadas para as operaes de comunicao de uma aplicao paralela. O resultado uma alta latncia nessas operaes, a qual compromete o desempenho da mquina como um todo Na prtica, devido ao baixo desempenho da rede de interconexo, mquinas NOW so utilizadas como ambientes de ensino de processamento paralelo e distribudo ou na execuo de aplicaes em que a comunicao entre os ns no muito intensa O exemplo mais comum de NOW so estaes de trabalho interligadas por tecnologia Ethernet

3.3.3 Mquinas agregadas (COW)



Mquinas agregadas (COW Cluster of Workstations) podem ser vistas como uma evoluo das redes de estaes de trabalho (NOW) Como as NOW, tambm so constitudas por vrias estaes de trabalho interligadas, mas com a diferena de terem sido projetadas com o objetivo de executar aplicaes paralelas Dessa forma, a mquina pode ser otimizada para esse fim e, na maioria dos casos, as estaes que servem de n no possuem monitor, teclado e mouse, sendo denominadas estao de trabalho sem cabea (headless wokstation) A mquina resultante tambm chamada de pilha de computadores pessoais (Pileof-PCs). Mas as principais otimizaes so feitas no software. Como essas estaes no sero usadas localmente, o sistema operacional pode ser enxugado, e vrios servidores, desabilitados Vrias camadas de rede podem ser simplificadas, ou at mesmo totalmente eliminadas, pois as necessidades de comunicao em mquinas paralelas so diferentes das necessidades em redes locais Uma COW pode ser vista como uma NOW dedicada ao processamento paralelo e distribudo [De Rose, 2003] J que o sistema est sendo concebido para se dedicar execuo de aplicaes paralelas, a rede de interconexo tambm pode ser otimizada para esse fim. Aqui encontramos atualmente duas tendncias:

3.3.2 Redes de estaes de trabalho (NOW)

Redes de estaes de trabalho (NOW Network of Workstations) so sistemas constitudos por vrias estaes de trabalho interligadas por tecnologia tradicional de rede como Ethernet Na prtica, uma rede local de estaes que j existe utilizada na execuo de aplicaes paralelas Sob o prisma das arquiteturas paralelas, a rede local pode ser vista como uma mquina paralela em que vrios processadores, com suas memrias locais (estaes de trabalho), so interligados por uma rede, constituindo assim uma mquina NORMA de baixo custo (ou sem qualquer custo, caso a rede j exista) A figura abaixo apresenta a arquitetura dessas mquinas
P/C
barramento barramento

Agregados interligados por redes padro Esta tendncia impulsionada pelos grandes fabricantes como HP, IBM e Dell, que esto interessados na construo de mquinas paralelas poderosas, agregando milhares de estaes de trabalho de baixo custo (low end). Para a interligao de tantas mquinas, fica muito caro investir em uma rede especial, sendo usada, para esse fim, uma rede padro como a rede Ethernet. O enfoque aqui a obteno de desempenho com muitos ns de pequeno poder computacional e, de preferncia, com aplicaes que no tenham muita necessidade de comunicao

P/C ML A
barramento

P/C ML A

ML A

Agregados interligados por redes de baixa latncia Esta tendncia impulsionada por pequenas empresas que fabricam placas de interconexo especificamente para mquinas agregadas. Essas placas implementam protocolos de rede de baixa latncia otimizados para as caractersticas de comunicao de aplicaes paralelas. Como o custo dessas placas mais alto do que o de placas de rede padro, fica muito caro construir mquinas com muitos ns (mais do que algumas centenas de ns). Para

DL

AR

DL

AR

DL

AR

Rede padro (Ethernet, ATM)


Csar A. F. De Rose 23 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

24

Arquitetura de Computadores II - 04/08/04

compensar o menor nmero de ns, so usados ns mais poderosos, muitas vezes servidores de mdio porte com vrios processadores (multiprocessadores SMP)

O entrelaamento de endereos entre M mdulos de memria chamado de entrelaamento de M-vias

A figura abaixo apresenta a arquitetura dessas mquinas. A diferena para a arquitetura de uma NOW muito pequena, j que se trata de uma evoluo do mesmo princpio. A principal diferena que a rede de interconexo utilizada pode ser tanto padro como uma rede de baixa latncia:

P/C
barramento barramento

P/C
barramento

P/C
(a) Bloco nico (b) Entrelaada

P/C ML A

P/C ML A

P/C ML A

importante destacar que de nada adianta a quebra da memria principal em vrios mdulos se a rede de interconexo utilizada na mquina no suporta mltiplas transaes Uma mquina UMA, por exemplo, que se utilize de um barramento para ligar os processadores memria principal, no se beneficia dos mltiplos canais de uma memria entrelaada, j que o prprio barramento o gargalo

DL

AR

DL

AR

DL

AR

3.5 Redes de Interconexo

A forma como os processadores de uma arquitetura so ligados entre si e com outros componentes do sistema (normalmente com a(s) memria(s)) dada pela rede de interconexo Nas duas principais classes de arquiteturas vistas acima, a rede de interconexo desempenha um papel muito importante: nos multiprocessadores, ela pode ajudar a amenizar o problema dos conflitos de acesso, e em multicomputadores, ela influencia diretamente a eficincia da troca de informaes As redes de interconexo se dividem em dois grandes grupos:

Rede padro / Rede de baixa latncia



Entre as principais vantagens na utilizao de agregados, temos: tima relao custo benefcio, alta configurabilidade e baixo custo de manuteno So exemplos de COW o iCluster do HP Labs de Grenoble com rede Fast-Ethernet, o Primergy Server do PC2 em Paderborn com rede rpida SCI e a mquina Amaznia do CPAD com rede rpida Myrinet

Estticas Dinmicas

3.4 Organizao da Memria Principal

Em uma mquina paralela, a memria principal tem um papel fundamental, como vimos na seo de classificaes, especialmente em multiprocessadores onde compartilhada por todos os processadores necessrio que se tenha cuidado na escolha do tipo de organizao de memria para que se evite uma drstica degradao de desempenho causada por dois ou mais processadores tentando acessar os mesmos mdulos do sistema de memria

3.5.1 Redes estticas

Se os componentes da mquina (processadores, memrias) esto interligados atravs de ligaes fixas, de forma que, entre dois componentes, exista uma ligao direta dedicada, a rede de interconexo denominada esttica (ponto-a-ponto) Redes estticas so utilizadas, na maioria dos casos, em multicomputadores. Nesse caso, a topologia (estrutura da interligao) determina as caractersticas da rede Mquinas paralelas possuem quase sempre estruturas regulares com ligaes homogneas, enquanto sistemas distribudos, por causa da posio geogrfica e de sua integrao gradual, possuem estruturas irregulares com ligaes heterogneas (ligaes heterogneas entre redes locais) Os principais critrios para a avaliao de uma topologia so o nmero total de ligaes entre componentes, quantas ligaes diretas cada componente possui (grau do n) e a maior distncia entre dois componentes quaisquer da rede (dimetro) O grau do n pode ser constante ou variar de acordo com o nmero total de ns da rede (por exemplo, em uma rede em forma de estrela)

3.4.1 Memrias entrelaadas

No desejvel que a memria principal seja implementada por um nico mdulo de forma monoltica mas sim particionada em vrios mdulos independentes com um espao de endereamento nico distribudo entre eles Essa forma de implementao chamada de entrelaamento (interleaving) e atenua a interferncia entre processadores no acesso memria, permitindo acessos concorrentes a diferentes mdulos

Csar A. F. De Rose

25

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

26

Arquitetura de Computadores II - 04/08/04

Para cada ligao que um componente possui, necessria uma interface fsica correspondente (porta), o que aumenta consideravelmente o custo do componente para muitas ligaes Em relao ao custo, o melhor caso seria uma rede com um grau de n baixo e constante A estrutura com a menor conectividade (relao entre o nmero ligaes e o nmero de ns) o anel:

O grau do n constante e igual a 4 (se no forem consideradas as bordas da malha), possibilitando facilmente um aumento do nmero de processadores em qualquer uma das dimenses (incluso de linhas ou de colunas) e resultando em uma boa escalabilidade Malhas no precisam necessariamente ser quadradas como na figura, podendo uma das dimenses ser menor do que a outra, resultando em diferentes retngulos (o que pode ser vantajoso no caso da escalabilidade, pois permite o aumento do nmero de processadores em mltiplos da menor dimenso) O dimetro da malha cresce proporcionalmente raiz quadrada do nmero de ns, e a existncia de caminhos alternativos entre ns aumenta a confiabilidade da rede e diminui o risco de gargalos. Malhas so adequadas aos problemas nos quais uma estrutura de dados bidimensional tem que ser processada de forma particionada Muitos problemas atuais, que necessitam de grande poder de processamento, possuem essas caractersticas, como, por exemplo, operaes com matrizes, processamento de imagens e equaes diferenciais Malhas tambm podem ter mais de duas dimenses (d >2). O grau do n , nesses casos, 2d Uma ateno especial vem sendo dada s estruturas tridimensionais, pois cada vez mais aplicaes que necessitam de alto desempenho modelam aspectos fsicos do nosso mundo tridimensional. Alguns exemplos so: previso do tempo, simulao de partculas e aerodinmica

Com um grau de n constante igual a 2, o seu custo baixo, mas seu dimetro cresce de forma linear em relao ao nmero total de ns Se todos os processadores necessitarem trocar dados entre si, pode ocorrer uma sobrecarga do anel, o que acarretaria atraso na transferncia dos dados Outra desvantagem do anel a falta de caminhos alternativos entre os ns, o que resulta em uma baixa confiabilidade

O outro extremo, em relao ao anel, a topologia totalmente conectada, com um grau de n igual ao nmero de ns e um crescimento quadrtico do nmero de conexes em relao ao nmero de ns, mas com o dimetro ideal de 1 Outro fator que pode ser decisivo na escolha de uma topologia, alm da relao custo/desempenho, sua adequao a uma classe especfica de algoritmos No caso ideal, o padro de interconexo da topologia corresponde exatamente ao padro de comunicao da aplicao paralela que executa na mquina A rvore binria, por exemplo, favorece a execuo de algoritmos de diviso e conquista (divide and conquer)

O seu dimetro cresce de forma linear em relao altura h da rvore A(h) e de forma logartmica em relao ao nmero de ns Outras caractersticas das rvores binrias so o seu grau de n mximo de 3 (a raiz tem grau igual a 2) e sua baixa confiabilidade, j que a falha de um n resulta na perda da ligao com toda a subrvore abaixo dele (particionamento da estrutura) Mesmo que no ocorram falhas, o uso de rvores pode-se tornar problemtico, pois todo o fluxo de dados entre a subrvore esquerda e a direita tem que passar pela raiz, a qual se torna rapidamente o gargalo da rede

3.5.2 Redes dinmicas



Na interconexo de componentes com redes dinmicas, no existe uma topologia fixa que defina o padro de comunicao da rede Quando uma conexo entre dois pontos faz-se necessria, a rede de interconexo adapta-se dinamicamente para permitir a transferncia dos dados Uma rede dinmica dita bloqueante quando uma conexo estabelecida entre dois pontos P1 e P2 impede o estabelecimento de outra conexo entre componentes quaisquer que no P1 e P2 Em uma rede dinmica unilateral, cada componente possui uma ligao bidirecional com a rede. No caso de uma rede dinmica bilateral, cada componente possui uma ligao de envio e outra de recebimento Enquanto as redes estticas vistas at agora so utilizadas na maioria dos casos na interconexo de ns de multicomputadores, redes dinmicas, por sua vez, so tipicamente responsveis pela interligao de processadores com memrias em multiprocessadores. Algumas redes dinmicas so tambm empregadas em multicomputadores Para facilitar sua anlise, as redes dinmicas foram divididas em trs grupos de acordo com suas caractersticas:

Uma topologia muito utilizada em mquinas paralelas a malha bidimensional M(x,y), podendo ter as bordas no conectadas (a) ou ter bordas conectadas de forma cclica, formando um torus bidimensional (b):

(a) Malha

(b) Torus

Barramento Matriz de chaveamento Redes multinvel


28 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

27

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Barramento

Redes Multinvel

Dentre as redes dinmicas, o barramento a alternativa de menor custo Porm, por tratar-se de um canal compartilhado por todas as conexes possveis, tem baixa tolerncia a falhas (baixa confiabilidade) e altamente bloqueante Sendo assim, acaba tendo sua escalabilidade comprometida, sendo utilizado em multiprocessadores com um nmero moderado de processadores (em torno de 100) As duas deficincias podem ser amenizadas com o uso de vrios barramentos em paralelo
P P P P P P

Uma outra aplicao para redes hierrquicas de matrizes de chaveamento a construo de redes de permutao multinvel A idia bsica a ligao de pequenas matrizes de chaveamento (normalmente de tamanho 2 2) em vrios nveis consecutivos e conect-las de forma a reduzir a probabilidade de conflitos entre conexes de diferentes pares Diferentemente das redes estticas, a latncia, nesse tipo de rede, igual para qualquer par comunicante, crescendo, porm, de forma logartmica de acordo com o nmero de possveis conexes As matrizes chaveadoras presentes na maioria das redes multinvel tm tamanho 2 2 e permitem no mnimo 2 e, na maioria das vezes, 4 posies de chaveamento:

M
(a) (b) (c) (d)

(a) Barramento nico

(b) Barramento mltiplo

A figura abaixo mostra um exemplo de rede multinvel denominada Omega:


Matriz de Chaveamento

O nmero de linhas dado pela metade do nmero de possveis componentes n, o nmero de nveis de log2n, e, no total, (n/2) log2n matrizes de chaveamento so utilizadas
000 001 010 011 100 101 000 001 010 011 100 101 110 111

A rede dinmica de maior custo a matriz de chaveamento (crossbar switch), que permite o chaveamento entre dois componentes quaisquer, desde que estes no se encontrem j ocupados Uma matriz de chaveamento pode ser usada como rede unilateral para ligar processadores a memrias em um multiprocessador (a) ou como rede bilateral para interligar processadores de um multicomputador (b):

M P P P P P P

M P P P P P P

110 111

Nessa rede, existe apenas um caminho possvel entre uma entrada e uma sada Sendo assim, a escolha do caminho muito eficiente e pode ser feita de forma descentralizada Porm, por causa dessa falta de redundncia, a rede bloqueante

3.5.3 Roteamento de Mensagens


(a) Unilateral (b) Bilateral

A matriz de chaveamento no bloqueante e tem uma escalabilidade boa, permitindo o acrscimo de componentes aos pares O alto custo, que cresce de forma quadrtica em relao ao nmero de componentes interligados, inviabiliza, por razes econmicas, a sua utilizao para a interconexo de muitos processadores

muito comum que na construo de mquinas paralelas, por motivos de custo, sejam utilizadas redes de interconexo que no possuem ligaes diretas entre todos os componentes de um sistema Sendo assim, uma mensagem, para chegar ao seu destino, pode precisar trafegar por ns intermedirios dado o nome de roteamento ao procedimento de conduo de uma mensagem, atravs de ns intermedirios, at seu destino
30 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

29

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Todos os ns envolvidos nessa conduo participam do roteamento, identificando se a mensagem j chegou ao seu destino e, se no for o caso, reenviando-a para um prximo n Fora o n destino, todos os outros ns envolvidos nesse procedimento decidem o caminho seguido pela mensagem atravs da rede de interconexo e so chamados de ns roteadores Existem duas formas bsicas de conduzir uma mensagem ao seu n destino:

no se preocupando com a existncia de outras cpias da mesma posio em outros processadores

Se essas cpias existirem, cpias de um mesmo endereo de memria podero possuir valores diferentes, o que caracteriza uma situao de inconsistncia de dados Outra alternativa para eliminar completamente o problema seria no permitir que dados compartilhados para operaes de escrita sejam colocados nas caches do sistema

Chaveamento de circuito Chaveamento de pacotes

Nas redes de telecomunicaes, tradicionalmente usado o chaveamento de circuito (circuit switching), pelo qual, inicialmente, estabelecido um caminho fixo da origem ao destino, e s depois so enviadas todas as mensagens

Nesse caso, somente instrues e dados privados so cacheable (passveis de serem colocados na cache), e dados compartilhados so considerados noncacheable O compilador fica responsvel pela colocao da respectiva etiqueta (tag) nos dados para que os mecanismos de cpia de dados entre os nveis da hierarquia de memria estejam cientes de quais os dados que devem ser repassados diretamente ao processador sem passar pelas caches privadas

Esse estabelecimento de conexo tem naturalmente um custo associado, que, no caso das telecomunicaes, pequeno em relao durao da chamada Essa forma de roteamento usada por poucas mquinas paralelas, pois a comunicao entre dois ns, nesses casos, tem pouca durao (mensagens pequenas) Sendo assim, o estabelecimento da conexo teria uma representatividade significativa no tempo total de comunicao, e a reserva de circuitos na rede para poucas mensagens subutilizaria os canais reservados e poderia ainda atrasar o estabelecimento de outras conexes

Em multicomputadores, esse problema no ocorre, j que cada n possui uma hierarquia de memria inteira associada sua memria local, e no existe um espao de endereamento global compartilhado por todos os ns DEFINIO:

Mais comum em mquinas paralelas o chaveamento de pacotes (packet switching) onde no existe caminho pr-definido, mas cada mensagem decide, a cada n, qual a direo que ir seguir na rede

Sendo assim, uma arquitetura multiprocessada com caches privadas em cada processador coerente se e somente se uma leitura de uma posio x de memria efetuada por qualquer processador i retorne o valor mais recente desse endereo Ou seja, toda vez que uma escrita for efetuada por um processador i em um endereo de memria x, tem que ser garantido que todas as leituras subseqentes de x, independentemente do processador, forneam o novo contedo de x

Isso elimina o custo inicial de estabelecimento de circuito, mas embute um custo adicional para o roteamento de cada mensagem em cada um dos ns visitados Duas grandes vantagens do chaveamento de pacotes que tornam esse tipo de roteamento atrativo para mquinas paralelas so a inexistncia de uma reserva de canais da rede para uma nica operao de comunicao e o estabelecimento dinmico do caminho a ser seguido por uma mensagem O estabelecimento dinmico do caminho, por sua vez, pode permitir que os algoritmos de roteamento reajam mais rapidamente a congestionamentos e falhas na rede de interconexo, optando por caminhos alternativos

3.6.1 O problema da inconsistncia de dados

imprescindvel que o resultado de um programa composto por mltiplos processos no seja diferente quando o programa roda em vrios processadores, do que quando roda em apenas um, utilizando-se de multiprogramao Porm, quando dois processos compartilham a mesma memria atravs de caches diferentes, existe o risco de que uma posio de memria, em um determinado momento, no possua mais o valor mais recente desse dado As causas mais comuns desse tipo de inconsistncia de dados sero detalhadas abaixo e so:

3.6 Coerncia de Cache (cache coherence)

muito comum que as mquinas paralelas atuais sejam construdas com processadores produzidos em larga escala com o objetivo de reduzir os custos de projeto Dessa fora as mquinas paralelas com mltiplos processadores acabam por incorporar caches em suas arquiteturas Porm a presena de caches privadas em multiprocessadores necessariamente introduz problemas de coerncia de cache (cache coherence [Hwang 93,98]) Como mltiplas cpias de uma mesma posio de memria podem vir a existir em caches diferentes ao mesmo tempo, cada processador pode atualizar sua cpia local,
31 Arquitetura de Computadores II - 04/08/04

Inconsistncia no compartilhamento de dados Inconsistncia na migrao de processos Inconsistncia de E/S

Inconsistncia no compartilhamento de dados:

Os processadores P1, P2 e P3 possuem caches privadas e esto interconectados a uma memria principal compartilhada atravs de um barramento. Eles efetuam uma seqncia de acessos posio de memria u
32 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

Inicialmente, P1 tenta ler u de sua cache. Como u no est presente, o dado lido da memria principal e copiado para sua cache. Na seqncia, P3 faz o mesmo, gerando tambm uma cpia de u em sua cache. Ento P3 efetua uma escrita em u e altera o contedo da posio de 5 para 7 Quando P1 efetuar uma leitura de u novamente, ele recebe o contedo da posio u que se encontra em sua cache, ou seja, 5, e no o valor mais recente de u, que 7
P1 Cache u: 5 P2 Cache 5 P3 Cache u: 5

Inconsistncia de E/S

Problemas de inconsistncia de dados tambm podem ocorrer durante operaes de E/S que faam acesso direto memria principal (DMA - Direct Memory Acces [Weber 2000]) Operaes de E/S desse tipo tm como origem ou destino memria principal, e no se preocupam se os dados em questo esto sendo compartilhados por vrios processadores, com possveis cpias em diferentes caches privadas Sendo assim, quando uma controladora de E/S carrega um dado x' (atualizando o valor x que tinha sido escrito na memria principal por write-through) em uma posio da memria principal, ocorre inconsistncia de dados entre x' e as cpias dessa posio de memria nas caches privadas dos processadores P1 e P2 que possuem o antigo valor x Quando um valor lido da memria principal em uma operao de E/S, e as caches atualizam essa memria com a poltica de write-back, tambm pode ocorrer inconsistncia de dados. Basta, para isso, que o valor atual das cpias dessa posio de memria nas caches privadas dos processadores P1 e P2 ainda no tenha sido substitudo e, portanto, ainda no tenha sido copiado para a memria principal

u=? 4

u=?

u=7 3

1 M u: 5

3.6.2 Estratgias de coerncia de cache


Vale destacar que esse problema ocorre independentemente da poltica de atualizao da memria principal utilizada pela cach No caso de uma poltica de write-through (escrever atravs), em que, a cada escrita na cache, a posio da memria principal atualizada tambm, a alterao de P3 teria sido repassada tambm memria principal, o que no impediria P1 de ler o valor menos recente de u de sua cach Em se tratando da poltica write-back (escrever de volta), a situao seria ainda pior, pois a alterao de P3 teria apenas marcado o bloco de u na cache como sujo (atravs de seu dirty-bit), e a memria principal no seria atualizada imediatamente. Somente em uma eventual substituio desse bloco na cache que a memria principal seria atualizada. Se P2 efetuasse uma leitura em u nesse meio-tempo, copiaria para sua cache o valor menos recente de u (valor 5)

Como vimos at agora, o problema da coerncia de cache resume-se ao fato de que, em um determinado momento, possam existir simultaneamente mltiplas cpias de um mesmo dado da memria principal o qual pode ser alterado localmente sem que se faa algo em relao s outras cpias (o que geraria inconsistncia de dados) Ou seja, o problema de coerncia de cache seria resolvido se essa inconsistncia de dados fosse eliminada. Isso pode ser obtido atravs de duas estratgias bsicas:

Uma operao de escrita em uma posio da cache resulta na atualizao de outras cpias desse mesmo dado em outras caches do sistema (write-update) Uma operao de escrita em uma posio da cache resulta na invalidao de outras cpias desse mesmo dado em outras caches do sistema (write-invalidate)

As duas estratgias resolvem o problema, impedindo que sejam geradas mltiplas cpias diferentes da mesma posio de memria A estratgia de invalidao tem um custo menor, mas resulta em uma maior latncia de acesso caso as cpias invalidadas (eliminadas da cache) sejam novamente acessadas, o que resultaria em uma busca na memria principal A atualizao das cpias tem naturalmente um custo mais alto, especialmente em mquinas com muitos processadores (e muitas cpias potenciais de um mesmo endereo), mas faz com que um novo acesso a essas cpias seja resolvido em nvel de cache (menor latncia) A questo de qual das estratgias acima resulta em melhor desempenho para o sistema como um todo est diretamente ligada ao padro de compartilhamento da carga de trabalho, ou seja, dos programas que executam na mquina:

Inconsistncia na migrao de processos:

Quando um processo perde o processador por causa de uma operao de E/S, no existe qualquer garantia de que ele v retornar sua execuo no mesmo processador de uma mquina multiprocessada O escalonador do sistema associar esse processo a um dos processadores livres segundo sua poltica de escalonamento quando a operao de E/S estiver concluda Isso faz com que, muitas vezes, o processo volte a executar em outro processador perdendo as informaes de sua antiga cache
33 Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

Csar A. F. De Rose

34

Arquitetura de Computadores II - 04/08/04

Se os processadores que estavam usando as cpias antes de serem atualizadas fizerem novos acessos a esses dados, o custo das atualizaes vai ter valido a pena Se os processadores no utilizarem esses dados novamente, o trfego gerado pelas atualizaes s onerou a rede de interconexo e no teve utilidade. Nesse segundo caso, a invalidao eliminaria as cpias antigas e acabaria com uma situao de compartilhamento aparente

8. Desenhe as arquiteturas NORMA e NUMA. Os desenhos so muito parecidos. Onde esta a diferena significativa entre elas? 9. De um exemplo de mquina para a classe MISD de Flynn. 10. O que significa bloqueante, no contexto de redes de interconexo? 11. Mostre que a rede abaixo bloqueante fixando um caminho e mostrando outro que no podem ser utilizado ao mesmo tempo (considerando chaveamento de circuito).

Um fenmeno que onera bastante a estratgia de atualizaes denominado "pack rat". Ele uma conseqncia da migrao de processos executada pelo sistema operacional durante a multiprogramao. Quando um processo perde o processador por causa de uma operao de E/S, ele pode voltar a executar em outro processador, dependendo da disponibilidade dos recursos do sistema naquele momento e da poltica empregada pelo escalonador do sistema operacional. Nesse caso, alm de no poder acessar mais os dados de sua antiga cache e ter que busc-los novamente da memria principal, os dados antigos continuam sendo atualizados em vo at que sejam eliminados da cache antiga por alguma poltica de substituio de blocos (como, por exemplo, LRU - Least Recent Used [Stallings 1998], que elimina da cache os blocos menos recentemente usados). Como muito fcil construir casos nos quais uma determinada estratgia vai desempenhar melhor que a outra e vice-versa, alguns autores propem como alternativa que as duas estratgias sejam implementadas em hardware e que o sistema permita a troca entre atualizao e invalidao dinamicamente em tempo de execuo O momento da troca pode ser:

12. Como uma rede crossbar pode ser usada para a construo de um multicomputador (desenhe). 13. Desenhe uma rede esttica para interligar 7 processadores que possuam grau 4. 14. O que acontece se 2 processadores de um multiprocessador escreverem ao mesmo tempo na mesma posio de memria?

Determinado pelo programador atravs de uma chamada de sistema Seguir uma certa probabilidade altervel na configurao do sistema Depender do padro de acesso observado em tempo de execuo

4 EXERCCIOS
1. Defina processamento paralelo. 2. Como a multiprogramao acelera a execuo de um grupo de programas mesmo em uma mquina com apenas um processador? 3. Desenhe o comportamento do Speed-Up real e do Speed-Up ideal para uma aplicao paralela. Por que existe diferena entre estas linhas? Por que esta diferena com o aumento do nmero de processadores? 4. Explique o conceito de pipeline superescalar. Qual o seu CPI terico. Indique dois problemas ligados a este conceito. 5. Quais so as duas possibilidades para se construir mquinas com vrios processadores ? Que nome dado a cada uma delas? 6. Classifique um servidor com 2 processadores Pentium III (mquina dual) nas trs classificaes vistas em aula. 7. Por que alguns autores consideram uma arquitetura COMA como sub-classificao de arquiteturas NUMA?

Csar A. F. De Rose

35

Arquitetura de Computadores II - 04/08/04

Csar A. F. De Rose

36

Arquitetura de Computadores II - 04/08/04

Вам также может понравиться