Multiprocessador
• Processamento paralelo è um programa sendo executado por múltiplos processadores simultaneamente.
• Questões básicas para projeto de sistemas multiprocessados:
• Compartilhamento de dados;
• Coordenação entre os processadores;
• Quantidade de processadores;
• Compartilhamento de dados
• Processadores com um único espaço de endereçamento
• Processadores de memória compartilhada.
• UMA – uniform memory access ou SMP – symmetric multiprocessors • NUMA – nonuniform memory access
ARQUITETURA DE COMPUTADORES – RICARDO PANNAIN
287
• Processadores de memória privada.
• Troca de mensagens para processos è send e receive
comunicação
entre
• Novo modelo de paralelismo è clusters è computadores ligados por uma rede.
Categoria
Tipo
Modelo de
Comunicação
Troca de Mensagens
Endereçamento NUMA compartilhado UMA
Conexão Física Rede
Bus
Número de processadores 8-256
8-256
2-64
8-256
2-32
• Programação de multiprocessadores
• Speedup
Exemplo
Suponha que queiramos achar o speedup linear com 100 processadores. Que fração da computação original pode ser seqüencial ?
ARQUITETURA DE COMPUTADORES – RICARDO PANNAIN
288
Solução
Tempo de execução após melhora = (tempo de execução afetado pela melhora / quantidade de melhora) + tempo de execução não afetado
Tempo de execução após melhora / 100 = (tempo de execução afetado pela melhora / 100) + tempo de execução não afetado
Tempo de execução não afetado = (Tempo de execução após melhora / 100) - (tempo de execução afetado pela melhora /
100)
Exemplo
Suponha que queremos fazer duas somas: uma de duas variáveis escalares e uma de duas matrizes 1000 X 1000. Qual o speedup para 100 processadores ?
Solução
Se assumirmos que a performance é função do tempo de adição t, então existe 1 adição não beneficiada pelo paralelismo e 1.000.000 que são è tempo antes = 1.000.001
Tempo de execução depois melhora = (tempo de execução