The future is parallel but it may not be easy

Documentos relacionados
OpenMP: Variáveis de Ambiente

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

Montagem e manutenção de computadores

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Organização de Computadores Processadores. Professor: Francisco Ary

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

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

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

Arquiteturas Paralelas

Arquiteturas paralelas Parte 1

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

Arquitetura de Computadores. Processamento Paralelo

Linguagem de Programação II

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

Organização de Computadores Processadores. Professor: Francisco Ary

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

Introdução OpenMP. Nielsen Castelo Damasceno

Computadores e Programação (DCC/UFRJ)

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

Computação Paralela (CUDA)

Parte I Multiprocessamento

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

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

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Microprocessadores II - ELE 1084

Microprocessadores II - ELE 1084

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

Arquitetura de computadores

Arquitetura de computadores

Sistemas Distribuídos

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

Paralelismo em Computadores com Tecnologia Multicore

Organização de Computadores II. Arquiteturas MIMD

Arquitetura de Computadores e Redes de Dados

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

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

Multiprogramação leve em arquiteturas multi-core

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

Organização e Arquitetura de Computadores I

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

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

Conceitos sobre Computadores

Memória. Memória Cache

Hardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU

SSC510 Arquitetura de Computadores. 6ª aula

Hardware e Manutenção de Micros

Desafios do Mapeamento de Processos em Arquiteturas Many-Core

Exemplo Amdahl. O speedup total é dado por:

Infraestrutura de Hardware. Desempenho

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

Embora seja brutalmente mais rápida que o HD e outros periféricos, a memória RAM continua sendo muito mais lenta que o processador.

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

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

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

Sistemas Operacionais. Adão de Melo Neto

Tipos de Sistemas Operacionais

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

INSTALAÇÃO E MANUTENÇÃO DE COMPUTADORES Processadores Profº Elton Rodrigo

Programação Concorrente e Paralela. Noemi Rodriguez

AULA 01: APRESENTAÇÃO

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Quais as vantagens da utilização de transístores face às válvulas de vácuo?

Processamento Paralelo

Organização e Arquitetura de Computadores I

Introdução a Sistemas Operacionais. Adão de Melo Neto

Programação Concorrente

COMPARAÇÃO DO TEMPO DE EXECUÇÃO DE ALGORITMOS MAXMIN EM DIFERENTES PROCESSSADORES

4a. Geração VLSI 1980 à????

TÍTULO: PROGRAMAÇÃO PARALELA - UMA INTRODUÇÃO AO PARALELISMO COM A OPENMPI

Introdução à Informática. Aula 1

Introdução aos Sistemas Distribuídos

5 Unidades de Processamento Gráfico GPUs

AULA1 Introdução a Microprocessadores gerais. Disciplina: Aplicações Avançadas de Microprocessadores (AAM)

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Transcrição:

The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de São Paulo - MAC0412 25 de novembro de 2008

Michael J. Flynn, 2007 Apresentação Original Processor performance scaling by improving clock frequency has now hit power limits. The new emphasis on multi core architectures comes about from the failure of frequency scaling not because of breakthroughs in parallel programming or architecture.

Michael J. Flynn, 2007 Apresentação Original Solving these problems requires both an understanding of underlying issues such as parallelizing control structures and dealing with the memory bottleneck. For many applications performance comes at the price of programmability and reliability comes at the price of performance.

Sumário Tópicos Abordados 1 Os limites da computação sequencial 2 O surgimento da computação paralela 3 A difícil transição e seus problemas

Sumário Tópicos Abordados 1 Os limites da computação sequencial 2 O surgimento da computação paralela 3 A difícil transição e seus problemas

Computação Sequencial Abordagens Relevantes Desenvolvimento 1 Altas frequências de processamento 2 Eficiência de algoritmos sequenciais VERSUS Limitações 1 Velocidade do clock 2 Memory Wall 3 Power Wall

Pontos positivos DESENVOLVIMENTO DA COMPUTAÇÃO SEQUENCIAL

Altas frequências de processamento 3 GHz

Altas frequências de processamento 3 GHz Mais ciclos por segundo implicam em mais operações executadas em um mesmo tempo (maior eficiência); A arquitetura de processadores diferentes pode influenciar o numero de operações executadas com o mesmo clock; Principais fabricantes e suas altas frequências: AMD Athlon 64 FX - 2600 MHz (FX-55), 2800 MHz (FX-57); Opteron Single-core - 1600-3000 MHz; Intel Xeon -2.0 GHz - 3.6 GHz; Pentium 4-3.2-3.6 GHz.

Eficiência de algoritmos sequenciais Complexidades otimizadas A realização de uma tarefa com complexidades reduzidas foi possível devido a novas idéias baseadas no método sequencial de resolução de problemas; Não é possível tornar mais eficientes (em tempo de solução) certos algoritmos sem alterar a arquitetura do que será usado para realizar os cálculos necessários. Como exemplo, a evolução dos sort s ao longo do tempo, até alcançar o quicksort, com a menor complexidade possível para um algoritmo sequencial baseado em comparações, O(nlogn). Em termos sequenciais, o tempo necessário para ordenar uma sequência de n números depende apenas do processador.

Pontos negativos LIMITAÇÕES DA COMPUTAÇÃO SEQUENCIAL

Velocidade do clock Próxima do limite A capacidade de processamento de uma CPU é determinada pela frequência do cristal oscilador; Primeiro computador comercial: 2MHz, clocks mais rápidos atualmente: P4 3GHz; A frequência máxima possível a ser obtida é a da luz, cujo limite está próximo de ser alcançado.

Memory Wall Uma das principais barreiras

Memory Wall Uma das principais barreiras Velocidade do processador dobra a cada 2 anos, e da memória, a cada 6 anos; Dados são calculados mais rapidamente, mas demoram muito tempo no caminho até o processador, ou retornando dele; Tenta-se, de alguma forma, diminuir o espaço entre memória e CPU para reduzir o tempo real; A solução das memória cache L1 e L2 esbarram no preço e na baixa capacidade de armazenamento; A cada ano, a discrepância aumenta.

Power Wall Uma barreira física

Power Wall Uma barreira física Energia trafegando sempre se perde emitindo calor; Quanto mais veloz o tráfego e maior a quantidade de energia em trânsito, maior calor é despendido; Os materiais utilizados para fabricar os chips esquentam e têm perigo de danos; Sistemas de arrefecimento já começam a ter dificuldade de dissipar o calor excedente.

Sumário Tópicos Abordados 1 Os limites da computação sequencial 2 O surgimento da computação paralela 3 A difícil transição e seus problemas

Computação Paralela Abordagens Relevantes 1 Um novo paradigma computacional 2 Driblando alguns problemas da computação sequencial 3 Nível de paralelismo nos dias atuais 4 Influência direta no poder computacional dos processadores

Computação paralela como novo paradigma computacional Uma nova proposta de solução

Computação paralela como novo paradigma computacional Uma nova proposta de solução Combina habilidades computacionais preexistentes organizando as idéias e a obtenção da solução de uma forma diferente Requer habilidade do programador em saber lidar com as novas ferramentas e usufruir ao máximo do que elas oferecem

Novas saídas para problemas sequenciais Driblando as Walls Com a possibilidade de aumentar a performance apenas aumentando o número de cores, elimina-se a necessidade de investir em clocks mais rápidos; Mantendo o clock baixo, mantém-se baixa a temperatura do chip, eliminando a necessidade de se investir em dissipadores mais poderosos; A velocidade do processador pode ficar compatível com a velocidade de comunicação com a memória sem prejudicar a performance, evitando assim a memory wall.

Nível de paralelismo atual Quanto de paralelo há no que usamos 199 threads no total

Nível de paralelismo atual Quanto de paralelo há no que usamos 666 threads no total

Nível de paralelismo atual Quanto de paralelo há no que usamos Hoje em dia qualquer computador pessoal é no mínimo dual core Boa parte dos programas usuais não são paralelizados Toda a parte de divisão de tarefas fica a cargo do Sistema Operacional

Transição

Sumário Tópicos Abordados 1 Os limites da computação sequencial 2 O surgimento da computação paralela 3 A difícil transição e seus problemas

A Transição Abordagens Relevantes 1 Algoritmos sequenciais em multi-cores 2 Dificuldade de projeção e pensamento em paralelo 3 Tempo ganho no paralelismo contra tempo perdido em overhead de threads 4 Gargalos dos algoritmos paralelos 5 Memória compartilhada versus memória distribuída 6 Componentes mais complexos e a probabilidade de falhas

Algoritmos sequenciais aplicados a multi-cores Influência da arquitetura no tempo de execução Programas gerados por algoritmos sequenciais rodam em apenas um dos processadores; Apenas uma thread a ser executada; Com relação àquele programa, outros processadores ficam ociosos; Desperdicio de energia; Desperdicio de capacidade de processamento.

O Pensamento Paralelo Suas principais dificuldades, pela fuga do trivial O cérebro humano é sequencial Boa parte da matemática é sequencial O modelo de programação que estamos acostumados a usar é sequencial

Paralelismo X Overhead Os ganhos e as perdas da programação paralela

Paralelismo X Overhead Os ganhos e as perdas da programação paralela

Os gargalos dos algoritmos paralelos Condições e necessidades para seu perfeito funcionamento Granularidade: Medida entre a taxa de computação e a taxa de comunicação. Granularidade pequena: partes pequenas, processamento mais rápido, maior número de comunicações; Granularidade grande: partes grandes, tempo de processamento mais longo, menor quantidade de comunicações; Não existe um melhor, depende da aplicação.

Os gargalos dos algoritmos paralelos Condições e necessidades para seu perfeito funcionamento Balanceamento de carga: Nem todas as tarefas demoram o mesmo tempo para serem executadas. Caso seja necessário sincronizar, deve-se esperar a tarefa mais demorada terminar. Uma noção melhor do que cada tarefa faz e de quanto tempo ela demora implica em um melhor balanceamento.

Memória compartilhada versus memória distribuída As vantagens e desvantagens de cada uso Memória distribuída Memória compartilhada

Memória compartilhada versus memória distribuída As vantagens e desvantagens de cada uso Distribuída Cada processador tem acesso a uma memória privativa Baixo custo Comunicação através de mensagens (depende da velocidade do meio de comunicação) Compartilhada Acessada simultaneamente por cada processador Simples programação Mudanças no cache de um processador devem ser replicadas

Resumo O que foi visto e analisado Computação sequencial: limites de velocidade e energia da CPU, barreira da memória e complexidades computacionais eficientes. Computação paralela: uma nova saída, métodos diferentes de desenvolver a resolução do problema, divisão, paralelismo. A transição: envolve problemas como dificuldade de implementação, reestruturação de algoritmos preexistentes, overhead de threads, gerenciamento da memória entre os processadores.

The future is parallel but it may not be easy A tecnologia sequencial atingiu seu limite. A única forma de se melhorar a performance dos processadores é a paralelização. Apesar disso, ainda não sabemos como utilizar o poder do paralelismo, portanto, temos muito poder de computação desperdiçado. Uma possível solução para este problema ainda parece muito distante: compiladores paralelizantes. It s the future, but we know it won t be easy.

Dúvidas, questionamentos?