SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

Documentos relacionados
SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Processamento Paralelo & Multiprocessadores

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 01 Introdução à Programação Concorrente Prof. Jó Ueyama Créditos: Prof. Júlio C. Estrella

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

SSC0611 Arquitetura de Computadores

SSC PROGRAMAÇÃO CONCORRENTE. Aula 02 Revisão de Arquiteturas Paralelas Parte 1 Prof. Jó Ueyama

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

SSC0611 Arquitetura de Computadores

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Linguagem de Programação II

SSC510 Arquitetura de Computadores. 8ª aula

SSC PROGRAMAÇÃO CONCORRENTE. Aula 04 Técnicas de Desenvolvimento de Programas Paralelos Parte 1 Prof. Jó Ueyama

Caracterização de Sistemas Distribuídos

Organização de Computadores II. Arquiteturas MIMD

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Sistemas de Memória Cache para Multiprocessadores

Decisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados

Memória Compatilhada Distribuída. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Organização e comunicação em plataformas paralelas

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Uma Proposta para Migração de Páginas Linux

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Organização e Arquitetura de Computadores INTRODUÇÃO

SSC0112 Organização de Computadores Digitais I

Arquitetura de Computadores. Processamento Paralelo

SSC0611 Arquitetura de Computadores

SSC PROGRAMAÇÃO CONCORRENTE. Aula 07 Técnicas de Desenvolvimento de Programas Paralelos Parte 2 Prof. Jó Ueyama

Introdução à Computação: Sistemas de Computação

Arquitetura e Organização de Computadores

Processamento Paralelo

Organização e Arquitetura de Computadores I

Multiprogramação leve em arquiteturas multi-core

Ferramentas para Programação em Processadores Multi-Core

Introdução aos Sistemas Distribuídos

O que é um sistema distribuído?

SIST706 Sistemas Distribuídos

Carlos Eduardo Batista Centro de Informática - UFPB

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Organização de Computadores I

Aula 12: Memória: Barramentos e Registradores

Organização e Arquitetura de Computadores I

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

William Stallings Arquitetura e Organização de Computadores 8 a Edição

ORGANIZAÇÃO DE COMPUTADORES

Os textos nestas caixas foram adicionados pelo Prof. Joubert

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Aula 17: Organização de Computadores

MEMÓRIA CACHE FELIPE G. TORRES

ARQUITETURA DE COMPUTADORES

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Gerência de memória III

SSC510 Arquitetura de Computadores 1ª AULA

SSC PROGRAMAÇÃO CONCORRENTE

Multiprocessadores com Memória Compartilhada

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

SSC0611 Arquitetura de Computadores

Arquitetura e Organização de Computadores

SSC0640 Sistemas Operacionais I

Barramento. Prof. Leonardo Barreto Campos 1

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Ciências da Computação

Sistemas Distribuídos

Protocolos de Coerência de Memória Cache

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Parte I Multiprocessamento

Modelo de Von Neumann

Concorrência em Processos

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Barramento CoreConnect

Gerência de memória II

SSC510 Arquitetura de Computadores. 6ª aula

Disciplina: Arquitetura de Computadores

Sistemas Operacionais

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

SSC0112 Organização de Computadores Digitais I

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

AGT0001 Algoritmos Aula 01 O Computador

Sistemas Distribuídos

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

Sistemas Operacionais. Sistema de entrada e Saída

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Organização e Arquitetura de Computadores I

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Embora seja brutalmente mais rápida que o HD e outros periféricos, a memória RAM continua sendo muito mais lenta que o processador.

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Características de Sistemas Distribuídos

Organização de Computadores Sistema de Interconexão. Professor: Francisco Ary

Unidade Central de Processamento 2. Registradores

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Laboratório de Programação Paralela. Introdução. Prof. Carlos Bazilio

Sistemas Distribuídos

Transcrição:

SSC-0742 PROGRAMAÇÃO CONCORRENTE Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

Créditos Os slides integrantes deste material foram construídos a partr dos conteúdos relacionados às referências bibliográ fcas descritas neste documento 2

Visão Geral da Aula de Hoje 3

ARQUITETURAS DE MEMÓRIA 4

Arquiteturas de Memória Memória Compartlhada Múltplos processadores compartlham os mesmos recursos de memória em um espaço de endereçamento global Modifcações efetuadas em uma região de memória por um processador são visíveis a todos os outros processadores Divisão em duas classes: UMA tempo de acesso uniforme NUMA tempo de acesso não uniforme 5

Memória Compartlhada - UMA Uniform Memory Access (UMA) Comum em processadores simétricos (SMP) Tempo de acesso igual para toda a memória Coerência de Cache Se um processador atualiza um dado na memória compartlhada, isso tem que ser propagado para os outros processadores (cache interna à CPU) Normalmente feita em hardware 6

Memória Compartlhada - UMA 7

Memória Compartlhada - NUMA Non-Uniform Memory Access SMPs conectados por canais de comunicação O espaço de endereçamento ainda é global e um SMP pode acessar diretamente a memória do outro O tempo de acesso à uma posição de memória varia dependendo se ela pode ser acessada localmente ou em um processador remoto através dos canais de comunicação Se existe Coerência de Cache, a arquitetura é chamada de CC-NUMA (Cache Coeherent NUMA) 8

Memória Compartlhada - NUMA 9

Memória Compartlhada Vantagens O espaço de endereçamento global permite um modelo de progamação mais amigável (conhecido) O compartlhamento de dados entre as tarefas é rápido 10

Memória Compartlhada Desvantagens Falta de escalabilidade. Aumentando o número de CPUs, aumenta o tráfego entre memória e CPU (botleneck de von Neumann) Para sistemas com coerência de cache Aumento de tráfego associado com o gerenciamento de memória/cache É de responsabilidade do programador a sincronização dos acessos à memória global compartlhada Custo: alto para máquinas com o número elevado de processadores 11

Memória Distribuída Memória Distribuída Sistemas de memória distribuída possuem uma rede de comunicação para interconectar os processadores Cada processador tem sua própria memória local Não existe um espaço de endereçamento global, um processador tem acesso somente à sua memória Coerência de cache não se aplica. Por que? 12

Memória Distribuída É tarefa do programador determinar quando e como um dado é propagado de um processador para outro A sincronização das tarefas é também função do programador 13

Memória Distribuída Vantagens A memória é escalável com o número de processadores Mais Processadores => Maior Quantdade Memória Acesso rápido a memória do próprio processador sem interferência e sobrecarga da coerência da cache Desvantagens O programador precisa cuidar de muitos detalhes associados à comunicação de dados entre os processadores Difculdade de mapear estruturas de dados projetadas para uma memória global com esta organização de memória 14

Arquiteturas de Memória Memória Compartlhada e Distribuída Os computadores maiores e mais rápidos do mundo empregam ambas as arquiteturas de memória: compartlhada e distribuída. O componente de memória compartlhada é em geral um SMP com coerência da cache O componente de memória distribuída é uma rede de SMPs. 15

Compartlhada e Distribuída Processadores em um SMP (várias CPU e uma memória) só endereçam diretamente a sua memória É necessária comunicação em rede para mover dados de um SMP para outro Vantagens e Desvantagens Compartlha as vantagens e desvantagens das arquiteturas de memória compartlhada e distribuída, conforme o uso 16

Coerência de Cache 17

Coerência de Cache Coerência de cache se refere à manutenção de informações coerentes nas caches dos diversos processadores que compõem uma arquitetura paralela No caso das máquinas com endereçamento global, um endereço de hardware adicional é necessário para coordenar o acesso a dados que podem ter várias cópias na rede 18

Protocolos de Validação e Invalidação Quando o valor de uma variável é modifcado, as cópias podem ser anuladas ou atualizadas 19

Protocolos de Validação e Invalidação Invalidação e Atualização Se um processador lê um valor apenas uma vez e não precisa dele novamente, um protocolo de atualização impõe um overhead Se dois processadores fazem testes intercalados com atualizações em uma variável, um protocolo de atualização é melhor. Ambos os protocolos sofrem falsas sobrecargas de compartlhamento (duas palavras que não são compartlhadas, porém fcam na mesma linha de cache). A maioria das máquinas atuais usam protocolos de invalidação 20

Protocolos de Coerência de Cache Cada cópia de um item de dado é associada a um estado, por exemplo: Compartlhado: Existem outras cópias do item de dado igualmente válidas Sujo: É a única cópia válida Inválido: A cópia de dados é inválida. Existe outra cópia mais atual 21

Protocolos de Coerência de Cache Diagrama de estados para um protocolo de coerência de três estados 22

Coerência de Cache Exemplo de execução de um programa com o protocolo de coerência de três estados 23

Protocolos de Cache Snoopy Como as invalidações são enviadas aos processadores corretos? Em um protocolo Snoopy, um hardware específco usa o barramento para monitorar quais são as operações que estão sendo feitas na memória, alterando o cache local de forma apropriada Protocolo Snoopy de coerência de cache 24

Protocolos de Cache Snoopy Cópias de dados marcadas como sujas Operações subsequentes podem ser executadas localmente no cache Sem tráfego externo Se item de dados lido por um número de processadores Transição para o estado compartlhado na cache e todas a subsequentes operações de leitura tornam-se locais Se um processador atualiza dados, ele gera requisições de coerência no barramento 25

Protocolos Baseados em Diretórios Nos protocolos snoopy, cada operação de coerência é enviada para todos os processadores Limitação aumento da comunicação no barramento Por que não enviar requisições de coerência somente para os processadores que precisam ser notfcados? Uso de um diretório centralizado ou vários diretórios distribuídos para a manutenção das informações de coerência de cache 26

Protocolos Baseados em Diretórios Arquitetura tpica de um sistema baseado em diretórios (a) diretório centralizado, (b) diretório distribuído. 27

Protocolos Baseados em Diretórios Os bits adicionais para armazenar o diretório pode aumentar o overhead A rede básica deve ser capaz de realizar todos os pedidos de coerência O diretório centralizado é um ponto de contenção 28

EXERCÍCIO E LEITURA RECOMENDADA 29

Exercício Acessar o Moodle 30

Leitura Recomendada Introducton to Parallel Computng, Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar - 2ª ed., Addison Wesley 31

Bibliografa Introducton to Parallel Computng, Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar - 2ª ed., Addison Wesley Introducton to Parallel Computng htps://computng.llnl.gov/tutorials/parallel_com p/ 32

Dúvidas 33

Próxima Aula... Modelos de Programação Paralela Terminologia Geral de Programação Paralela 34