Paralelismo em Máquinas Multiprocessadas

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Integridade de Dados em Memórias Cache
Introdução à Hierarquia de Memória
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
O Sistema de Computação
Noções de Sistemas Operacionais
Arquitetura de Computadores
Sistemas Operacionais - 3
Software Básico Silvio Fernandes
ARQUITETURA DE COMPUTADORES II
Modelos de Troca de Dados em Nível Elétrico
Multithreading e multiprocessamento
Modelos de Comunicação em Sistemas Distribuídos
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Computação de Alto Desempenho
Chapter 4: Threads.
Modelos de Computadores Paralelos
SSC114 Arquitetura de Computadores Arquiteturas Paralelas
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Rganização de Computadores Multiprocessadores Capítulo 9 – Patterson & Hennessy Organização de Computadores Multiprocessadores Capítulo 9 – Patterson &
Sistemas Operacionais
Organização da Memória Principal
Threads.
Sistemas Operacionais
Capítulo 6 Organização.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Visão Geral de Equipamentos de Rede
2- Entendendo o que é Arquitetura e Organização
Introdução à Programação
Airam J. Preto , Celso L. Mendes
SISTEMAS OPERACIONAIS
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
Fundamentos de programação CUDA
Tópicos em redes e sistemas distribuídos B
Linguagem de Programação IV
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação
Arquitetura de computadores
Sistemas Operacionais
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Sistemas Operacionais I
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 17: Introdução às Arquiteturas Paralelas.
Sistemas Distribuídos
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Sistemas Operacionais
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
TELP: Aplicações Paralelas em Ambientes de Passagem de Mensagens
Introdução à Hierarquia de Memória
ARQUITETURA DE COMPUTADORES II
UML - Unified Modeling Language
SISTEMAS OPERACIONAIS I
Introdução aos Protocolos de Roteamento Dinâmico
Paralelismo em Máquinas Multiprocessadas
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Aula 1 – Introdução a Redes de Computadores
Processos.
Sistemas Distribuídos
Sistemas Operacionais
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Linux em Máquinas Paralelas
Estrutura de Interconexão
Sistemas de Memória Cache em Multiprocessadores
Algoritmos Paralelos.
Sistemas Operacionais Distribuídos
Arquitetura de computadores
Conceituação e Classificação
Transcrição da apresentação:

Paralelismo em Máquinas Multiprocessadas ARQUITETURA DE COMPUTADORES II Paralelismo em Máquinas Multiprocessadas Prof. César Augusto M. Marcon

Índice Introdução a Classificação de Máquinas Classificação de Flynn Classificação Segundo Modelos de Memória

Introdução a Classificação de Máquinas Por que estudar classificações ? Para identificar critérios da classificação Por que os critérios são importantes e quais são as suas implicações Para analisar todas possibilidades e efeitos destas possibilidades nas arquiteturas Mesmo para classes que não foram implementadas ou implementações que não deram certo Para entender como se deu a evolução da área Para planejar a evolução da área

Índice Introdução a Classificação de Máquinas Classificação de Flynn SISD – Single Instruction Single Data SIMD – Single Instruction Multiple Data MISD – Multiple Instruction Single Data MIMD – Multiple Instruction Multiple Data Classificação Segundo Modelos de Memória

Classificação de Flynn Origem em meados dos anos 70 Máquinas classificadas por fluxo de dados e fluxo de instruções

SISD (Single Instruction Single Data) Um único fluxo de instruções atua sobre um único fluxo de dados Nessa classe, são enquadradas: Máquinas Von Neumann tradicionais com apenas um processador C – Unidade de controle P – Central de processamento M - Memória

MISD (Multiple Instruction Single Data) Múltiplas unidades de processamento (P), com sua unidade de controle (C), recebendo fluxo diferente de instruções As Ps executam suas diferentes instruções sobre mesmo fluxo de dados Diferentes instruções operam mesma posição de memória ao mesmo tempo, executando instruções diferentes Além de ser tecnicamente impraticável, essa classe é considerada vazia

SIMD (Single Instruction Multiple Data) Processamento controlado por 1 unidade de controle (C), alimentada por 1 fluxo de instruções Mesma instrução é enviada para diversos processadores (P) Todos Ps executam instruções em paralelo, de forma síncrona, sobre diferentes fluxos de dados Único programa executado sobre diferentes dados Assemelhe-se ao paradigma de execução seqüencial Processamento das diferentes posições de memória em paralelo Memória deve ser implementada como mais de um módulo

SIMD (Single Instruction Multiple Data) Nessa classe são enquadradas as máquinas vetoriais CM-2 MasPar Etc.

MIMD (Multiple Instruction Multiple Data) Cada C recebe 1 fluxo de instruções e repassa para seu P para que seja executado sobre seu fluxo de instruções Cada processador executa seu próprio programa sobre seus próprios dados de forma assíncrona Princípio MIMD é bastante genérico Qualquer grupo de máquinas, se analisado como uma unidade pode ser considerado uma máquina MIMD Igualmente ao SIMD, unidade de memória não pode ser implementada como um único módulo

MIMD (Multiple Instruction Multiple Data) Nessa classe são enquadrados Servidores com múltiplos processadores (dual, quad) Redes de estações e máquinas como CM-5 nCUBE Intel Paragon Cray T3D

Exercícios De um exemplo de máquina para a classe MISD de Flynn Qual o princípio de funcionamento das arquiteturas SIMD? Comente para as arquiteturas SIMD o parâmetro "granularidade" dos processadores Analise uma máquina vetorial com relação à classificação de Flynn. Utilize a figura apresentada em aula e mostre os elementos de uma arquitetura vetorial Quais são as características do paralelismo em uma máquina SIMD e MIMD: ( ) paralelismo espacial assíncrono; ( ) paralelismo espacial síncrono. Explique?

Índice Introdução a Classificação de Máquinas Classificação de Flynn Classificação Segundo Modelos de Memória Memória Compartilhada x Não Compartilhada Memória Centralizada x Distribuída

Distribuição de Memória Refere-se à localização física da memória Memória distribuída (distributed memory) Memória implementada com vários módulos Cada módulo fica próximo de um processador Memória centralizada (centralized memory) Memória encontra-se à mesma distância de todos os processadores  Independentemente de ter sido implementada com um ou vários módulos

Compartilhamento de Memória Refere-se ao espaço de endereçamento dos processadores Memória compartilhada (shared memory) Único espaço de endereçamento usado para comunicação entre processadores Operações de load e store Memória não compartilhada Múltiplos espaços de endereçamento privados (multiple private address spaces)  um para cada processador Comunicação através de troca de mensagens  operações send e receive Conforme compartilhamento de memória as máquinas podem ser Memória S CPU E Memória S CPU E Multiprocessadores Multicomputadores

Multiprocessadores Máquina paralela construída a partir da replicação de processadores de uma arquitetura convencional Todos processadores (P) acessam memórias compartilhadas (M) através de uma infra-estrutura de comunicação Possui apenas um espaço de endereçamento Comunicação entre processos de forma bastante eficiente (load e store) Em relação ao tipo de acesso às memórias do sistema, multiprocessadores podem ser classificados como UMA NUMA, NCC-NUMA, CC-NUMA COMA

Acesso Uniforme à Memória (Uniform Memory Access - UMA) Memória centralizada Encontra-se à mesma distância de todos processadores Latência de acesso à memória Igual para todos processadores Infra-estrutura de comunicação Barramento é a mais usada  suporta apenas uma transação por vez Outras infra-estruturas também se enquadram nesta categoria, se mantiverem uniforme o tempo de acesso à memória

Acesso Não Uniforme à Memória (Non-Uniform Memory Access - NUMA) Memória Distribuída Espaço de endereçamento único Memória implementada com múltiplos módulos associados a cada processador Comunicação processador-memórias não locais através da infra-estrutura de comunicação Tempo de acesso à memória local < tempo de acesso às demais  Acesso não uniforme  Distância das memórias variável  depende do endereço

Arquiteturas de Memória Somente com Cache (Cache-Only Memory Architecture - COMA) Memórias locais estão estruturadas como memórias cache São chamadas de COMA caches COMA caches têm muito mais capacidade que uma cache tradicional Arquiteturas COMA têm suporte de hardware para a replicação efetiva do mesmo bloco de cache em múltiplos nós Reduz tempo global para pegar informações

Multicomputadores Processadores (P) possuem memória local (M) de acesso restrito Memórias de outros processadores são remotas  Possuem espaços de endereçamento distintos Não é possível uso de variáveis compartilhadas Troca de informações feita por envio de mensagens Máquinas também chamadas message passing systems Multicomputadores são construídos a partir da replicação de toda arquitetura convencional, não apenas do processador, como nos multiprocessadores

Sem Acesso à Memória Remota (Non-Remote Memory Access - NORMA) Multicomputadores são classificados como NORMA Replicação inteira da arquitetura faz que cada nó só consiga endereçar sua memória local

Visão Geral da Classificação Segundo Modelo de Memória

Exercícios Quais são as duas possibilidades para se construir máquinas com vários processadores? Que nome é dado a cada uma delas? Qual o efeito prático de ter um espaço de endereçamento único? E um espaço de endereçamento distinto? Discuta a classificação de máquinas paralelas segundo a memória (compartilhamento/distribuição) Qual a principal diferença entre memórias centralizadas e memórias distribuídas? O que caracteriza esta classificação? Discuta a afirmação: - “A programação paralela com memória de endereçamento compartilhado é mais simples que a programação com endereçamento distribuído” Compare o desempenho de multicomputadores com multiprocessadores Quais as vantagens das máquinas UMA/NUMA sobre as máquinas NORMA, sob o ponto de vista do programador? Por quê? Diferencie as arquiteturas com organização de memória tipo UMA/NUMA das arquiteturas tipo NORMA

Exercícios Por que alguns autores consideram uma arquitetura COMA como subclassificação de arquiteturas NUMA? Qual classe de máquinas possui uma memória distribuída e compartilhada? Discuta a afirmação: - “Uma máquina COMA tem maior desempenho que uma máquina NORMA”. Diga se verdadeira ou não e quando? Qual o efeito de trabalhar em máquinas NUMA, se comparados com máquinas UMA? Desenhe um esquema básico de arquiteturas NORMA e NUMA. Os desenhos são muito parecidos. Onde esta a diferença significativa entre eles? Como a máquina UMA, que se utiliza de um barramento para ligar os processadores à memória principal se beneficiaria dos múltiplos canais de uma memória entrelaçada? Qual a grande vantagem de uma máquina COMA frente a uma máquina NUMA? Quais são as características das arquiteturas UMA (acesso uniforme à memória) e NUMA (acesso não uniforme à memória), quanto: (a) número de processadores, (b) rede de interconexão, (c) tempo de acesso à memória? Faça um esquema em blocos das arquiteturas UMA e NUMA

Exercícios (ENADE 2008 - adaptado) Uma alternativa para o aumento de desempenho é o uso de processadores com múltiplos núcleos (multicores). Nesses sistemas, cada núcleo, normalmente, tem funcionalidades completas de um processador. Atualmente é comum configurações com 4 ou mais núcleos. Com relação ao uso de multicores, e sabendo que threads são estruturas de execução associadas a um processo, que compartilham áreas de código e dados, mantendo contextos independentes, analise as seguintes asserções: Tendo suas atividades divididas em múltiplos threads que podem ser executadas paralelamente, aplicações podem se beneficiar mais efetivamente dos diversos núcleos dos processadores multicores porque o SO que executa em processadores multicores pode alocar os núcleos existentes para executar simultaneamente diversas sequências de código, sobrepondo suas execuções e, normalmente, reduzindo o tempo de resposta das aplicações às quais estão associadas. Acerca dessas asserções, assinale a opção correta: As duas asserções são proposições verdadeiras, sendo a segunda uma justificativa correta da primeira As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. Tanto a primeira quanto a segunda asserções são proposições falsas.

Resposta de Exercícios (ENADE 2008 - adaptado) Uma alternativa para o aumento de desempenho é o uso de processadores com múltiplos núcleos (multicores). Nesses sistemas, cada núcleo, normalmente, tem funcionalidades completas de um processador. Atualmente é comum configurações com 4 ou mais núcleos. Com relação ao uso de multicores, e sabendo que threads são estruturas de execução associadas a um processo, que compartilham áreas de código e dados, mantendo contextos independentes, analise as seguintes asserções: Tendo suas atividades divididas em múltiplos threads que podem ser executadas paralelamente, aplicações podem se beneficiar mais efetivamente dos diversos núcleos dos processadores multicores porque o SO que executa em processadores multicores pode alocar os núcleos existentes para executar simultaneamente diversas sequências de código, sobrepondo suas execuções e, normalmente, reduzindo o tempo de resposta das aplicações às quais estão associadas. Acerca dessas asserções, assinale a opção correta: As duas asserções são proposições verdadeiras, sendo a segunda uma justificativa correta da primeira. As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. Tanto a primeira quanto a segunda asserções são proposições falsas.