Programao Paralela
Desenvolver software para executar em HW paralelo
Necessidade de melhoria significativa de desempenho
Dificuldades : Particionamento de tarefas (Balanceamento de carga); Coordenao; Overhead de comunicao
Como os diferentes processadores multicores compartilham dados ?
Memria compartilhada: Mesmo espao de memria compartilhado pelos diferentes processadores;
Passage de Mensagem: Processadores compartilham dados enviando explicitamente os dados (mensagem)
Como feita a comunicao entre os diferentes processadores ?
Memria compartilhada:
Passage de Mensagem: Comunicao feita atravs de primitivas de comunicao (send e receive)
Processadores multithread: so aqueles que aumentam utilizao de recursos de hardware permitindo que
mltiplas threads possam executar virtualmente de forma simultnea em nico processador
Compartilhamento de unidades funcionais, compartilhando a mesma memria principal.
Tipos de Multi-Threading
Fine-grain (granularidade fina) : Processador troca de thread a cada instruo; Usa escalonamento Round-robin;
Processador deve trocar threads a cada ciclo de clock
Vantagem : Pode esconder perdas de throughput que so ocasionados por stalls longos e curtos
Desvantagem : Retarda execuo de uma thread que no tem stalls e est pronta, pois s pode ser executada
uma instruo da thread antes de trocar de thread
Coarse-grain (granularidade grossa) : Processador troca de threads somente em paradas (stalls) longas
Vantagem : Evita trocas de threads desnecessrias, o que aumenta a velocidade de Processamento de uma thread
Desvantagens : Perdas de throughput em stalls curtos; Pipeline deve ser anulado e preenchido na troca de threads
devido a um stall longo
multithreading simultneo seria um misto dos dois mtodos, explorando paralelismo por thread e por instruo.
Lista de Estudo Processador MIPS
1. Faa um estudo do MIPS destacando os seguintes aspectos:
a. tamanho do dado a ser processado
Resposta: Dados e endereos na arquitetura MIPS so de 32 bits.
b. espao de endereamento de memria
Resposta: 2^30 word na memria (32 bits)
c. nmero de registradores
Resposta: No MIPS existem 32 registradores.
d. formato e tamanho das instrues
Resposta: O MIPS possui 3 formatos de instruo, R (Registrador), I (Imediato) e J (Jump). Instruo com tamanho de
32 bits.
Tam. campo 6bits | 5bits | 5bits | 5bits | 5bits | 6bits |
Formato R op | rs | rt | rd | shamt | funct |
Formato I op | rs | rt | endereo_imediato |
Formato J op | endereo__de__destino |
op: operao bsica a ser realizada (opcode)
rs: primeiro operando
rt: segundo operando
rd: registrador destino (resultado)
shamt: quantidade de bits a ser deslocado
funct: funo especfica a ser executada
2. Tanto na arquitetura projetada em sala de aula como na descrita no livro todas as instrues aritmticas envolvem trs
operandos (registradores) e possuem o mesmo formato. Na sua opinio de projetista, quais as vantagens e desvantagens desta
deciso de projeto?
Resposta: A vantagem a simplicidade. Quanto mais simples for o cdigo, mais rpido ele ser executado. E a
desvantagem que geralmente ser preciso um maior nmero de instrues para realizar determinada tarefa.
3. Porque o processador MIPS se caracteriza como uma arquitetura LOAD/STORE? Quais as vantagens e desvantagens desta
caracterstica?
Resposta: Geralmente a estrutura de dados tratadas so complexas, ou seja, possuem mais elementos que a
quantidade de registradores, ento esses elementos precisas ser carregados da memria para os registradores
utilizando as funes LOAD/STORE, visto que a memria possui mais espao que os registradores. A vantagem
justamente trabalhar com uma quantidade maior de dados, do que apenas a quantidade de registradores, carregando
estes na memria. E a desvantagem que o processo de carregar e descarregar informaes da memria para o
registrador torna o processo um pouco mais lento do que trabalhar somente com os registradores.
4. O que modo de endereamento e quais os modos de endereamento das instrues do MIPS?
Resposta: So as formas como o MIPS pode trabalhar para otimizar o endereamento de instrues fora dos padres
de 32 bits.
Endereamento em registrador: onde o operando um registrador.
Endereamento de base ou deslocamento: onde o operando est no local de memria cujo endereo a soma de
um registrador e uma constante na instruo.
Endereamento Imediato: onde o operando uma constante dentro da prpria instruo.
Endereamento relativo ao PC: onde o endereamento a soma do PC e uma constante na instruo.
Endereamento pseudodireto: onde o endereo de jump so os 26 bits da instruo concatenados com os bits
mais altos do PC
5. Qual o suporte do MIPS para funes? Existe suporte para recursividade? Como?
Resposta: O Mips tem suporte para funes atravs da instruo JAL (Jump and Link).e tambm da instruo JR (Jump
Register). Sim, existe suporte para recursividade. Da mesma forma que o programa principal invocou uma funo,
uma funo tambm pode invocar outras funes. Se la for recursiva, ela pode at mesmo invocar clones de si mesma
para realizar uma tarefa..
Exerccios - Multiprocessadores
1- Faa um estudo comparativo entre os processadores multithread e multi-core em termos de complexidade, custo,
consumo de potncia e facilidade de escalar (aumentar nmero de ns de processamento)
R.: Processadores multithread so aqueles em existem vrios processadores no mesmo chip, compartilhando a mesma
memria principal. Nesse tipo de processador, as threads so divididas entre os processadores. Existem 3 mtodos para a
execuo das threads, so eles granulao fina, granulao grossa e o multithreading simultneo. No fina em cada ciclo de
instruo uma thread executada, fazendo com que pequenos stalls desapaream. No grosso a thread executada at que
aparee um stall longo, por exemplo uma falha de cache L2. No multithreading simultneo seria um misto dos dois mtodos,
explorando paralelismo por thread e por instruo.
Nos processadores multi-core podem ser conectador por um nico barramento ou conectados por rede. Nos conectados por
barramento h o compartilhamento da memria principal, acessada atravs de um barramento compartilhando. Para que
todos consigam executar suas tarefas so necessrios protocolos de coerncia e memria, fazendo com que haja um
sincronismo e at mesmo uma organizao na utilizao da memria principal. No conectados por rede, cada processador
possui sua memria principal, mas para trocar dados necessitam de uma rede. Diante disso, para manter a coerncia entre as
memrias tambm necessrio um mecanismo para troca de mensagens. Os diretrios compartilham informaes de
memria entre todos os processadores. Com relao aos custos, menos oneroso utilizar o esquema de mutiprocessadores
compartilhados por rede, ou seja, cluster do que investir em multiprocessadores com compartilhamento de memria e com
multi processadores no mesmo chip. A simplicidade e o custo das computadores justificam nesse aspecto, sendo esta a mesma
explicao quanto a facilidade na escalabilidade.
2- Descreve o modelo de memria compartilhada e modelo de memria distribuda. Quais as vantagens e desvantagens de
cada modelo?
R.: a memria compartilhada aquele em que os processadores compartilham o mesmo barramento. O tempo de acesso a
esse tipo de memria muito mais rpido, mas em contrapartida complexo administrar esse modelo e manter a coerncia
da memria. A limitao o prprio barramento. No modelo de memria distribuda, cada processador possui sua memria,
sendo esta uma vantagem, mas como desvantagem temos o longo tempo de troca de mensagens e coerncia, uma vez que as
trocas de mensagem so realizadas via rede.
3- Faa uma anlise se os modelos da questo 2 suportam os modelos de comunicao existentes: modelo de comunicao
por endereo compartilhado e modelo de comunicao por passagem de mensagem.
R.: A memria compartilhada no suporta este modelo, mas a memria distribuda sim. Atravs de sends e receives, por
mensagens via rede, so trocadas mensagens com dados de memria. Alm disso, a comunicao por endereo compartilhado
realizado atravs de memria compartilhada distribuda.
4- Qual a maneira de reduzir o custo de acesso a memrias remotas quando se tem comunicao por varivel
compartilhada?
R.: A maneira de reduzir o custo usando memria compartilhada distribuda, onde usa-se endereos para acessar dados
remotos quando demandados.
5- Descreva o problema de coerncia de cache.
R.: O problema de coerncia de cache ocorre porque as caches dos processadores possuem dados duplicados em suas mais
rpidas. Elas fazem isso para reduzir a latncia para os dados e para reduzir o trfego de memria no barramento. Diante disso,
existem vrias verses diferente do mesmo dado nas caches dos vrios processadores.
6- Descreva o protocolo de snooping para resolver coerncia de cache.
R.: Com o protocolo snooping, os controladores de cache ficam monitorando o barramento para verificar se possuem uma
cpia do bloco compartilhado. Se a duplicao for na leitura, no h problema, mas a escrita deve ser exclusiva de apenas um
processador. O processador precisa saber quais as caches que possuem aquele bloco compartilhado para poder invalid-las ou
atualiz-las com o novo valor escrito. Quando as outras caches precisam daquele dado, elas verificam se eles esto invalidados,
se estiverem, buscam o valor atualizado.
7- Quais as vantagens e desvantagens do algoritmo de snooping.
R.: A vantagem permitir que apenas um processador por vez possa atualizar um bloco compartilhado pelas demais caches,
mantm a integridade. A desvantagem quando ocorre o falso compartilhamento, ou seja, quando duas ou mais variveis
compartilhadas no relacionadas esto localizadas no mesmo bloco da cache. Com isso, todo o bloco trocado entre
processadores, mesmo que eles estejam acessando diferentes variveis.
8- Como funciona o protocolo baseado em diretrio?
R.: O protocolo baseado em diretrio mantm uma o estado de cada bloco na memria principal, inclusive podem incluir quais
caches possuem cpia dos blocos, se eles esto sujos, etc. O diretrio centraliza as informaes, compartilhando-as entre os
processadores.
9- Faa um estudo comparativo entre os protocolos de Snooping e de Diretrios. Em qual situao cada um dos protocolos
melhor aplicado?
R.: O protocolo snooping mantm a coerncia de memria em modelos em que existe um barramento compartilhado entre os
processadores. Em modelo onde os multiprocessadores esto conectados por rede, no h um barramento compartilhado,
diante disso, o diretrio o mtodo mais eficiente para se manter a coerncia de memria. Aplicando-se ento melhor o
snooping em barramentos compartilhados e diretrios onde no h a possibilidade de compartilhar o barramento.