Desafios do Mapeamento de Processos em Arquiteturas Many-Core

Documentos relacionados
SSC0611 Arquitetura de Computadores

Arquitetura de Computadores. Processamento Paralelo

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

Computadores e Programação (DCC/UFRJ)

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

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Multiprogramação leve em arquiteturas multi-core

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

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

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

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

Organização e Arquitetura de Computadores I

SSC510 Arquitetura de Computadores. 6ª aula

Multiprocessadores e Paralelismo nível de Thread

Investigando a Influência da Organização de Caches L2 no Desempenho de Processadores Multicore Superescalares

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

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

Organização de Computadores II. Arquiteturas MIMD

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

Arquiteturas Paralelas

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

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Sistemas Operacionais

Arquitectura de Computadores

Arquitetura de Computadores Aula 11 - Multiprocessamento

Processadores para computação de alto desempenho

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções

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

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

AULA DE REVISÃO 3 ILP

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PROF. DEJAIR PRIEBE

3. Unidade Central de Processamento

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

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

ARQUITETURA DE COMPUTADORES

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

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

Disciplina de Arquitetura de Computadores

Arquitetura de computadores

ARQUITETURA DE COMPUTADORES

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

Sistemas Operacionais. Conceitos de Hardware

SSC0611 Arquitetura de Computadores

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

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

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

Arquiteturas paralelas Parte 1

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

Processamento Paralelo

Arquiteturas RISC e CISC de estado da arte

Arquitetura de Computadores

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

RISC X CISC - Pipeline

Memória. Memória Cache

Unidade 12: Introdução ao Paralelismo:

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

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Figura 01 Programa e Processo

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017

The future is parallel but it may not be easy

Organização de Sistemas de Computadores

4. As condições de igualdade menor que e maior que são verificadas por a. Operações lógicas b. Subtração c. Localizações d. Operações aritméticas

MICROPROCESSADORES. Aula 10

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

Sistemas Distribuídos Aula 3

Transcrição:

Desafios do Mapeamento de Processos em Arquiteturas Many-Core Professor: Philippe O. A. Navaux Instituto de Informática - UFRGS Escola Regional de Alto Desempenho São Paulo 1

Indíce Evolução dos Processadores Pipeline Superscalar Multithreading Multi-Core Many-Core Mapeamento de Processos Multi-Core Cluster 2

Evolução dos Processadores 3

Evolução dos Microprocessadores Pawlowski, 2006 Intel 4

Problema / Motivação PROBLEMA O desafio das primeiras arquiteturas de processadores era o aumento de desempenho, Desafio permanente, MOTIVAÇÃO Uso da técnica PIPELINE - através da sobreposição da execução no tempo 5

Arquitetura Pipeline 5 estágios de profundidade. Freqüência depende do estágio mais lento. Mais estágios, mais registradores para salvar os estados. 6

Arquitetura Pipeline Sem Paralelismo. Reuso do hardware. CPI ideal = 1(após encher o pipeline). 7

Problema / Motivação PROBLEMA O fato de as arquiteturas pipelines terem várias unidades funcionais e não conseguir processar mais de uma instrução por ciclo, deixando ocioso parte do hardware. MOTIVAÇÃO Uso da técnica SUPERESCALAR -através da execução paralela das instruções ILP 8

Arquitetura Superscalar Início do Paralelismo Busca, decodifica e executa mais que uma instrução por ciclo. Paralelismo agressivo Despacho e Execução fora de ordem (OOO). 9

Arquitetura Superscalar Pipelining continua ativo IPC ideal maior que 1 ILP Paralelismo de instruções. 10

Problema / Motivação PROBLEMA Apesar do emprego do paralelismo de instruções no máximo as arquiteturas obtinham uma execução de 2 instruções em paralelo, mantendo ainda várias unidades funcionais ociosas. MOTIVAÇÃO Uso da técnica MULTITHREAD - execução de mais de um fluxo de instruções TLP 11

Arquiteturas Multithreading Diversas threads ativas 12

Arquiteturas Multithreading Único processador físico. Vários processadores virtuais. Começa o uso de TLP (Thread Level Paralelism) Porém, ainda mantém o uso de ILP (Instruction Level Paralelism). 13

Arquitetura Multithreading Pequeno aumento de hardware em: PC, ROB, Reg File Gargalos em recursos compartilhados Unidades Funcionais Memória Cache Memória Principal 14

Chip Multithread 15

Problema / Motivação PROBLEMA Apesar das arquiteturas multithreaded melhorarem o desempenho do hardware do processador, não havia fluxo sufuciente de dados e instruções para o processador. Problema de cache MOTIVAÇÃO Uso da técnica MULTI-CORE - visando uso de cores simples e melhor distribuir a 16 execução das threads

Arquitetura Multi-Core Também corresponde a um multithread. Várias threads ativas. Também pode combinar técnicas IMT, BMT e SMT. 17

Arquitetura Multi-Core Nehalem Arquitetura I7 18

Arquitetura Multi-Core AMD Barcelona 19

Arquitetura Multi-Core Ultra SPARC T2 - Victoria Fall UltraSPARC T2 Up to 64 total threads Up to eight cores Each Core: two instruction pipelines 20

Problema / Motivação PROBLEMA Surgimento de chips com dezenas de cores, Necessidade definir a forma de comunicação, mapeamento de threads, necessidade de uma interconexão. MOTIVAÇÃO Surgem as arquiteturas many-core e o emprego de NoCs MOMENTO ATUAL 21

Evolution of Multi-Core = Many Core Pawlowski, Intel 2006 22

Arquiteturas Many-Core Intel Tera-Scale Escala de Tera-flops. 80 Núcleos VLIW. Cada núcleo com um roteador integrado. Caches L1 integradas. Interconexão usando NoC. 23

Arquiteturas Many-Core Filme do chip Terraflop 24

Mapeamento de Processos 25

Problema / Motivação Compartilhamento de recursos entre processadores de um mesmo CMP (Chip Multiprocessor) 26

Arquiteturas CMP AMD Memória Cache L2 Isolada Memória Cache L3 Compartilhada (Rápida Comunicação entre os núcleos) Núcleos Single Threaded 27

Arquiteturas CMP Intel Cache L2 Compartilhada nos Core 2 (Rápida comunicação, mais conflitos na cache) Cache L3 Compartilhada no Core i7 Núcleos Single Threaded Núcleos SMT 2 Threads 28

Arquiteturas CMP SUN Cache isoladas porém com acesso compartilhado Núcleos IMT 4 Threads 29

Arquiteturas CMP IBM Passou de L2 compartilhada (Power 4 e 5) Para L2 privada e L3 compartilhada (Power 6 e 7) Single Threaded Núcleos SMT 2 Threads 30

Efeito do acesso de Threads numa Arquitetura Multicore Verifica-se que Nem sempre o emprego de Multithreaded aumenta o desempenho. Problema do aumento de acessos na cache. Artigo sobre Power 5 IEEE 2004 Kalla, Sibharoy, Tendler 31

Motivação Diferentes níveis de comunicação em clusters de multi-core Entre nodos do cluster: Inter-nodo Entre chips do mesmo nodo: inter-chip Entre núcleos do mesmo chip: intra-chip 32

Motivação Diversos tempos de comunicação / troca de informações 33

Objetivo Melhorar o mapeamento dos processos. Mapeamento de processos é definir a distribuição dos processos para os processadores do sistema Objetivo comum de diminuir o tempo de execução 34

Mapeamento de Processos Considera características da aplicação paralela e da organização do sistema Aplicação: volume de comunicação entre os processos, necessidade de recursos específicos Organização: disponibilidade de recursos, velocidade de comunicação entre processadores 35

Tipos de Mapeamento O mapeamento pode ser: Estático: Somente uma vez no início da execução Costuma-se fazer uma execução prévia Dinâmico: Pode variar ao longo da execução Agrega-se a dificuldade de migração de processos 36

Objetivos do Mapeamento São 3 as principais preocupações ao estudar o melhor mapeamento de processos numa arquitetura com vários processadores: Fazer o melhor uso da rede entre nodos; Fazer o melhor uso da interconexão interna; Melhor uso da memória cache Reduzir a sequência de misses de invalidação; i.e. Dados compartilhados são colocados em memórias caches distintas. Reduzir a competição por linhas de cache; i.e. Dados que não são compartilhados, ficam competindo pela memória cache. 37

Trabalhos Desenvolvidos Eduardo R. Rodrigues, et al., ISCC 2009 Mapeamento entre Nodos e Chips Matthias Diener, et al., AHPCN-HPCC 2010 Mapeamento entre Chips e Cores 38

Trabalhos Desenvolvidos Rodrigues, ISCC 09 Aplicação avaliada BRAMS: Modelo de Cliomatologia Aplicação do mundo real; Usado para fazer previsão do tempo; Atualmente empregado pelo INPE; 39

Trabalhos Desenvolvidos Rodrigues, ISCC 09 Ao executar a aplicação, diversos processos são criados. Cada processo irá fazer sua parte da previsão, porém, irá comunicar com os adjacentes 40

Trabalhos Desenvolvidos Rodrigues, ISCC 09 Mapeamento Padrão Nodo 5 Nodo 4 Nodo 3 Nodo 2 Nodo 1 41

Trabalhos Desenvolvidos Rodrigues, ISCC 09 Mapeamento Padrão vs. Mapeamento proposto 42

Trabalhos Desenvolvidos Rodrigues, ISCC 09 Mapeamento Padrão vs. Mapeamento proposto 43

Trabalhos Desenvolvidos Rodrigues ISCC 09 Mapeamento dos processos adjacentes para o mesmo nodo; Reduz até 25% no tempo de execução 44

Trabalhos Desenvolvidos Rodrigues ISCC 09 Mapeamento dos processos adjacentes para a mesma cache; Reduz até 7% no tempo de execução 45

Trabalhos Desenvolvidos Diener AHPCN-HPCC 10 Objetivo: Fazer o mapeamento de aplicações sem um profundo conhecimento do código fonte. Metodologia: Análisar os acessos de memória entre threads. Utilizado Simics Obter a matriz de compartilhamento de dados Escolher o melhor mapeamento 46

Trabalhos Desenvolvidos Diener AHPCN-HPCC 10 Simulada a arquitetura igual a real no Simics Obtido a matriz de compartilhamento de dados Matriz de Compartilhamento com Quantidade de Dados Compartilhado entre Threads Thread ID 0 0 1 2 3 4 5 6 7 2092716 2114230 4362781 4671699 2094294 2116205 1932383 1 2092716 2094861 2069369 2091357 3196958 2093866 1983507 2 2114230 2094861 3 4362781 2069369 2090464 4 4671699 2091357 4834944 2186804 5 2094294 3196958 3506909 2263050 4665909 6 2116205 2093866 2113130 2180172 4130102 6854565 7 1932383 1983507 1925073 3145597 2187897 3073726 2374229 2090464 4834944 3506909 2113130 1925073 2186804 2263050 2180172 3145597 4665909 4130102 2187897 6854565 3073726 2374229 47

Tabalhos Desenvolvidos Diener AHPCN-HPCC 10 Avaliando um algoritmo Simples e Exaustivo; Simples: Decide o mapeamento de acordo com pares de threads que compartilham dados. Exaustivo: Tenta todas as combinações até atingir a de menor custo de comunicação. 48

Trabalhos Desenvolvidos Diener AHPCN-HPCC 10 Avaliando no Core i7 Redução de 11 ~ 13% com algoritmo Simples Redução de 12 ~ 14% com algoritmo Exaustivo 4 3 AUTO 2 SIMPLE çã Excu o p m Te 1 EXHAUSTIVE 0 8 Núcleos / Threads 16 49

Conclusões Verificamos nestes 2 exemplos a importância de estudar o melhor mapeamento para alocar processos nos cores, chips, nodos.. Por outro lado muitas são as varáveis que devem ser consideradas na decisão do melhor mapeamento. Verificou-se aqui alguns pontos principais: Interconexão Mapeamento nas caches 50

Desafios do Mapeamento de Processos em Arquiteturas Many-Core Philippe O. A. Navaux - navaux@inf.ufrgs.br Instituto de Informática - UFRGS Escola Regional de Alto Desempenho São Paulo 51