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