Introdução ao Processamento Paralelo



Documentos relacionados
Organização e Arquitetura de Computadores I

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores I

Arquitetura de Computadores I

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

ARQUITETURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Visão Geral de Pipelining

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Organização e Arquitetura de Computadores I

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Organização e Arquitetura de Computadores I. de Computadores

Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

Caminho dos Dados e Atrasos

Sistemas Operacionais Processos e Threads

Processos e Threads (partes I e II)

RISC - Reduced Instruction Set Computer

Sistemas Operacionais. Prof. André Y. Kusumoto

Pipeline. Prof. Leonardo Barreto Campos 1

Conflitos. Aula de Março de


28/9/2010. Unidade de Controle Funcionamento e Implementação

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

SSC510 Arquitetura de Computadores. 2ª aula

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES ARQUITETURAS RISC E CISC. Prof. Dr. Daniel Caetano

ARQUITETURA DE COMPUTADORES

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Princípios de funcionamento dos computadores

Organização de Computadores Hardware

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Organização e Arquitetura de Computadores I. de Computadores

Sistemas Computacionais II Professor Frederico Sauer

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Arquitetura de Computadores. Ivan Saraiva Silva

Sistemas Distribuídos. Aleardo Manacero Jr.

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Informática I. Aula 5. Aula 5-13/05/2006 1

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Introdução à Arquitetura de Computadores

Componentes do Computador e. aula 3. Profa. Débora Matos

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Organização de Computadores

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Arquitetura e Organização de Computadores I

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Sistemas Distribuídos

Comparativo de desempenho do Pervasive PSQL v11

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Para os problemas seguintes considere os 5 andares de pipelining do MIPS:

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

RISC X CISC - Pipeline

Arquitetura e Organização de Computadores

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Aula 26: Arquiteturas RISC vs. CISC

Arquitetura de Computadores. Tipos de Instruções

Sistema Operacional Correção - Exercício de Revisão

Orientação a Objetos

Processos. Adão de Melo Neto

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Sistemas Operacionais

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

Arquitetura de Computadores I

Algumas características especiais

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Sistemas Operacionais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Sistemas Operacionais

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

Programação Concorrente Introdução

MODOS DE ENDEREÇAMENTO

Usando o simulador MIPS

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Sistemas Operacionais

Arquitetura de Computadores I

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

ULA Sinais de Controle enviados pela UC

Organização e Arquitetura de Computadores

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

BARRAMENTO DO SISTEMA

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Programação Concorrente Processos e Threads

Transcrição:

Introdução ao Processamento Paralelo Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

Introdução Crescente aumento de desempenho dos PCs (máquinas convencionais). Existem aplicações que requisitam de mais desempenho. Exemplos: simulações físicas; matemática computacional; previsão de tempo; procura de petróleo entre outras.

Introdução Uso de PCs convencionais Seria necessário várias semanas ou meses para executar tais aplicações. Em alguns casos, haveria falta de memória. Exemplo: Compro o melhor PC no mercado e utilizo um simulador para prever o tempo daqui a três dias. O resultado pode ficar pronto daqui a sete dias.

Introdução Área da computação que trata destes problemas Processamento de alto desempenho. Como resolver problemas semelhantes ao da simulação da previsão de tempo? Simplificar o modelo Resultados menos precisos. Arquiteturas paralelas ou especiais.

Introdução Arquiteturas paralelas Obtém melhor desempenho replicando o número de unidades ativas (normalmente processadores). Problemas. O aumento do número de processadores torna o sistema computacional mais complexo. A programação torna-se complexa Particionar e alocar cada parte do programa às unidades ativas.

Processamento Paralelo O tipo de processamento que ocorre nestas máquinas Processamento Paralelo. Definição: várias unidades ativas colaboram na resolução de um mesmo problema com o objetivo de reduzir o tempo total de execução. Os programas devem ser preparados para serem executados em computadores paralelos.

Processamento Paralelo Exemplos de programas paralelos: Uma aplicação escrita em C ou java com várias threads. Uma aplicação escrita em C que foi dividida em vários processos que se comunicam.

Processamento Paralelo Motivação para o uso de processamento paralelo: Desempenho Reduzir o tempo de execução. Tolerância à falhas Vários processadores podem realizar um mesmo cálculo (Reduz a probabilidade de falhas.). Aproveitar recursos.

Processamento Paralelo Como aumentar o desempenho de uma aplicação usando PP? Utilizar mais unidades ativas? Sim, mas existem problemas! Dependência de dados. Distribuição de dados. Sincronização. Áreas críticas.

Processamento Paralelo Exemplo: construção de um muro. Um pedreiro faz um muro em 3 horas. Dois pedreiros fazem um muro em 2 horas. Três pedreiros fazem um muro em 1,5 horas. Quatro pedreiros fazem um muro em 2 horas. Qual a conclusão deste exemplo? A quantidade de trabalho a ser feita limita o número de unidades ativas que podem ser usadas de forma eficiente.

Processamento Paralelo Problemas do exemplo: O muro só pode ser feito de baixo para cima (dependência de dados); Os tijolos devem ser distribuídos entre os pedreiros (distribuição de dados); Um pedreiro não pode levantar o muro do seu lado muito na frente dos outros pedreiros (sincronização); Se existir um único carrinho, este será disputado pelos pedreiros Fila (áreas críticas).

Processamento Paralelo Toda aplicação tem um número ideal de unidades ativas para obtenção do melhor desempenho. O ideal é que cada unidade ativa esteja 100% do tempo executando uma tarefa da aplicação.

Paralelismo. Conceitos Básicos Processos eventos E3 E3 Processos E3 E2 E2 E2 E1 E1 E1 t1 Paralelismo virtual t tempo t1 Paralelismo físico t tempo

Conceitos Básicos Granulação (Nível de paralelismo). Indica o tamanho das unidades de trabalho submetidas aos processadores. Existem três níveis: Fina Unidades de trabalho pequenas; Média Unidades de trabalho médias; Grossa Unidades de trabalho grandes.

Conceitos Básicos Speedup Indica o aumento de desempenho. SpeedUp T T 1 p T 1 é o tempo de execução em um processador. T p é o tempo de execução em p processadores.

Eficiência. Conceitos Básicos Eficiência SpeedUp p No caso ideal (SpeedUp = p), a eficiência seria máxima (Eficiência = 1).

Pipeline Definição Técnica utilizada em processadores que permite executar os diferentes estágios de várias instruções ao mesmo tempo. Objetivo Melhorar o desempenho dos processadores Torná-los mais rápidos.

Pipeline Exemplo: lavar roupas. Lavar Sem pipeline Secar Passar Guardar Com pipeline

Pipeline Cada etapa de execução Estágio em pipelining. Quantos estágios no exemplo lavar roupas? O tempo de execução de uma tarefa completa diminui com relação ao caso sem pipeline? Se todos os estágios tiverem o mesmo tempo de execução e houver trabalho suficiente, o ganho usando pipelining é igual ao número de estágios.

Pipeline Qual o ganho no nosso exemplo? Ganho T S / Pipeline T C/ Pipeline 8,0hs 3,5hs 2,28 Usamos apenas quatro trouxas de roupas. Ganho Número de estágios Se Número de tarefas Número de estágios Tarefa: determinem o ganho para 20 tarefas.

Pipeline Os princípios do exemplo anterior se aplicam na execução de instruções em processadores. Exemplo: Arquitetura MIPS (Microprocessor without interlocked pipeline stages). As instruções MIPS exigem cinco etapas: 1. Buscar instrução da memória; 2. Ler registradores enquanto a instrução é decodificada. 3. Executar a operação ou calcular um endereço. 4. Acessar um operando na memória de dados. 5. Escrever o resultado em um registrador.

Pipeline Tarefa: pesquisem na internet sobre a arquitetura MIPS e estudem o arquivo MIPS_instruções.pdf. Simulador de pipeline MIPS WebSimple- MIPS. http://201.17.130.17/matheus/simple/?page=m anual

Desempenho: ciclo único x pipeline Comparar o tempo médio entre as instruções MIPS de uma implementação em ciclo único e com pipeline.

Desempenho: ciclo único x pipeline Modelo de ciclo único. Instruções MIPS exigem cinco estágios. Todas as instruções levam 1 ciclo de clock. Ciclo de clock = Tempo entre instruções = cte. O ciclo de clock deve ser igual ao tempo total da instrução mais lenta.

Desempenho: ciclo único x pipeline Modelo com pipeline. Semelhante ao modelo de ciclo único. O ciclo de clock deve ser igual ao tempo de duração do estágio mais lento.

Desempenho: ciclo único x pipeline Os cinco estágios das instruções MIPS: Representação dos estágios de uma instrução MIPS. 1. Buscar instrução da memória; 2. Ler registradores enquanto a instrução é decodificada. 3. Executar a operação ou calcular um endereço. 4. Acessar um operando na memória de dados. 5. Escrever o resultado em um registrador.

Desempenho: ciclo único x pipeline Tempo gasto em cada estágio e tempo total de algumas instruções MIPS. Qual o tamanho do ciclo de clock para um projeto de ciclo único e para um projeto com pipeline? - Ciclo único 800 ps (instrução lw). - Pipeline 200 ps (estágio mais lento).

Desempenho: ciclo único x pipeline Execução do ciclo único Três instruções lw. Execução com pipeline Três instruções lw.

Desempenho: ciclo único x pipeline Tempo entre instruções com pipeline Tempo entre instruções Número de estágios sem pipeline Exemplo: lavar roupas. Tempo entre instruções com pipeline 2,0 4,0 0,5h Exemplo: três instruções lw. 800 Tempo entre instruções com pipeline 160 200??? 5

Desempenho: ciclo único x pipeline No exemplo das instruções lw, os tempos dos estágios são desbalanceados, ao contrário do exemplo lavar roupas. Tempos dos estágios iguais. Ganho Ganho max exec _ total Tempo entre instruções Tempo entre instruções Tempo execução total Tempo execução total sem pipeline com pipeline sem pipeline com pipeline Se Número de instruções Ganho exec _ total Número de estágios Número de estágios

Desempenho: ciclo único x pipeline Tempos de estágios diferentes. Ganho M ax Tempo entre instruções Tempo entre instruções sem pipeline com pipeline Número de estágios Ganho Exec _ total Tempo execução total Tempo execução total sem pipeline com pipeline Se Número de instruções Número de estágios Ganho Ganho Número de estágios Exec _ total Max

Exercício Para um projeto de ciclo único e para um projeto com pipeline, determine para a sequência de instruções a seguir. O tamanho do ciclo de clock. Desenhe os estágios de cada projeto. O ganho máximo. O ganho no tempo de execução total. add $s0, $t0, $t1 sub $s1, $t2, $t3 sw $s2, $s3

Pipeline Hazards (Riscos) Ocorrência Quando a próxima instrução não pode ser executada no ciclo de clock seguinte. Existem três tipos de pipeline hazards: Estruturais; Dados; Controle.

Hazards estruturais. Pipeline Hazards O hardware não pode admitir a combinação de instruções que queremos executar no mesmo ciclo de clock. Exemplo Considere que temos uma única memória. Se dois estágios de instruções diferentes precisarem acessar à memória, um hazard estrutural ocorrerá.

Hazards de dados. Pipeline Hazards Ocorrem quando o pipeline precisa ser interrompido porque um estágio precisa esperar até que outro seja concluído. Exemplo Quando uma instrução depende de uma anterior que ainda está no pipeline. t0 t1 s0 X s0? Colegiado de Engenharia da Computação t3 CECOMP X

Hazards de dados. Solução: Pipeline Hazards Assim que a ULA gerar o resultado da soma, podemos fornecê-lo como uma entrada para a subtração. Acrescentar hardware Forwarding ou bypassing.

Hazards de dados. Pipeline Hazards Forwarding funciona bem, mas não resolve todas as situações. Exemplo Suponha no exemplo anterior uma instrução lw ao invés da instrução add. s0 Um atraso de 1 estágio Pipeline stall Bolha.

Hazards de controle. Pipeline Hazards Utilizado para tomar decisões com base nos resultados de uma instrução enquanto outras estão sendo executadas. Exemplo Lavar roupas muito sujas. A configuração da lavadora é suficiente para limpar a roupa? Esperar até o segundo estágio e verificar se é necessário mudar a configuração.

Hazards de controle. Pipeline Hazards Solução Stall (bolha) - Operar sequencialmente até que o primeiro lote esteja seco e depois repetir até obter a configuração correta. Funciona, mas é uma solução lenta. Solução equivalente em um PC Instrução de desvio. Após o desvio, é necessário buscar a instrução no ciclo de clock seguinte Qual instrução? Solução Gerar uma bolha após buscar a instrução de desvio, até descobrir a próxima instrução.

Hazards de controle. Pipeline Hazards

Hazards de controle. Pipeline Hazards Outra solução Prever Se estiver certo da configuração necessária para lavar as roupas, basta continuar lavando as roupas seguintes. Sem desvios - Sem atraso. Caso esteja errado, terá que refazer.

Hazards de controle. Pipeline Hazards Os PCs utilizam técnicas de previsão. Algumas técnicas: Os desvios nunca ocorrerão Estando certo, o pipeline seguirá. Caso contrário, sofre uma bolha. Considerar alguns desvios previstos como tomados e outros como não tomados. Manter histórico de desvios tomados e não tomados, e depois utilizá-los na previsão.