Processamento Paralelo

Documentos relacionados
SSC510 Arquitetura de Computadores. 7ª aula

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

SSC0611 Arquitetura de Computadores

Processamento Paralelo

SSC0510 Arquitetura de Computadores

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD

Arquitetura de Computadores. Processamento Paralelo

Organização e Arquitetura de Computadores I

Arquitetura de Computadores

Arquitetura de Computadores. Prof. João Bosco Jr.

Sistemas Distribuídos

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

SSC510 Arquitetura de Computadores. 6ª aula

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

PARALELISMO NO NÍVEL DO PROCESSADOR

Estrutura da Apresentação. Introdução ao Processamento Paralelo e Distribuído. Conceitos em PPD. Conceitos em PPD 4/26/09.

Computadores Vetoriais

SIST706 Sistemas Distribuídos

3. Unidade Central de Processamento

Multiprogramação leve em arquiteturas multi-core

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Arquitetura de Computadores Aula 11 - Multiprocessamento

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Unidade 12: Introdução ao Paralelismo:

Arquiteturas Paralelas

Modelo de Von Neumann

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

Arranjo de Processadores

Programação Distribuída e Paralela. Jorge Barbosa

SSC0611 Arquitetura de Computadores

Taxonomia de Flynn. Procura classificar todas as arquitecturas de computadores com base no processamento das instruções e dos dado.

Disciplina de Arquitetura de Computadores

Caracterização de Sistemas Distribuídos

ORGANIZAÇÃO DE COMPUTADORES

Carlos Eduardo Batista Centro de Informática - UFPB

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Processadores. Principal função é executar programas armazenados na memória principal.

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

Sistemas Operacionais. Tipos de SO

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

Microarquiteturas Avançadas

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

Sistemas Operacionais. Conceitos de Hardware

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

Computadores e Programação (DCC/UFRJ)

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

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

Sistemas Operacionais Distribuídos

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Parte I Multiprocessamento

Arquitetura de Computadores

28/8/13. Processadores. Introdução

2º Estudo Dirigido CAP 3

Conceitos Básicos Processador

Arquitetura de Computadores Unidade Central de Processamento CPU

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Técnicas para vetorização de código. Bruno Cardoso Lopes Instituto de Computação - Unicamp

Unidade Central de Processamento UCP (CPU)

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Linguagem de Programação II

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

ARQUITETURA DE COMPUTADORES

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

Processador. Processador

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Algoritmos Computacionais

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

SSC0510 Arquitetura de Computadores

Organização e Arquitetura de Computadores I

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

Prof. Sandro Wambier

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

16/8/2010. A arquitetura de um sistema computacional representa o modelo da organização e funcionamento de um sistema de processamento

Organização de Computadores II. Arquiteturas MIMD

ORGANIZAÇÃO DE COMPUTADORES

Microprocessadores II - ELE 1084

Barramento. Prof. Leonardo Barreto Campos 1

MICROPROCESSADORES. Aula 10

SSC510 Arquitetura de Computadores 1ª AULA

Organização de Sistemas Computacionais Processadores: Organização da CPU

Curso: Redes de Computadores

PLANEJAMENTO DAS DISCIPLINAS DE SISTEMAS DIGITAIS NA EC3. Workshop de Graduação do PCS Prof. Edson S. Gomi 31 de julho de 2018

Introdução à Informática Engenharia Agrícola

Organização de Computadores Aula 05

Arquitetura e Organização de Computadores

Sistemas Operacionais

Prof. Gustavo Oliveira Cavalcanti

Arquitetura de Computadores. Ciclo de Busca e Execução

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Processadores

Processadores para computação de alto desempenho

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Arquiteturas de Computadores. Programa de Pós-Graduação em Ciência da Computação. Plano da aula. Histórico. Quatro gerações

Arquiteturas paralelas Parte 1

Transcrição:

Processamento Paralelo por Helcio Wagner da Silva

Introdução Tradicionalmente, o computador tem sido visto como uma máquina seqüencial Esta visão nunca foi completamente verdadeira No nível das µo, vários sinais de controle são gerados ao mesmo tempo A técnica de pipeline sobrepõe instruções, pelo menos durante as operações de busca e execução Em máquinas superescalares, várias instruções podem ser executadas paralelamente 2

Introdução Novas alternativas para o paralelismo Multiprocessadores simétricos (SMP) Clusters Maquinas com Acesso Não-uniforme a Memória (NUMA) Surgiram a partir de novas tecnologias e do barateamento do HW Objetivos 1. Melhoria do desempenho 2. Aumento da disponibilidade (tolerância a falhas) 3

Organizações de Múltiplos Processadores SISD (Única Instrução, Único Dado) Unidade de Controle (UC) fornece uma seqüência de instruções para a Unidade de Processamento (UP) UP opera sobre uma única Seqüência de Dados (SD) de uma única Unidade de Memória (UM) Exemplo: sistema uniprocessado SI SD UC UP UM 4

Organizações de Múltiplos Processadores SIMD (Única Instrução, Múltiplos Dados) UC alimenta várias UP Cada UP opera sobre uma única SD de uma UM Exemplo: Processadores vetoriais e matriciais SD 1 UP 1 UM 1 UC SI SD 2 UP 2 UM 2...... UP n SD n UM n 5

Arquiteturas SIMD Processadores Vetoriais Processadores Vetoriais provêm instruções de alto nível sobre vetores de dados, tais como multiplicar, subtrair, somar Em máquinas escalares, essas operações são realizadas através de um loop Em máquinas vetoriais, essas operações são realizadas em uma única instrução vetorial 3

Arquiteturas SIMD Processadores Vetoriais Vantagens: Redução da quantidade de fetch e decode de instruções. Não há necessidade de verificação de conflitos de dados, pois as operações entre elementos dos vetores que estão na mesma operação são independentes. Operações vetoriais são atômicas e eliminam a sobrecarga gerada pelos saltos condicionais e comparações necessárias ao controle de repetições. As operações entre elementos podem ser paralelizadas ou executadas em pipeline. Como há uma quantidade menor de instruções por programa, há uma quantidade menor de falha no cache de instruções. 4

Arquiteturas SIMD Processadores Vetoriais Os processadores vetoriais podem ser de dois tipos: Registrador-Registrador Operações vetoriais sobre registradores Somente as operações de load vector e store vector acessam a memória Memória-Memória Operandos buscados diretamente da memória 8

Arquiteturas SIMD Processadores Vetoriais Arquitetura de um processador vetorial genérico Banco de registradores vetoriais Gerador de endereço de vetor: Responsável por gerar o endereço de um vetor a ser buscado na memória. Memória Unidades aritméticas pipeline (Functional units): Efetuam as operações sobre os vetores. Controlador vetorial (Vector Data Switch): Responsável por direcionar um vetor para a unidade 10

Arquiteturas SIMD Processadores Vetoriais Processador Escalar: Realiza operações sequenciais, como por exemplo, testes de dependências, gerenciamento de E/S e memória, etc Quando identifica uma operação vetorial, encaminha para o Controlador Vetorial Endereços são encaminhados ao Controlador de Memória e Gerador de Endereços, onde os operandos são buscados A Unidade Aritmética Pipeline executa as instruções vetorais 11

Arquiteturas SIMD Processadores Vetoriais Exemplo de uma instrução de carregamento de um vetor 13

Arquiteturas SIMD Processadores Vetoriais Para melhorar ainda mais o desempenho, pode-se aumentar o número de ULAs 17

Processamento vetorial pipelines

Arquiteturas SIMD Processadores Vetoriais Problemas para a vetorização Quando o tamanho do vetor é maior do que o dos registradores vetoriais, o compilador deve quebrar em várias operações vetoriais Stride Quantidade de dados que devem ser saltadas na leitura/escrita Utilizado principalmente quando se trabalha com matrizes, pois estas não são armazenadas sequencialmente na memória Normalmente as instruções de load e store possuem um valor para se especificar o stride 20

Arquiteturas SIMD Processadores Vetoriais Supercomputador Vetorial Cray T90 22

Instruções Vetoriais em Microprocessadores MMX (Pentium ) Registradores Vetoriais de 64 bits 3DNow (AMD) SSE (Streaming SIMD Extension) (Pentium III) 8 Registradores Vetoriais de 128 bits e novo conjunto de Instruções (+70) SSE2 (Pentium IV) Registradores Vetorais de 512 bits com elementos de 64 bits mais novas instruções (+144) SSE3 (Pentium IV), SS4 (Intel Core), AVX (Advanced Vector Extensions) 23

Instruções Vetoriais em Microprocessadores Problemas no uso de Instruções Vetoriais em Microprocessadores Vetores curtos e poucos registradores Modos de endereçamento de memória simples (espaçamento único) Falta de suporte em linguagem de programação para operar sobre dados estreitos(elementos) Consequentemente, Instruções SIMD geralmente são encontradas apenas em bibliotecas de rotinas gráficas de baixo nível 24

Arquiteturas SIMD Arquiteturas Matriciais Processadores executam sincronizadamente a mesma instrução sobre dados diferentes. Utiliza vários processadores especiais muito mais simples, organizados em geral de forma matricial. Muito eficiente em aplicações onde cada processador pode ser associado a uma sub-matriz independente de dados (processamento de imagens, algoritmos matemáticos, etc.) Não incluem processamento escalar 25

Arquiteturas SIMD Processadores Matriciais Conectividade Vizinhança Árvore Pirâmide Hipercubo 27

Arquiteturas SIMD Processadores Matriciais CM-5 Conexão em árvore 30

Arquiteturas SIMD Processadores Matriciais CM-5 (Connection Machine 5) 29

Organizações de Múltiplos Processadores MIMD (Múltiplas Instruções, Múltiplos Dados) Há múltiplas UC, cada qual alimentando sua própria UC com uma SI diferente UC 1 UC 2 UC n SI 1 UP 1 SD 1 SI 2 UP 2 SD 2... SI n SD n UP n Memória compartilhada 6

Organizações de Múltiplos Processadores MIMD (Múltiplas Instruções, Múltiplos Dados) Há múltiplas UC, cada qual alimentando sua própria UC com uma SI diferente UC 1 UC 2 UC n SI 1 SD 1 UP 1 UM 1 SI 2 SI n SD 2 UP 2 UM 2... UP n SD n... UM n Rede de Interconexão 7

PROCESSAMENTO PARALELO Cluster de Workstations: Um Cluster de Computadores, também conhecido como NOW (Network of Workstations) ou COW (Cluster of Workstations), pode ser visto, em sua forma mais simples, como um conjunto composto por dois ou mais computadores (monoprocessáveis ou multiprocessáveis) que trabalham em harmonia buscando fornecer uma solução para um problema, geral ou específico. É uma tecnologia capaz de substituir supercomputadores em certos tipos de aplicações (como simulações, cálculos científicos entre outras) que necessitam de alto desempenho, porém com um custo substancialmente menor, utilizando processadores/computadores com menor poder computacional individual e preço mais baixo. Os três tipos mais comuns de clusters encontrados atualmente são os de Alta Disponibilidade (High Availability HA), de Alto Desempenho de Computação (High Performance Computing HPC) e de Balanceamento de Carga (Horizontal Scaling HS). Leandro Colevati dos Santos

PROCESSAMENTO PARALELO Cluster de Workstations: Leandro Colevati dos Santos

PROCESSAMENTO PARALELO Exemplo de Cluster de Workstations: O SETI@home é um experimento científico que utiliza a capacidade de processamento ociosa de computadores conectados à Internet de voluntários para a busca de inteligência extraterrestre através da análise de sinais do espaço obtidos de um rádio-telescópio. SETI (Search for Extraterrestrial Inteligence), ou Busca por Inteligência Extraterrestre, é uma área da ciência dedicada à busca de vida inteligente fora do nosso planeta. A abordagem do SETI@home é conhecida como "rádio SETI", ou seja, busca de sinais inteligentes através de sinais de rádio. Leandro Colevati dos Santos

PROCESSAMENTO PARALELO Exemplo de Cluster de Workstations: Os sinais analisados pelo SETI@home são obtidos principalmente pelo rádio-telescópio de Arecibo, em Porto Rico, e que é o maior rádio-telescópio fixo do mundo, com uma antena de 305 metros de diâmetro. A análise dos sinais de rádio exige uma capacidade de processamento muito grande, assim em 1995 surgiu a idéia de se dividir os sinais captados em pequenos "pacotes" e distribuí-los para processamento por computadores de voluntários ao redor do mundo. Leandro Colevati dos Santos

PROCESSAMENTO PARALELO Exemplo de Cluster de Workstations: Segundo SETI@home: BOINC (Berkeley Open Infrastructure for Network Computing), é uma plataforma aberta para projetos de processamento distribuído, como o SETI@home. O software cliente do BOINC é altamente customizável e permite que você escolha quais projetos vai ajudar e defina quanto do processamento do seu computador será destinado a cada projeto. Além de ajudar a buscar por vida inteligente com o SETI@home, você pode ainda ajudar a vários outros experimentos científicos, por exemplo: busca pela cura de doenças como o câncer e a AIDS, estudos climáticos e de aquecimento global, estudos astronômicos, etc. O funcionamento do BOINC é basicamente o seguinte: 1. após o download e instalação do BOINC, você define de quais projetos vai participar. Você pode definir preferências específicas para cada projeto, por exemplo para limitar o uso de processamento, memória e espaço em disco; 2. o BOINC conecta aos servidores dos projetos selecionados e faz o download das "aplicações" dos projetos, que são basicamente os programas para processamento das informações daquele projeto em específico; 3. o BOINC conecta aos servidores dos projetos e faz o download das "tarefas", que são basicamente os dados a serem processados; 4. Após o processamento das tarefas, o BOINC retorna os resultados para os servidores dos projetos. O BOINC faz automaticamente as atualizações das aplicações dos projetos dos quais você participa e o download de novas tarefas para processamento. Assim, após a configuração básica, você não precisará fazer nada, e terá um software que funciona como um screensaver (protetor de tela) e que ajuda a ciência. Leandro Colevati dos Santos

PROCESSAMENTO PARALELO Exemplo de Cluster de Workstations: Leandro Colevati dos Santos

Organizações de Múltiplos Processadores Classificação Única Instrução, Único Dado (SISD) Única Instrução, Múltiplos Dados (SIMD) Múltiplas Instruções, Único Dado (MISD) Múltiplas Instruções, Múltiplos Dados (MIMD) Uniprocessadores Processadores Vetorais Processadores Matriciais Memória Compartilhada (fortemente acoplados) Memória Distribuída (fracamente acoplados) Clusters Multiprocessadores Simétricos (SMP) Sistemas com Acesso Não-uniforme à Memória (NUMA) 8

Multiprocessadores Simétricos... Processador Processador Processador E/S Rede de Interconexão E/S... E/S Memória Principal 9

Multiprocessadores Simétricos Vantagens potenciais sobre uma arquitetura uniprocessador 1. Desempenho 2. Disponibilidade 3. Crescimento incremental 4. Personalização do fornecimento 10

Multiprocessadores Simétricos Processo 1 Tempo Processo 2 Processo 3 (a) Tempo compartilhado (multiprogramação) Processo 1 Processo 2 Processo 3 (b) Tempo compartilhado e sobreposição (multiprocessamento) bloqueado Em execução 11

Multiprocessadores Simétricos Classificação da organização 1. Tempo compartilhado ou barramento comum 2. Memória com múltiplas portas 3. Unidade de controle central 12