Академический Документы
Профессиональный Документы
Культура Документы
jeremiasmg@gmail.com
23 de março de 2016
Introdução
Computação de Alto Desempenho
Como Funciona?
Conclusão
Referências Bibliográficas
Sumário
1 Introdução
3 Como Funciona?
4 Conclusão
5 Referências Bibliográficas
Solicitando apoio
Lei de Moore
Lei de Moore
100,000,000,000
Número de Transistores
1,000,000,000
10,000,000
100,000
1,000
10
1,970 1,980 1,990 2,000 2,010 2,016
Ano
Performance Computacional
10,000,000
Número de Transistores
1,000,000 Performance
Clock (MHz)
Consumo Energético
100,000
Núcleos por Chip
10,000
1,000
100
10
0
1985 1990 1995 2000 2005 2010
Ano de Lançamento
Performance Computacional
10,000,000
Número de Transistores
1,000,000 Performance
Clock (MHz)
Consumo Energético
100,000
Núcleos por Chip
10,000
1,000
100
10
0
1985 1990 1995 2000 2005 2010
Ano de Lançamento
Performance Computacional
10,000,000
Número de Transistores
1,000,000 Performance
Clock (MHz)
Consumo Energético
100,000
Núcleos por Chip
10,000
1,000
100
10
0
1985 1990 1995 2000 2005 2010
Ano de Lançamento
Performance Computacional
10,000,000
Número de Transistores
1,000,000 Performance
Clock (MHz)
Consumo Energético
100,000
Núcleos por Chip
10,000
1,000
100
10
0
1985 1990 1995 2000 2005 2010
Ano de Lançamento
100
90
80
70
60
50
40
30
20
10
0
2002 2004 2006 2008 2010 2012 2014 2016
35
Gama
29
31
47
Lago Sul
35 42 Taguatinga
Cruzeiro
25
38
9
Asa Norte
22 Sobradinho
Ciclo de Palestras Quinzenais - UDF 11/37
Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas
Solicitando Apoio
Buscamos de alguma forma executar as tarefas em paralelo
Computação de Alto Desempenho
Paralelismo encoberto
Único processador executa diferentes instruções simultaneamente
Paralelismo aberto
Programador manipula fluxos diferentes de instruções
Figura: Serial
Solicitando Apoio
Buscamos de alguma forma executar as tarefas em paralelo
Computação de Alto Desempenho
Paralelismo encoberto
Único processador executa diferentes instruções simultaneamente
Paralelismo aberto
Programador manipula fluxos diferentes de instruções
Solicitando Apoio
Buscamos de alguma forma executar as tarefas em paralelo
Computação de Alto Desempenho
Paralelismo encoberto
Único processador executa diferentes instruções simultaneamente
Paralelismo aberto
Programador manipula fluxos diferentes de instruções
Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].
Fluxo de
Instruções
Único Múltiplo
Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].
Fluxo de
Instruções
Único Múltiplo
Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].
Fluxo de
Instruções
Único Múltiplo
Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].
Fluxo de
Instruções
Único Múltiplo
Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].
Fluxo de
Instruções
Único Múltiplo
Computação Paralela
Arquiteturas Paralelas
São arquiteturas compostas por mais de um processador e
que compartilham um espaço de memória em comum.
CPU
CPU
4 threads de hardware
16 GB de DDR5
12 GB de DDR5
Programação em CUDA
Custo/Benefício
Desempenho
Disponibilidade
Diversos outros...
Sistemas Distribuídos
Rede
Cliente
Cliente
Internet
Cliente
Cliente
Cliente
Cliente
Cliente
Cliente
Ciclo de Palestras Quinzenais - UDF 19/37
Figura: Internet
Jeremias Moreira Gomes
Introdução Computação Paralela
Computação de Alto Desempenho Exemplo de Processadores Paralelos
Como Funciona? Computação Distribuída
Conclusão Exemplos de Sistemas Distribuídos
Referências Bibliográficas Diferença entre Sistemas Paralelos e Sistemas Distribuídos
Custo
Desempenho
Disponibilidade
Escalabilidade
Diversos outros...
Computador Paralelo
Uma coleção de elementos de processamento que cooperam e
comunicam para resolver problemas mais rápido.
Categorias
High Performance Computing (HPC) Para uso dedicado
High Throughput Computing (HTC) Aproveita a ociosidade
das máquinas
Lista TOP500
Características
Divulgado duas vezes ao ano
É de interesse de fabricantes e compradores
Utiliza um benchmark chamado LINPACK
Utiliza Tera FLOPS como unidade de medida
Medida de Desempenho
FLOPS
Operações de ponto flutuante por segundo
Medida de Desempenho
FLOPS
Operações de ponto flutuante por segundo
Medida de Desempenho
FLOPS
Operações de ponto flutuante por segundo
Ranking TOP500
Tianhe-2 (MIlkWay-2)
Primeiro do ranking desde junho de 2013
Figura: Tianhe-2
HPT
Considera a ociosidade das máquinas
P2P - Cada usuário disponibiliza seu poder computacional
Grid - Cria organizações virtuais a partir de empresas reais
HPT
Considera a ociosidade das máquinas
P2P - Cada usuário disponibiliza seu poder computacional
Grid - Cria organizações virtuais a partir de empresas reais
Como Programar?
Memória Compartilhada
Posix Threads (PThreads)
Memória Distribuída
OpenMP
Message Passing Interface (MPI)
CUDA (GPU)
OpenCL
Limites da Paralelização
Quanto meu programa ficou mais rápido?
T (1)
S= T (N )
S → Speedup
T (1) → Tempo serial
T (N ) → Tempo paralelo
Exemplo
Tempo serial = 16 segundos
Tempo paralelo = 3.2 segundos
Qual o speedup?
Limites da Paralelização
Quanto meu programa ficou mais rápido?
T (1)
S= T (N )
S → Speedup
T (1) → Tempo serial
T (N ) → Tempo paralelo
Exemplo
Tempo serial = 16 segundos
Tempo paralelo = 3.2 segundos
Qual o speedup?
T (1) 16
S= T (N )
= 3.2
= 5×
Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis
Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis
Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis
1-P P1
N=2
P2
Ciclos de tempo para execução Ciclos de tempo para execução
Fórmula
1
Programa 1-P P S= P
(1−P )+( N )
Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis
1-P P1
N=2
P2
Ciclos de tempo para execução Ciclos de tempo para execução
Fórmula
1
Programa 1-P P S= P
(1−P )+( N )
Ciclos de tempo para execução
P1
1-P P2 N=3
P3
Ciclo de Palestras Quinzenais - UDF 33/37
Figura: ExemploJeremias
de Limitação do Paralelismo
Moreira Gomes
Introdução
Computação de Alto Desempenho
Como Funciona? Conclusão
Conclusão
Referências Bibliográficas
Conclusão
Limite físico
Consumo energético
Conscientização
Referências Bibliográficas I
Flynn, M. (1972).
Some Computer Organizations and their Effectiveness.
Computers, IEEE Transactions on, 100(9):948–960.
Tanenbaum, A. S. (1995).
Distributed operating systems.
Pearson Education India.
Top500.org (2015).
Top500 Supercomputer Sites, http://top500.org.
jeremiasmg@gmail.com
23 de março de 2016