Академический Документы
Профессиональный Документы
Культура Документы
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
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
Csar A. F. De Rose
Csar A. F. De Rose
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,
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
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
Eficincia (Speed-Up/Nua)
1.2 1
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
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
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)
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
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
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)
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)
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
Csar A. F. De Rose
Csar A. F. De Rose
10
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)
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
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
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:
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)
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
Csar A. F. De Rose
14
SD (Single Data) SISD SI (Single Instruction) Mquinas von Neumann convencionais MISD MI (Multiple Instruction) Sem representante (at agora)
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
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
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
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
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
Rede de Interconexo
Arquiteturas de memria somente com cache (cache-only memory architecture, COMA)
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
Csar A. F. De Rose
20
P C
P C
P C
P C
P C
P C
P C
P C
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
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
P M
P M
P M
P M
P M
P M
P M
P M
Rede de Interconexo
Em relao ao tipo de acesso s memrias do sistema, multicomputadores podem ser classificados como:
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
MC
Arquitetura de Computadores II - 04/08/04
Csar A. F. De Rose
21
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
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
Csar A. F. De Rose
24
compensar o menor nmero de ns, so usados ns mais poderosos, muitas vezes servidores de mdio porte com vrios processadores (multiprocessadores SMP)
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
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
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
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)
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
Csar A. F. De Rose
26
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
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
Csar A. F. De Rose
27
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)
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
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
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:
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
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
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:
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
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
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:
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
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
Csar A. F. De Rose
36