Introdução Processamento Paralelonbcgib.uesc.br/nbcgib/files/PP/Aula01_proce_paralelo.pdf ·...

Preview:

Citation preview

IntroduçãoProblemas de grande porte

Processamento paralelo

Introdução Processamento Paralelo

Esbel Tomás Valero Orellana

Bacharelado em Ciência da ComputaçãoDepartamento de Ciências Exatas e Tecnológicas

Universidade Estadual de Santa Cruzevalero@uesc.br

9 de Março de 2010

Introdução 1 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Conteúdo

1 Introdução

2 Problemas de grande porte

3 Processamento paralelo

Introdução 2 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Conteúdo

1 Introdução

2 Problemas de grande porte

3 Processamento paralelo

Introdução 3 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Velocidade de processamento

A contínua busca por um maior poder de cálculo e proces-samento tem sido a força principal no desenvolvimento dohardware de computadores;

Período 1950 1970 1990 200‘5 MetaNro. Operações 102 103 106 109 1012

A necessidade de maior poder de computo é sempre cres-cente.

Introdução 4 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Velocidade de processamento

Qual é a causa desta necessidade sempre crescente por

maior poder computacional?

A resolução de problemas complexos nos leva a níveis mais

profundos de conhecimentos.

Diversa áreas da vida moderna impulsionam esta necessi-

dade.

São as ciências e as engenharias os elementos que mais

exigem poder computacional. Porque?

Introdução 5 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Velocidade de processamento

Qual é a causa desta necessidade sempre crescente por

maior poder computacional?

A resolução de problemas complexos nos leva a níveis mais

profundos de conhecimentos.

Diversa áreas da vida moderna impulsionam esta necessi-

dade.

São as ciências e as engenharias os elementos que mais

exigem poder computacional. Porque?

Introdução 5 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Velocidade de processamento

Qual é a causa desta necessidade sempre crescente por

maior poder computacional?

A resolução de problemas complexos nos leva a níveis mais

profundos de conhecimentos.

Diversa áreas da vida moderna impulsionam esta necessi-

dade.

São as ciências e as engenharias os elementos que mais

exigem poder computacional. Porque?

Introdução 5 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Velocidade de processamento

Qual é a causa desta necessidade sempre crescente por

maior poder computacional?

A resolução de problemas complexos nos leva a níveis mais

profundos de conhecimentos.

Diversa áreas da vida moderna impulsionam esta necessi-

dade.

São as ciências e as engenharias os elementos que mais

exigem poder computacional. Porque?

Introdução 5 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Mecanismos das ciências e as engenharias

Por séculos

Introdução 6 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Mecanismos das ciências e as engenharias

Atualmente

Simulações computacionais são mais baratas e confiáveis.

Introdução 7 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Conteúdo

1 Introdução

2 Problemas de grande porte

3 Processamento paralelo

Introdução 8 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Problemas de grande porte

A resolução de um problema computacional deve ser feita

em um tempo razoável.

Temos um problema de grande porte se ele não pode ser

resolvido em intervalo de tempo razoável com os computa-

dores atuais.

Tempo razoável?

Exemplo: Previsão do clima no Brasil nos próximos dois

dias.

Introdução 9 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Problemas de grande porte

A resolução de um problema computacional deve ser feita

em um tempo razoável.

Temos um problema de grande porte se ele não pode ser

resolvido em intervalo de tempo razoável com os computa-

dores atuais.

Tempo razoável?

Exemplo: Previsão do clima no Brasil nos próximos dois

dias.

Introdução 9 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

Computadores atuais um bilhão (109) operações de ponto

flutuante por segundo,

Objetivo fazer uma previsão do tempo para o Brasil a cada

hora nos próximos dois dias,

Incógnitas: temperatura, pressão, humidade, velocidade do

vento, exct.

Discretização do problema: cobrir a região de interesse

com uma grade e calcular as variáveis em cada vértice,

Introdução 10 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

tomamos umagrade cúbica ondecada cubo temuma aresta de0.1km,

Introdução 11 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

Área do Brasil é de 8.5 milhões de km2

8.5E +06 km2 × 20km × 103 cubos por km3 = 1.7E +11 vértices

Consideremos 100 operações aritméticas para determinar

o tempo em um vértice,

Para prevermos o tempo em uma determinada hora temos

1.7E + 11 vértices ×100 operações = 1.7E + 13 operações

Nosso problema 2 dias = 48 horas, temos

1.7E+13 operações×48 horas = 8.2E+14 ≈ 1E+15 operações

Introdução 12 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

Tempo necessário para resolver o problema nos computa-

dores atuais

1015 operações /109 operações por s = 106 s ≈ 11 dias!!!

Computador mais veloz, um trilhão de operações por se-

gundo (1012)

1015 operações /1012 operações por s = 103 s ≈ 20 min!!!

Modificações simples no problema anterior fazem um com-

putador de um trilhão de operações insuficiente.

Introdução 13 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

Tempo necessário para resolver o problema nos computa-

dores atuais

1015 operações /109 operações por s = 106 s ≈ 11 dias!!!

Computador mais veloz, um trilhão de operações por se-

gundo (1012)

1015 operações /1012 operações por s = 103 s ≈ 20 min!!!

Modificações simples no problema anterior fazem um com-

putador de um trilhão de operações insuficiente.

Introdução 13 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsões climáticas

Tempo necessário para resolver o problema nos computa-

dores atuais

1015 operações /109 operações por s = 106 s ≈ 11 dias!!!

Computador mais veloz, um trilhão de operações por se-

gundo (1012)

1015 operações /1012 operações por s = 103 s ≈ 20 min!!!

Modificações simples no problema anterior fazem um com-

putador de um trilhão de operações insuficiente.

Introdução 13 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Movimento de corpos estelares

Problema: Estimar as posições dos corpos estelares,

Cada corpo estelar é atraído por todos os outros por forçasgravitacionais,

O movimento de um corpo é modelado calculando a forçade todos os corpos que atuam sobre ele,

Se temos N corpos teremos N − 1 forças atuando sobreele,

Aproximadamente N2 operações para determinar a posi-ção de todos os corpos,

Após determinamos as posições dos corpos o cálculo érepetido (iterativo),

Introdução 14 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Movimento de corpos estelares

Problema: Estimar as posições dos corpos estelares,

Cada corpo estelar é atraído por todos os outros por forçasgravitacionais,

O movimento de um corpo é modelado calculando a forçade todos os corpos que atuam sobre ele,

Se temos N corpos teremos N − 1 forças atuando sobreele,

Aproximadamente N2 operações para determinar a posi-ção de todos os corpos,

Após determinamos as posições dos corpos o cálculo érepetido (iterativo),

Introdução 14 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Movimento de corpos estelares

A galaxia tem aproximadamente 1011 estrelas,

Se cada operação fosse feita em 1 µs (estimativa otimista),

(1011)2 operações = 1022 operações ×10−6s por operação =

1016 s ≈ 1 bilhão de anos!!!

Isso para uma iteração,

Mesmo aprimorando o algoritmo para N lg N, o tempo de

cálculo é aproximadamente 1 ano!!!

Introdução 15 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Movimento de corpos estelares

A galaxia tem aproximadamente 1011 estrelas,

Se cada operação fosse feita em 1 µs (estimativa otimista),

(1011)2 operações = 1022 operações ×10−6s por operação =

1016 s ≈ 1 bilhão de anos!!!

Isso para uma iteração,

Mesmo aprimorando o algoritmo para N lg N, o tempo de

cálculo é aproximadamente 1 ano!!!

Introdução 15 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Outros exemplos

Simulações de biomoléculas;

Simulações estocásticas, métodos de Monte Carlo;

Prospecção e exploração de hidrocarbonetos;

Biotecnologia (genoma, árvores filogéneticas);

Processamento de imagens (renderização de filmes, efei-

tos especiais);

Nanotecnologias.

Introdução 16 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Capacidade de armazenamento

Poder computacional = velocidade de realizar operações

aritméticas?

Para obtermos elevado poder computacional necessitamos

grandes capacidades de armazenamento;

Um computador que realize trilhões de operações por se-

gundo e tenha acesso a poucos milhões de palavras de

memória, tem pouca utilidade.

Poder computacional = Velocidade + Armazenamento.

Introdução 17 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Capacidade de armazenamento

Poder computacional = velocidade de realizar operações

aritméticas?

Para obtermos elevado poder computacional necessitamos

grandes capacidades de armazenamento;

Um computador que realize trilhões de operações por se-

gundo e tenha acesso a poucos milhões de palavras de

memória, tem pouca utilidade.

Poder computacional = Velocidade + Armazenamento.

Introdução 17 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Conteúdo

1 Introdução

2 Problemas de grande porte

3 Processamento paralelo

Introdução 18 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Desejamos construir um computador capaz de realizar um

trilhão de operações (1012) por segundo,

Enfoque → Aprimorar as tecnologias existentes para fabri-

car o novo computador,

Construir um computador seguindo a arquitetura de Von

Neumann,

Processador de alta velocidade e grande quantidade de

memória disponível.

Introdução 19 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Desejamos construir um computador capaz de realizar um

trilhão de operações (1012) por segundo,

Enfoque → Aprimorar as tecnologias existentes para fabri-

car o novo computador,

Construir um computador seguindo a arquitetura de Von

Neumann,

Processador de alta velocidade e grande quantidade de

memória disponível.

Introdução 19 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Arquitetura de Von Neumann

Introdução 20 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Objetivo: Executar o seguinte código em 1s

1 /∗ x , y , z ar rays de f l o a t s , cada um com ∗ /2 /∗ um t r i l h ã o de dados ∗ /3 for ( i =0; i <ONE_TRILLION ; i ++)4 z [ i ] = x [ i ] + y [ i ] ;

Execução do código na arquitetura de VN:

1 copiar os valores xi e yi da memória aos registradores,

2 somar os valores,

3 copiar o resultado zi na memória.

Introdução 21 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Objetivo: Executar o seguinte código em 1s

1 /∗ x , y , z ar rays de f l o a t s , cada um com ∗ /2 /∗ um t r i l h ã o de dados ∗ /3 for ( i =0; i <ONE_TRILLION ; i ++)4 z [ i ] = x [ i ] + y [ i ] ;

Execução do código na arquitetura de VN:

1 copiar os valores xi e yi da memória aos registradores,

2 somar os valores,

3 copiar o resultado zi na memória.

Introdução 21 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

3.0E + 12 transferências de dados entre a memória e osregistradores em 1s,

Os dados viajam a velocidade da luz 3.0E + 08 m/s(suposição otimista),

r → distancia média entre a memória e a CPU,

Introdução 22 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Um pouco de física básica, r satisfaz:

v =st

s = vt

3.0× 1012r [m] = 3.0× 1012[m/s] ∗ 1[s]

r = 10−4[m]

A memória deve ter capacidade para três trilhões de

palavras (x , y , z).

Introdução 23 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Propomos um dispositivo de memórias quadrado de lado

s,

Conectamos a CPU no centro da memória,

A distancia média entre a memória e a CPU é s/2

s2

= r

s = 2.0× 10−4[m]

Introdução 24 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Em nossa memória uma linha do dispositivo deverá conter√

3× 106 palavras de memória,

palavras em uma linha = ( quantidade de palavras )12

√3× 1012 =

√3× 106

Introdução 25 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Calculamos o tamanho de uma célula de memória,

Devemos colocar uma palavra de memória em um

quadrado de lado

spalavras_em_uma_linha

=2× 10−4[m]√

3× 106= 10−10[m]

10−10[m] é o tamanho de um átomo pequeno,

Como representar 32 bits com um único átomo?

Construir nosso computador é impossível!!!

Introdução 26 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Calculamos o tamanho de uma célula de memória,

Devemos colocar uma palavra de memória em um

quadrado de lado

spalavras_em_uma_linha

=2× 10−4[m]√

3× 106= 10−10[m]

10−10[m] é o tamanho de um átomo pequeno,

Como representar 32 bits com um único átomo?

Construir nosso computador é impossível!!!

Introdução 26 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Entraves de aumentar a velocidade do processador

Aquecimento do processador

Alto consumo de energia elétrica

Como termos um computador que realize 1012 operações

por segundo?

Processamento paralelo

Introdução 27 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Entraves de aumentar a velocidade do processador

Aquecimento do processador

Alto consumo de energia elétrica

Como termos um computador que realize 1012 operações

por segundo?

Processamento paralelo

Introdução 27 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Construindo um computador potente

Entraves de aumentar a velocidade do processador

Aquecimento do processador

Alto consumo de energia elétrica

Como termos um computador que realize 1012 operações

por segundo?

Processamento paralelo

Introdução 27 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Definindo processamento paralelo

Computador paralelo é um computador simples (ou um grupo

de computadores) com múltiples processos que trabalham

juntos na resolução de um único problema.

Processo = processador + memória

Processamento paralelo fornece um poder de computo ili-

mitado (pelo menos em teoria),

Devemos instruir a nossos processos como trabalhar jun-

tos,

É preciso fornecer a cada processo um programa e um con-

junto de dados a serem computados.

Introdução 28 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Entraves processamento paralelo

Divisão de tarefas entre os processos

encontrar subtarefas independentes pode ser muito

complicado;

Organização da execução

iniciar, gerenciar e terminar processos,

precedência de operações,

distribuir as instruções;

Comunicação entre processos

processos adjacentes precisam se comunicar.

Introdução 29 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Entraves processamento paralelo

Processamento paralelo é uma ideia simples,

Se usarmos uma máquina paralela com p processos para

resolver um problema,

Obteremos o resultado p vezes mais rápido?

Isso não é certo, por vários motivos:

A paralelização tem custos,

Mecanismos de controle de falhas e acessos a memória,

Custos de comunicação,

Balanceamento de carga,

Os algoritmos não são completamente paralelizáveis.

Introdução 30 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Entraves processamento paralelo

Processamento paralelo é uma ideia simples,

Se usarmos uma máquina paralela com p processos para

resolver um problema,

Obteremos o resultado p vezes mais rápido?

Isso não é certo, por vários motivos:

A paralelização tem custos,

Mecanismos de controle de falhas e acessos a memória,

Custos de comunicação,

Balanceamento de carga,

Os algoritmos não são completamente paralelizáveis.

Introdução 30 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsão do clima

Balanceamento de carga.

Introdução 31 / 31

IntroduçãoProblemas de grande porte

Processamento paralelo

Exemplo - Previsão do clima

Balanceamento de carga.Introdução 31 / 31

Recommended