Você está na página 1de 38

Captulo

2
Fundamentos das Arquiteturas para
Processamento Paralelo e Distribudo
Philippe O. A. Navaux, Csar A. F. De Rose, Larcio L. Pilla
1. Introduo
Desde os primrdios da era da computao, j em trabalhos de Von Neumann (1945), as
Arquiteturas Paralelas foram apresentadas como formas de obter uma maior capacidade
de processamento para execuo de tarefas com altas cargas de processamento.
Esse aumento na capacidade de processamento dos computadores s podia ser
obtido atravs de processadores mais velozes ou atravs do aumento do nmero de
processadores empregados em conjunto. Nos anos de 50 e 60, as tecnologias de
fabricao de mquinas monoprocessadoras eram suficientes para atender demanda de
processamento daquela poca. A partir dos anos 70, as necessidades crescentes de
capacidade de processamento no eram mais atendidas pelas evolues na tecnologia
dos monoprocessadores, tornando-se necessria a utilizao de tcnicas de concorrncia
para alcanar o desempenho requerido.
Como o aumento da velocidade dos processadores esbarrava no custo e no limite
da capacidade tecnolgica para obteno de circuitos rpidos, a soluo tendeu para o
emprego de vrios processadores trabalhando em conjunto na obteno de uma maior
capacidade de processamento. quando surge o termo Processamento Paralelo para
designar tcnicas diferentes de concorrncia que atendem a essas necessidades.
O desenvolvimento da rea de Processamento Paralelo levou ao aproveitamento
destas tcnicas no projeto de chips de processadores, microprocessadores, e tambm em
mquinas especializadas em realizar grandes quantidades de operaes por segundo,
conhecidas como Supercomputadores. Estas ltimas proporcionaram um maior
desempenho na resoluo de problemas, sendo, por isso, essa rea conhecida tambm
como Processamento de Alto Desempenho - PAD (em ingls, High Performance
Computing - HPC).
1.1. Arquitetura de Processadores com Paralelismo Chips
Uma das reas de aplicao das tcnicas de paralelismo no projeto da arquitetura do(s)
processador(es) dentro dos chips.
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
A evoluo na integrao de uma maior quantidade de transistores num chip,
chegando a bilhes de transistores, permitiu que gradativamente fossem projetadas
arquiteturas de processadores com mais unidades funcionais, mais memrias caches e
maiores facilidades de barramentos e registradores. Aconteceu uma migrao/
miniaturizao das arquiteturas de mquinas para dentro dos chips.
Nas prximas sees ser apresentada a evoluo que aconteceu no projeto dos
processadores nos chips, passando pelo emprego do pipeline, depois pelo superescalar,
multithread, multi-core e por fim pelo atual many-core.
1.2. Mquinas para Processamento de Alto Desempenho
Apesar do crescente aumento de desempenho dos PCs encontrados no mercado
(mquinas denominadas convencionais) existem usurios especiais que executam
aplicaes que precisam de ainda maior 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. 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.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 23
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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.3. Tipos de Concorrncia numa Arquitetura
As principais formas de concorrncia encontradas numa arquitetura so a temporal e a
de recursos. Numa concorrncia temporal, existe uma sobreposio das execues no
tempo, criando, dessa forma, um ganho no desempenho final do processamento. Por
outro lado, na concorrncia de recursos, tambm chamada de espacial, a arquitetura
possui vrios processadores ou elementos de processamento que trabalham em paralelo
na execuo das tarefas que compem o processamento. Nessa ltima concorrncia, o
ganho obtido no desempenho fruto da quantidade de unidades de processamento que
trabalham em conjunto. Esses dois tipos de concorrncia resultam em trs tipos de
arquiteturas principais que hoje, juntas, representam a quase totalidade das mquinas
existentes:
Concorrncia temporal, que resulta nas arquiteturas pipeline, onde existe uma
sobreposio na execuo temporal dos vrios estgios que compem uma
instruo;
Concorrncia de recursos sncrona, que resulta nas arquiteturas SIMD,
tambm conhecidas como arquiteturas matriciais (array), nas quais a
concorrncia existe entre elementos de processamento que executam em
paralelo, de forma simultnea, a mesma operao;
Concorrncia de recursos assncrona, que resulta nas arquiteturas MIMD, em
que processadores atuam em paralelo para resolver uma tarefa, porm cada um
executando dentro do seu ordenamento e tempo.
Num pipeline, uma tarefa subdividida numa sequncia de subtarefas, cada uma
executada por um estgio de hardware especfico, que trabalha concorrentemente com
os outros estgios do pipeline, criando um paralelismo temporal na execuo das
subtarefas.
Os Processadores Matriciais (Array Processors), tambm conhecidos por SIMD,
so representativos do Paralelismo Espacial Sncrono. Nessa arquitetura, uma unidade
de controle distribui para vrios elementos de processamento (EP) a mesma instruo
que ser executada em paralelo por esses EPs sobre seus prprios dados no mesmo
instante de tempo.
O terceiro tipo de concorrncia, o Paralelismo Espacial Assncrono,
encontrado nos multiprocessadores, tambm conhecidos por arquiteturas MIMD. Nesse
caso, diversos processadores trabalham em paralelo, processando suas tarefas
concorrentemente de forma assncrona para, num intervalo de tempo, conclurem a
tarefa. Esses processadores geralmente so idnticos e possuem um sistema operacional
24 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
nico que os gerencia. Portanto, um multiprocessador um computador que possui
vrios processadores que se comunicam e cooperam para resolver uma dada tarefa.
1.4. 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. 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
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 consequentemente
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.
1.5. Nveis de Paralelismo
Explorao de paralelismo est presente nos diversos nveis de um sistema:
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 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).
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 25
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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).
Figura 1. Diferentes nveis de paralelismo.
1.6. Processamento Paralelo x Distribudo
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
2003].
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).
Vrios processadores
Unidades de E/S ativa
Hierarquia de memria
Hierarquia de barramentos
Multiprocessamento
Multiprogramao
Utilizao de processos leves threads!
"nvocao de m#todos remotos $ava %M"!
Utilizao de processos remotos
M&ltiplas unidades 'uncionais
(ipeline de instruo
)rquitetura
Sistema
*peracional
)plicao
(rocessador
26 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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
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!!!)
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!!!).
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:
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).
1.7. Medidas Bsicas de Desempenho
ndices que indicam o desempenho de diferentes aspectos de um programa paralelo.
Desempenho da aplicao
Desempenho da rede de interconexo
1.7.1. Desempenho da aplicao
Speed-Up (fator de acelerao): Indica quantas vezes o programa paralelo ficou mais
rpido que a verso sequencial. calculado pela razo entre o melhor tempo sequencial
e o tempo da verso paralela.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 27
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
SU
p
w=
T w
T
p
w
Onde p o nmero de unidades ativas utilizadas e w o trabalho que foi
calculado.
Speed-Up (Fator de Acelerao)
+
,
-
.
/
0+
0,
0-
0.
0/
0 , 1 - 2 . 3 / 4 0+ 00 0, 01 0- 02 0.
Nmero de unidades ativas
S
p
e
e
d
-
U
p
5erico %eal
Figura 2. Comparao entre fator de acelerao terico e obtido.
Se SU > 1 a verso paralela reduziu o tempo de execuo (ficou mais rpido que
a sequencial) e se SU < 1 a verso paralela aumentou o tempo de execuo (ficou mais
lenta que a sequencial).
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.
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
Onde p o nmero de unidades ativas utilizadas e w o trabalho que foi calculado.
O ideal seria que cada unidade ativa tivesse ficado 100% do tempo ativa (linha
superior). 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 2 e 3, o menor tempo de execuo ocorreu com 11 unidades ativas e a
melhor taxa de utilizao mdia com 5).
1.7.2. Desempenho da rede de interconexo
28 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Latncia: o tempo necessrio para enviar uma mensagem atravs da rede de
interconexo.
Unidade: medida de tempo, Ex: 4 microssegundos (4 s).
Inclui o tempo de empacotamento e desempacotamento dos dados mais o tempo
de envio propriamente dito.
Eficincia (Speed-Up/Nua)
+
+6,
+6-
+6.
+6/
0
06,
0 , 1 - 2 . 3 / 4 0+ 00 0, 01 0- 02 0.
Nmero de unidades ativas
E
f
i
c
i

n
c
i
a
5erico %eal
Figura 3. Comparao entre eficincia terica e obtida.
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.
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 frequncia da transmisso dos dados (expressa em MHz)
segundo a seguinte frmula:
V=LF
2. Paralelismo na Arquitetura de Chips
2.1. Arquiteturas empregando a Tcnica Pipeline
Conforme visto no captulo de introduo, uma das primeiras formas de concorrncia
empregadas para aumento do desempenho de processadores foi a tcnica pipeline. Neste
captulo, veremos o histrico da evoluo do emprego da tcnica pipeline para o projeto
de arquiteturas de mquinas e microprocessadores, sua classificao, o pipeline de
instruo, o pipeline aritmtico, as principais tcnicas de projeto para pipelines e, por
fim, as dependncias entre instrues que afetam o funcionamento de um pipeline. No
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 29
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
prximo captulo, sero vistas as tcnicas superescalares que representam a evoluo
das arquiteturas pipelines apresentadas aqui.
O reconhecimento do interesse no emprego do pipeline data do incio dos
projetos de computadores. O uso de tcnicas de pipeline iniciou pela acelerao na
busca de instrues na memria. O computador IBM 7094 empregava uma memria de
72 bits de largura e 36 bits de instrues. A cada acesso memria eram trazidas duas
instrues de 36 bits.
O primeiro emprego efetivo de tcnicas pipeline foi no particionamento e na
execuo sobreposta de instrues nas mquinas STRETCH [Block 1959] e LARC
[Eckert 1959]. O STRECH empregou o particionamento na execuo das instrues em
dois estgios: uma fase de busca e decodificao da instruo e uma fase de execuo
do operador. J a mquina LARC melhorou a execuo das instrues, quebrando o
processo em quatro estgios: busca de instruo, operao de endereamento e ndice,
busca do operando e execuo.
2.1.1. Princpios de Funcionamento de um Pipeline
O princpio de funcionamento de um pipeline a execuo de uma tarefa atravs da sua
diviso num conjunto de subtarefas, as quais, no seu conjunto, sejam equivalentes
execuo da tarefa original, empregando concorrncia temporal. Isso resulta em que a
tarefa continua sendo executada de forma idntica, s que dividida por etapas,
chamadas de estgios. A cada vez que a tarefa passa para um novo estgio, possvel
aproveitar o anterior para uma nova tarefa, portanto aproveitando melhor o hardware
existente para a execuo. Esse princpio equivalente a uma linha de produo de
automveis, na qual cada estao responsvel pela montagem de uma parte do
veculo.
Portanto, num pipeline, uma tarefa dividida em subtarefas que so executadas
cada uma por um dos estgios, de forma a ter na sada da cadeia do pipeline a tarefa
completa executada. A Figura 4 mostra a estrutura bsica de um pipeline linear; nela, os
estgios so separados por registradores cuja funo armazenar o resultado do estgio
anterior para execuo no prximo estgio. Dessa forma, criado um delimitador
temporal que ser empregado para sincronizar os estgios.
Observa-se que, para o bom funcionamento de um pipeline e para no haver
perdas, importante que as subtarefas dos diferentes estgios tenham um tempo de
processamento o mais uniforme possvel. O relgio, que cadenciar o pipeline atravs
da carga dos registradores, ser estabelecido pelo tempo da subtarefa mais lenta.
BI D BO E
BI D BO E
BI D BO E
Figura 4. Estrutura de pipeline.
30 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Conclui-se que um pipeline uma cascata de estgios de processamento. Esses
estgios so circuitos combinatrios que executaro operaes lgicas e aritmticas
sobre o fluxo de dados. Entre cada estgio, existem registradores que servem como
barreiras lgicas e que sincronizam o pipeline. So estes que guardam os resultados
intermedirios de um estgio para outro. O relgio atuar simultaneamente sobre todos
os registradores, cadenciando o fluxo das informaes pelos estgios do pipeline.
Portanto, pipeline uma tcnica que pode ser aplicada em diversas
circunstncias, trazendo como resultado um aumento na vazo das tarefas. Foi o
emprego dessa tcnica nas arquiteturas de mquinas que propiciou o surgimento de
computadores de alto desempenho. Por outro lado, hoje em dia, a maioria dos
microprocessadores e computadores emprega alguma tcnica pipeline, em maior ou
menor grau, nas suas arquiteturas.
O pipeline de instrues o mais simples e mais difundido dos dois tipos de
pipeline. Consiste basicamente na execuo concorrente das etapas de busca de
instruo (BI), decodificao (D), busca de operando (BO), e execuo (E).
Para um bom desempenho de um pipeline de instruo, necessrio que ele seja
abastecido continuamente com instrues. Quando ocorre um salto no programa ou uma
interrupo, diversos ciclos so perdidos para esvaziar e recarregar o pipeline.
Figura 5. Exemplo de acelerao com pipeline.
Pelo exposto, verifica-se que um pipeline obtm seu mximo desempenho
quando est cheio, completando uma tarefa a cada tempo T. Observando-se a Figura 5,
conclui-se que, at a primeira tarefa ser concluda, ocorre um atraso de 4T, donde se
obtm que um pipeline processa n tarefas em
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 31
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
j+ n1 T
Numa mquina comum, essas tarefas levariam n.j.T; portanto o ganho de
desempenho (Speed-Up) G de um pipeline dado por
G=
n. j .T
J j n1
=
n. j
Tj+ n1
2.1.2. Gerenciamento de Desvios
Um dos problemas na implementao dos pipelines o fato de que quando existe uma
instruo de desvio, ela depende de um resultado que na maioria das vezes ainda esta
em execuo no pipeline e portanto ainda no pronto, isto pode levar a parar a entrada
de novas instrues enquanto o resultado no for calculado.
A distribuio tpica da incidncia das instrues pelas suas categorias fica com
60% para instrues aritmticas, 15% para instrues de armazenamento, 5% para
desvios incondicionais e da ordem de 20% para os desvios condicionais [Hwang 1985].
Figura 6. Distribuio tpica de instrues.
Dos 20% de desvios condicionais, normalmente 8% no so tomados e,
portanto, as instrues continuam sequencialmente sua execuo, enquanto 12% so
tomados, obrigando o clculo do novo endereo para incio da nova sequncia de
instrues. Essas duas situaes, desvio incondicional e desvio condicional com
sucesso, prejudicam grandemente o desempenho do pipeline, pois acarretam o
esvaziamento deste para incio da nova sequncia de instrues, como ilustra a Figura 7.
Alm dos desvios, as interrupes tambm prejudicam o funcionamento de um pipeline
de instrues.
Figura 7. Efeito do esvaziamento de pipeline devido a desvios.
,+7
27
027
.+7
8esvios con9
dicionais
8esvios in9
condicionais
)rmazenamento
)ritm#ticas
32 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
A impossibilidade de conhecer os resultados de um desvio condicional antes de
execut-lo cria pontos de dependncia conhecidos por dependncias de controle. O
pipeline fica sem saber se continua executando as instrues pelo fluxo de instrues
principal, ou se deve desviar e adotar o novo fluxo de instrues resultado do desvio.
Esse tipo de situao gera uma dependncia de controle, conhecida tambm por
dependncia procedural [Stallings 1996]. O processador s pode continuar a execuo
efetiva da instruo aps conhecido o resultado da condio e, portanto, aps ter o
conhecimento de qual fluxo de instrues seguir.
Estabelecida a necessidade do desvio e, portanto, a adoo da nova sequncia de
instrues, necessrio descartar todas as instrues que j esto no pipeline. Para
diminuir esse impacto no desempenho, foram criadas tcnicas para prever os desvios
sob forma especulativa, diminuindo a taxa de execuo de sequncias de instrues
desnecessrias.
2.2. Arquiteturas Superescalares
Como visto anteriormente, o pipeline veio para acelerar a execuo de instrues,
empregando, para isso, a sobreposio na execuo de etapas da instruo. Nos
primeiros tempos do emprego da tcnica pipeline, havia grandes diferenas de tempo
entre os estgios de busca de instruo e de busca de operando na memria devido ao
maior tempo necessrio para acesso memria. Esses problemas foram solucionados no
final dos anos 70, na medida em que foram criadas memrias cache para as instrues e
posteriormente para os dados.
Num segundo momento da evoluo das tcnicas de pipeline, em meados dos
anos 80, surgiram as instrues RISC (Reduced Instruction Set Computer) em oposio
ao emprego das instrues CISC (Complex Instruction Set Computer). Essa evoluo
visava a obter um conjunto de instrues com tempos de execuo de um ciclo e,
portanto, permitir que os pipelines conseguissem obter desempenhos melhores sem
serem prejudicados por estgios de execuo com tempos de vrios ciclos, como eram
os das instrues CISC.
O prximo objetivo a ser vencido foi permitir que uma arquitetura pipeline
pudesse executar mais de uma instruo de cada vez. Para vencer essa barreira, era
necessrio que houvesse mais de uma instruo independente para ser executada e que
houvesse hardware para tal. Dessa necessidade de aumento de desempenho dos
processadores, surgiram os Processadores Superescalares, que possuem mais de um
pipeline para permitir a execuo de mais de uma instruo simultaneamente. A Figura
8 mostra essa nova estrutura de execuo. Este mecanismo conhecido por ILP,
Instruction Level Parallelism.
Um processador superescalar tpico busca e decodifica vrias instrues por
ciclo, enquanto as arquiteturas escalares buscam e executam apenas uma instruo por
ciclo [Hwang 1993]. Dessa forma, pode-se esperar que mltiplas instrues sejam
completadas a cada ciclo em um pipeline superescalar, o que no possvel em
pipelines escalares [Pilla 2001]. Para permitir a execuo de diversas instrues
simultaneamente, necessrio verificar a no existncia de dependncias entre estas.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 33
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Portanto, necessrio que as instrues buscadas e decodificadas sejam
analisadas na busca de dependncias. Embora executando diversas instrues por ciclo,
as arquiteturas superescalares possuem um compromisso com a semntica sequencial
utilizada pelo programador e, portanto, devem manter o ordenamento total no final.
Deve ser preservada a semntica sequencial ao mesmo tempo que se explora o
paralelismo entre as instrues [Sohi 1995].
BI D BO E
BI D BO E
BI D BO E
BI D BO E
BI D BO E
BI D BO E
Figura 8. Estrutura de execuo superescalar.
2.2.1. Unidades de uma Arquitetura Superescalar
Para a execuo paralela de instrues, diversas premissas so necessrias para que se
possa obter instrues disponveis para sua execuo. A arquitetura bsica de um
processador superescalar apresentada na Figura 9, na qual se verifica a existncia de
diversas unidades.
Figura 9. Arquitetura superescalar bsica.
No modelo de processamento superescalar, diversas instrues so executadas
concorrentemente e normalmente possuem cdigos de operao diferentes. Essas
arquiteturas comearam a surgir em 1980 e hoje integram a maioria dos
34 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
microprocessadores existentes. Diversas so as tcnicas empregadas, em sua totalidade
ou parcialmente que resultam no aumento do desempenho dessas arquiteturas. Abaixo,
so apresentadas suas principais caractersticas [Smith 1995][Pizzol 2002]:
tcnicas para determinao e processamento de dependncias entre os dados dos
registradores;
estratgias de busca de mltiplas instrues por ciclo;
antever/prever os desvios condicionais;
mtodos para despacho de mltiplas instrues;
mtodos para recuperao do estado de ordenamento correto (semntica
sequencial);
estratgias para comunicao de dados, atravs da memria, empregando
load/store;
recursos para execuo paralela de mltiplas instrues, incluindo mltiplas
unidades funcionais e memria hierrquica para permitir mltiplos acessos.
2.3. Arquiteturas Multithread
Com o surgimento de processadores com arquiteturas superescalares, visto
anteriormente, esperava-se que a paralelizao das instrues conseguiria um melhor
uso da vrias unidades funcionais existentes, em geral de 6 a 8 unidades. No entanto em
mdia as arquiteturas superescalares dobraram o nmero de instrues executadas,
comparado com uma arquitetura pipeline escalar simples. A razo maior para este limite
a prpria estrutura dos nossos programas que no permite extrair um maior nmero de
instrues paralelas.
Portanto o desafio dos pesquisadores em aumentar o desempenho, levou a
pensar que se de um fluxo de instrues eu s consigo obter um paralelismo da ordem
de 2 instrues, porque no aumentar o nmero de fluxos de instrues a serem
executadas no meu processador simultaneamente, permitindo desta forma a extrao de
mais instrues para execuo pelas unidades funcionais do meu processador. Surge dai
a arquitetura conhecida por Multi-thread. ou multithread, que permite o processamento
de mais de um fluxo de instrues em paralelo pela arquitetura do processador.
Multithread demonstra ser uma boa alternativa para a execuo de programas.
Programas so representados pelo S.O. por processos e associado a cada processo existe
um contexto que descreve o estado atual da execuo do processo (registradores, PC,
etc). Cada processo possui pelo menos uma thread, representada pelo fluxo de execuo
com o seu contexto local. A proposta da arquitetura multithread executar mais do que
um processo/thread simultaneamente, aproveitando melhor as unidades funcionais
inativas. Este mecanismo conhecido por TLP - Thread Level Parallelism. A figura
abaixo apresenta uma comparao entre o funcionamento de uma arquitetura
Superescalar e uma arquitetura multithread.
Um processador multithread emprega uma tcnica que permite que mltiplas
threads despachem mltiplas instrues a cada ciclo para as unidades funcionais, UF,
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 35
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
de um processador. As arquiteturas MT combinam tanto o paralelismo no nvel de
instruo (ILP) como no paralelismo em nvel de thread (TLP).
O paralelismo em nvel de thread obtido atravs de programas paralelos
(multithreaded) ou de programas individuais (multiprogramao).
Por explorar os dois tipos de paralelismo, ILP e TLP, multithread usa de forma
mais eficiente os recursos disponveis e os speedups so maiores. O emprego de
mutithread cria, em ltima anlise, processadores virtuais para o usurio destes
processadores.
Figura 10. Comparao de eficincia entre o escalonamento de tarefas em
ambientes superescalar e multithread.
As arquiteturas multithread possuem um hardware para armazenar o contexto de
vrios programas (threads) em execuo no processador. Este hardware a mais includo
numa arquitetura superescalar para atender o multithread no passa de 5% de acrscimo
o que torna bastante vantajoso para os fabricantes. A Figura 11 apresenta a estrutura
geral de uma arquitetura multithread.
Figura 11. Arquitetura multithread bsica.
36 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Esta arquitetura busca reduzir o nmero de slots de despacho no ocupados a
cada ciclo (comum em arquiteturas multithread) e o nmero de ciclos sem que
instrues tenham sido despachadas (comum em arquiteturas superescalares).
Associao das unidades funcionais com as threads feita de forma completamente
dinmica.
2.3.1. Tipos de Multithread
As arquiteturas multithread dividem-se em tipos diferentes dependendo da forma que
sero executados as threads no processador.
Explicit multithreading uma abordagem de execuo (simultnea ou no) de
vrios fluxos de instrues (threads) de diferentes origens. Esta forma de execuo
divide-se em trs tipos diferentes que sero apresentados abaixo.
Multithreading de gro fino, IMT - Interleaved Multi Thread, o mtodo em
que a cada novo ciclo uma nova instruo de uma thread diferente executada.
Portanto existe uma alternncia na execuo das instrues das diferentes
threads a cada ciclo. O processador muda de contexto a cada novo ciclo. Neste
caso possvel eliminar conflitos de dependncias de dados e aumentar o ganho
na execuo do pipeline. Exemplo do emprego de IMT na arquitetura do
processador Ultra Sparc T1.
Multithreading de gro grosso, BMT - Blocked Multi Thread, o mtodo em
que a execuo de uma thread s interrompida quando um evento de alta
latncia ocorre, tal como um acesso memria. Neste caso, a cada novo ciclo a
execuo permanece com a mesma thread at acontecer uma mudana de
contexto, por exemplo quando realizado um acesso memria. Sendo assim,
possvel esperar o resultado do acesso memria executando uma nova thread.
Exemplo do emprego da arquitetura BMT na arquitetura do processador IBM
PowerPC RS64-III.
SMT- Simultaneous Multi Thread, uma tcnica que permite mltiplas threads
despacharem mltiplas instrues a cada ciclo para as UF, unidades funcionais,
de um processador superescalar adaptado para execuo multithread. As
arquiteturas SMT combinam tanto o paralelismo em nvel de instruo, ILP,
como paralelismo em nvel de thread, TLP. Por explorar os dois tipos de
paralelismo, SMT usa de forma mais eficiente os recursos disponveis e os
speedups so maiores A figura abaixo apresenta comparativamente o
funcionamento dos tipos diferentes de multithread.
Para o bom funcionamento dos processadores multithread necessrio caches
que tragam suficientes instrues e dados para atender o volume de processamento.
Observou-se que as Cache L2 tem um grande impacto sobre o desempenho dos
processadores multithread, em especial os SMT, que requerem caches maiores e com
maior associatividade.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 37
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 12. Comparao de eficincia entre o escalonamento de tarefas em
ambientes superescalar e diferentes tipos de multithread.
2.4. Arquiteturas Multi-core
O surgimento dos multi-core foi motivada pela demanda contnua por desempenho e os
limites fsicos perto de serem alcanados nas frequncias de relgio dos processadores,
aliados ao alto consumo de potncia e consequente gerao de calor.
Chegou-se a concluso que o aumento da frequncia de relgio no garantiria
ganhos reais, pois entre outras razes a latncia de memria no acompanha a
velocidade dos processadores. A Arquitetura Von Neumann tradicional um gargalho
em vrias aplicaes.
A alternativa ao aumento da frequncia de relgio a diviso das tarefas em
operaes concorrentes e distribudas entre vrias unidades de processamento,
conhecidas como cores ou ncleos. Esta abordagem ficou conhecida por CMP (Chip
Multi-processing).
O uso de mltiplos cores em um nico chip apresenta um melhor layout do
circuito, com mais unidades funcionais (UFs) na mesma rea, do que um processador
com apenas um core, e portanto permite trabalhar com uma frequncia de relgio menos
elevada.
Contriburam tambm para o surgimento dos multi-cores o fato que os
processadores multithread demandarem caches grandes para atender o processamento
das vrias threads no mesmo processador fsico, demandas dos processadores virtuais.
Alm disto a arquitetura multi-core permite que o usurio continue trabalhando
enquanto outras tarefas de processamento intensivo so executadas em paralelo.
Durante o processamento, alguns cores inativos podem ser desligados. Isso
proporciona uma economia no consumo de potncia e uma menor dissipao de calor.
Uma das ltimas geraes de chips sem multi-core era a do Itanium que possua um
consumo de potncia na ordem dos 110W. Em contrapartida, primeiro Dual-core da
Intel, o Montecito, j diminua este consumo para 90W.
Alm de possuir cores de propsito geral, os CMPs podem ter cores
especficos, como para processamento de imagens, para algoritmos de reconhecimento
de voz, para protocolos de comunicao, entre outros.
38 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Alm disso, pode-se reconfigurar dinamicamente os cores, a rede de
interconexo e as caches para uma melhor adaptao a determinados cenrios.
De forma simplificada um processador multi-core pode ser considerado como
colocar dois ou mais processadores num mesmo processador/chip, como na Figura 13.
As vantagens desta arquitetura com vrios cores melhorar o paralelismo no
nvel de threads, como ilustrado na Figura 14. Alm disto, permite ajudar aplicaes
que no conseguem se beneficiar dos processadores superescalares atuais por no
possurem um bom paralelismo no nvel de instrues
Outras vantagens que podem ser enumeradas so a melhoria na localidade de
dados, a melhoria na comunicao entre as unidades, a economia de espao e de energia
do chip. A vazo em um processador multi-core no aumentar para aplicaes nicas
no paralelizveis, mas sim nos outros casos e no sistema como um todo.
Figura 13. Viso simplificada de uma arquitetura multi-core.
Figura 14. Paralelismo de tarefas em arquitetura multi-core.
2.4.1. Virtualizao
A Virtualizao surgiu nas arquiteturas multi-core como uma forma para mascarar a
complexidade do gerenciamento do hardware com vrios cores para a camada de
!U " !U #
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 39
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
software. Ao invs do usurio se preocupar com a execuo nos cores o sistema, a
virtualizao, se encarrega deste gerenciamento fornecendo ao usurio. Dessa forma,
software v o processador como uma srie de mquinas virtuais (abstrao).
O emprego da virtualizao fornece segurana para as aplicaes, separando
aquelas que so confiveis das demais. Alm disso, capaz de realizar o balanceamento
de carga entre os processadores.
2.5. Arquiteturas Many-core
Com o surgimento de vrios cores num chip a forma de conexo destes precisa ser mais
complexa que um simples compartilhamento de cache, para tal necessrio empregar
redes de interconexo denominadas de NoC, Network on Chip.
A Figura 15 apresenta a arquitetura do chip experimental Tera-Scale da Intel,
onde pode ser observado que alm dos ncleos existe uma estrutura para o roteador
responsvel pela comunicao entre os ncleos (cores). Verifica-se que quando o
volume de cores fica grande no mais possvel fazer a comunicao destes atravs de
memrias caches) compartilhadas e que a soluo passa pelo emprego de redes de
comunicao.
Figura 15. Arquitetura do processador experimental Tera-Scale.
Caractersticas principais do Intel Tera-Scale:
Capacidade de processamento superior a 1 Tera-flops.
80 Ncleos VLIW.
Cada ncleo com um roteador integrado.
40 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Emprego de Caches L1 integradas.
Interconexo usando NoC.
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 sequncia de instrues
sobre uma sequncia 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:
#$ (Single Data) M$ (Multiple Data)
#% (Single Instruction)
SISD
Mquinas von
Neumann
convencionais
SIMD
Mquinas Arra
(CM-2, MasPar)
M% (Multiple Instruction)
MISD
Sem representante
(at aora)
MIMD
Mu!tiprocessa"ores e
mu!ticomputa"ores
(nC#$%, Inte!
Paraon, Cra& '(D)
Figura 16. Classificao de Flynn.
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.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 41
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 17. Classe SISD.
Na classe MISD (Multiple Instruction Single Data), mltiplos fluxos de
instrues atuariam sobre um nico fluxo de dados.
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.
Figura 18. Classe MISD.
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.
42 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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 sequencial.
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.
Figura 19. Classe SIMD.
%nquanto, em uma mquina SIMD, s) um *!u+o "e instru,-es, ou se.a, s) um
prorama, est sen"o e+ecuta"o, em uma mquina M%M$ (Multiple Instruction
Multiple Data), ca"a uni"a"e "e contro!e C rece/e um *!u+o "e instru,-es pr)prio e
repassa-o para sua uni"a"e processa"ora P para que se.a e+ecuta"o so/re um *!u+o "e
instru,-es pr)prio.
Dessa *orma, ca"a processa"or e+ecuta o seu pr)prio prorama so/re seus
pr)prios "a"os "e *orma ass&ncrona.
Sen"o assim, o princ0pio MIMD /astante enrico, pois qua!quer rupo "e
mquinas, se ana!isa"o como uma uni"a"e (e+ecutan"o, por e+emp!o, um
sistema "istri/u0"o), po"e ser consi"era"o uma mquina MIMD.
Nesse caso, como na c!asse SIMD, para que o processamento "as "i*erentes
posi,-es "e mem)ria possa ocorrer em para!e!o, a uni"a"e "e mem)ria M n1o
po"e ser imp!ementa"a como um 2nico m)"u!o "e mem)ria, o que permitiria s)
uma opera,1o por ve3.
Nessa c!asse, enqua"ram-se mquinas com mu!ti-core ou com m2!tip!os
processa"ores.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 43
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 20. Classe MIMD.
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:
Multiprocessadores
Multicomputadores
!"#"$" Multiprocessa%ores
Todos os processadores P acessam, atravs de uma rede de interconexo, uma memria
compartilhada M.
44 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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.
Figura 21. Organizao de multiprocessadores.
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:
UMA
NUMA
COMA
Acesso uniforme memria (uniform memory access, UMA): 4 mem)ria
usa"a nessas mquinas centra!i3a"a e encontra-se 5 mesma "ist6ncia "e to"os os
processa"ores, *a3en"o com que a !at7ncia "e acesso 5 mem)ria se.a iua! para to"os os
processa"ores "o sistema (uni*orme).
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.
Acesso no uniforme ' mem(ria (non)uniform memory access* +,MA"- 4
mem)ria usa"a nessas mquinas "istri/u0"a, imp!ementa"a com m2!tip!os m)"u!os
que s1o associa"os um a ca"a processa"or.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 45
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 22. Arquitetura UMA.
8 espa,o "e en"ere,amento 2nico, e ca"a processa"or po"e en"ere,ar to"a a
mem)ria "o sistema.
Se o en"ere,o era"o pe!o processa"or encontrar-se no m)"u!o "e mem)ria
"iretamente !ia"o a e!e, "ito !oca!, o tempo "e acesso a e!e ser menor que o tempo "e
acesso a um m)"u!o que est "iretamente !ia"o a outro processa"or, "ito remoto, que
s) po"e ser acessa"o atravs "a re"e "e intercone+1o.
Por esse motivo, essas mquinas possuem um acesso n1o uni*orme 5 mem)ria (a
"ist6ncia 5 mem)ria n1o sempre a mesma e "epen"e "o en"ere,o "ese.a"o).
Figura 23. Arquitetura NUMA.
Arquiteturas de memria somente com cache (cache-only memory
architecture, COMA): %m uma mquina C8M4, to"as as mem)rias !ocais est1o
estrutura"as como mem)rias cac&e e s1o c9ama"as "e C8M4 cac&es. %ssas cac&es t7m
muito mais capaci"a"e que uma cac&e tra"iciona!.
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.
46 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 24. Arquitetura COMA.
!"#"#" Multico'puta%ores
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 P
1
s capaz de enderear
M
1
).
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).
%m re!a,1o ao tipo "e acesso 5s mem)rias "o sistema, mu!ticomputa"ores
po"em ser c!assi*ica"os como:
NORMA
Figura 25. Arquitetura NORMA.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 47
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Sem acesso a variveis remotas (non-remote memory access, NORMA):
Como uma arquitetura tra"iciona! inteira *oi rep!ica"a na constru,1o "essas mquinas,
os reistra"ores "e en"ere,amento "e ca"a n) s) conseuem en"ere,ar a sua mem)ria
!oca!.
3.2.3.Viso geral da classificao segundo o compartilhamento de memria
A Figura 26 apresenta uma viso geral da classificao segundo o compartilhamento de
memria:
Figura 26. Classificao segundo o compartilhamento de memria.
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 cache.
3.3. .r/ani0ao da Mem(ria 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.3.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.
O entrelaamento de endereos entre M mdulos de memria chamado de
entrelaamento de M-vias.
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.
48 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Figura 27. Diferentes organizaes de memria.
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.
3.1. 2edes de %nterconexo
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:
Estticas
Dinmicas
3.4.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).
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 49
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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:
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.
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):
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
50 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
retngulos (o que pode ser vantajoso no caso da escalabilidade, pois permite o
aumento do nmero de processadores em mltiplos da menor dimenso).
Figura 28. Redes estticas em malha e em Torus.
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.
!"("#" )e%es %in*'icas
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 P
1
e P
2
impede o estabelecimento de outra conexo entre componentes
quaisquer que no P
1
e P
2.
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 .
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 51
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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:
Barramento
Matriz de chaveamento
Redes multinvel
3arramento- Dentre as re"es "in6micas, o /arramento a a!ternativa "e 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.
Matriz de Chaveamento: 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):
Figura 29. Matrizes de chaveamento.
A matriz de chaveamento no bloqueante e tem uma escalabilidade boa,
permitindo o acrscimo de componentes aos pares.
52 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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.
Redes Multinvel: Uma outra aplicao para redes hierrquicas de matrizes de
chaveamento a construo de redes de permutao multinvel. A ideia 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 x 2 e permitem no mnimo 2 e, na maioria das vezes, 4 posies de chaveamento:
Figura 30. Diferentes formas de conexo.
A Figura 31 mostra um exemplo de rede multinvel denominada Banyan:
Figura 31. Rede de Banyan.
O nmero de linhas dado pela metade do nmero de possveis componentes n,
o nmero de nveis de log
2
n, e, no total, (n/2).rede
log
2
n matrizes de chaveamento so utilizadas.
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.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 53
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Porm, por causa dessa falta de redundncia, a rede bloqueante.
3.4.3. Roteamento de Mensagens
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.
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:
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.
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.
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.
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.
54 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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.4. Coer5ncia de Cac6e (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 [Hwanh 1993][Hwang
1998]).
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,
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.
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.
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:
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 subsequentes
de x, independentemente do processador, forneam o novo contedo de x.
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 55
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
3.5.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:
Inconsistncia no compartilhamento de dados
Inconsistncia na migrao de processos
Inconsistncia de E/S
%nconsist5ncia no compartil6amento de dados-
8s processa"ores P
1
, P
2
e P
(
possuem cac&es priva"as e est1o interconecta"os a
uma mem)ria principa! comparti!9a"a atravs "e um /arramento. %!es e*etuam
uma sequ7ncia "e acessos 5 posi,1o "e mem)ria u"
Inicialmente, P
1
tenta ler u de sua cache. Como u no est presente, o dado lido
da memria principal e copiado para sua cache. Na sequncia, P
3
faz o mesmo,
gerando tambm uma cpia de u em sua cache. Ento P
3
efetua uma escrita em u
e altera o contedo da posio de 5 para 7.
Quando P
1
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.
Figura 32. Exemplo de inconsistncia de cache.
Vale destacar que esse problema ocorre independentemente da poltica de
atualizao da memria principal utilizada pela cache.
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 P
3
56 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
teria sido repassada tambm memria principal, o que no impediria P
1
de ler o valor
menos recente de u de sua cache.
Em se tratando da poltica write-back (escrever de volta), a situao seria ainda
pior, pois a alterao de P
3
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 P
2
efetuasse uma leitura em u nesse meio-tempo, copiaria para sua
cache o valor menos recente de u (valor 5).
%nconsist5ncia na mi/rao 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.
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 Access).
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 P
1
e P
2
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 P
1
e P
2
ainda no tenha sido substitudo
e, portanto, ainda no tenha sido copiado para a memria principal.
3.5.2. Estratgias de coerncia de cache
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).
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 57
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
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:
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.
Um fenmeno que onera bastante a estratgia de atualizaes denominado
"pack rat". Ele uma consequncia 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 1996], 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:
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.
58 Fundamentos das Arquiteturas para Processamento Paralelo e Distribudo
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085
Referncias
Block, E. (1959) The Engineering design of the STRETCH computer Em:
Proceedings of Eastern Joint Computer Conference. [ S.l. : s.n ].
Eckert, J. P. et al. (1959) Design of UNIVAC-LARC system 1, Em: Proceedings of
Eastern Joint Computer Conference. [ S.l. : s.n ]. p. 60-65.
Hwang, K. e Briggs, F. A. (1985) Computer Architecture and Parallel Processing.
[ S.l. ] : McGraw-Hill.
Hwang, K. (1993) Advanced Computer Architecture: Parallelism, Scalability,
Programmability. [ S.l. ] : McGraw-Hill.
Hwang, K. e Xu, Z. (1998) Scalable Parallel Computing: technology, architecture,
programming. Boston: WCB.
Pilla, M. (2001) Arquiteturas Superescalares: Explorao Dinmica da Previsibilidade
e Redundncia de Valores. Exame de Qualificao (Doutorado Cincia da
Computao) - Instituto Informtica, UFRGS, Porto Alegre. 92p.
Pizzol, G. D. (2002) SimMan: Simulation Manager. Definio e Implementao de um
Ambiente de Simulao de Arquiteturas Superescalares para a Ferramenta
SimpleScalar. Projeto de Diplomao ( Bacharelado em Cincia da Computao)
Instituto de Informtica, UFRGS, Porto Alegre. 64p.
De Rose, C. A. F. e Navaux, P. O. A. (2003) Arquiteturas Paralelas, Srie de Livros
Didticos, vol. 15, Editora Artmed.
Sohi, G. S. e Breach, S. e Vijaykumar, T. N. (1995) Multiscalar Processor. Em:
SIGARCH Computer Architecture News, New York, v. 23, n. 2 May 1995. Annual
International Symposium on Computer Architecture, ISCA, 22.
Smith, J. E. e Sohi, G. S. (1995) The Microarchitecture of Superscalar Processors Em:
Proceedings of the IEEE, New York, v. 83, n.12, p. 1609-1624.
Stallings, W. (1996) Computer Organization and Architecture: designing for
performance. Upper Saddle River, Prentice Hall.
Von Neumann, J. (1945) First Draft of a Report on the EDVAC. [ S.l. : s.n. ].d
Philippe O. A. Navaux (Universidade Federal do Rio Grande do Sul), Csar A. F. De Rose (PUCRS), Larcio L. Pilla
(Universidade Federal do Rio Grande do Sul) 59
ERAD 2011 22-25 de maro de 2011 ISBN 2177-0085

Você também pode gostar