Ferramentas para Programação em Processadores Multi- Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Programação multithread Ferramentas de programação Prática de programação Considerações finais Programa de Verão 008 Petrópolis,. Multiprocessamento em um chip HyperThreading Produtos comerciais Arquitetura paralela dotada de um conjunto de processadores idênticos (simétricos) compartilhando acesso a uma área de comum 3 4
Arquitetura paralela dotada de um conjunto de processadores idênticos (simétricos) compartilhando acesso a uma área de comum SO único responsável pelo escalonamento de atividades (fluxos de execução) entre os processadores Cada CPU replica todo conjunto de recursos necessários à execução de um fluxo. Alternativa: adição de cache 5 6 Alternativa: adição de cache cache em níveis de cache de código e dados Problema: manutenção da coerência dos dados Protocolo implementado em HW para garantir eficiência Exemplo: protocolo snoopy: Todos os caches escutam (snoop) o barramento Caso passe um endereço válido no cache presente em operação de escrita, invalida a linha correspondente HyperThreading Tecnologia em hardware que permite execução simultânea de multiplos fluxos de execução (na prática fluxos) Duplica estruturas para controle do estado de execução, não do suporte de execução CPU 7 8
HyperThreading HyperThreading Tecnologia em hardware que permite execução simultânea de múltiplos fluxos de execução (na prática fluxos) Duplica estruturas para controle do estado de execução, não do suporte de execução Permite a construção de máquinas SMP com HT CPU O SO reconhece a existência de dois processadores em um processador HT Melhora de desempenho é possível caso os fluxos alocados a cada processador utilizem conjuntos disjuntos de recursos permitindo execução paralela 9 0 (cores) (cores) Processador (chip) Processador (chip)
Grande vantagem: compatível com os códigos existentes! Com cache privada por core Barramento Com cache compartilhada Barramento 3 4 Comparativo visão macro Processador HyperThreading Processador multi-core Multiprocessador SMP Produtos comerciais AMD Barcelona Quad- Opteron 64 bits, 4 cores, privada, L3 compartilhada Kuma, Rana - AMD Athlon TM X Dual- 3/64 bits, cores, privada FASN8 8 cores 007 Intel Montecito Itanium 64 bits, cores, e L3 privada Dempsey Xeon 5000 64 bits, cores, privada, HT Yonah TM Duo / TM / TM Extreme 3/64 bits, /4 cores, compartilhada SUN Niagara UltraSPARC T 64 bits, 4/6/8 cores, privada 5 6
Produtos comerciais Hardware Toda industria de computadores tem opções Laptops Desktops Servidores Software Ferramentas de desenvolvimento Compiladores Depuração Desempenho Questão de licença Depende da opção do fornecedor Exemplos: Microsoft: por processador, não por core Oracle: por core, com fator de redução por core em processador multicore VMWare: por processador, com limite de 4 cores/processador Ilustração Multi-core architecture http://cache-www.intel.com/cd/00/00/4/49/44978_44978.swf Fonte: intel.com Explore a dual core Opteron TM http://www.amd.com/us-en/assets/content_type/additional/33635bdual-diagramfin.swf Fonte: amd.com Imagem ilustrativa 7 8 Sumário Introdução Programação multithread Ferramentas de programação Prática de programação Considerações finais Ferramentas para Programação em Processadores Multi- Prof. Dr. Departamento de Informática Universidade Federal de Pelotas http://gersonc.anahy.org Programa de Verão 008 9 Petrópolis,. 0