Вы находитесь на странице: 1из 62

Computação de Alto Desempenho:

o que é, para que serve e como funciona

Jeremias Moreira Gomes

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

2 Computação de Alto Desempenho

3 Como Funciona?

4 Conclusão

5 Referências Bibliográficas

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 2/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Como Executar uma Tarefa Mais Rápido?!?

Essencialmente, há três maneiras de se executar uma tarefa


de maneira mais rápida

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 3/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Como Executar uma Tarefa Mais Rápido?!?

Essencialmente, há três maneiras de se executar uma tarefa


de maneira mais rápida

Trabalhando mais rápido

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 3/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Como Executar uma Tarefa Mais Rápido?!?

Essencialmente, há três maneiras de se executar uma tarefa


de maneira mais rápida

Trabalhando mais rápido

Trabalhando de maneira mais inteligente

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 3/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Como Executar uma Tarefa Mais Rápido?!?

Essencialmente, há três maneiras de se executar uma tarefa


de maneira mais rápida

Trabalhando mais rápido

Trabalhando de maneira mais inteligente

Solicitando apoio

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 3/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Trabalhando Mais Rápido

Aumentando a Velocidade da CPU


Lei de Moore
Funcionou muito bem até 2005
Barreira tecnológica

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 4/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Trabalhando Mais Rápido

Aumentando a Velocidade da CPU


Lei de Moore
Funcionou muito bem até 2005
Barreira tecnológica

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 4/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Lei de Moore

Bacharel em Química pela Universidade da Califórnia (1950)

Bacharel em Física pela Caltech (1954)

Cofundador da Intel Corporation (1968)

Fez uma previsão sobre o futuro do hardware conhecida como


“Lei de Moore” [Moore, 2006]

Figura: Gordon E. Moore

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 5/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Lei de Moore

Bacharel em Química pela Universidade da Califórnia (1950)

Bacharel em Física pela Caltech (1954)

Cofundador da Intel Corporation (1968)

Fez uma previsão sobre o futuro do hardware conhecida como


“Lei de Moore” [Moore, 2006]

“A complexidade para componentes


com custos mínimos tem aumentado em
Figura: Gordon E. Moore
uma taxa de aproximadamente um fator
de dois por ano.”
Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 5/37
Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Evolução da Quantidade de Transistores nos


Processadores

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

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 6/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Trabalhando Mais Rápido

Aumentando a Velocidade da CPU


Lei de Moore
Funcionou muito bem até 2005
Barreira tecnológica

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 7/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

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

Figura: Evolução da Performance Computacional. Adaptado de [Millett et al., 2011]

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 8/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

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

Figura: Evolução da Performance Computacional. Adaptado de [Millett et al., 2011]

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 8/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

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

Figura: Evolução da Performance Computacional. Adaptado de [Millett et al., 2011]

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 8/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

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

Figura: Evolução da Performance Computacional. Adaptado de [Millett et al., 2011]

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 8/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Número de Núcleos por Soquete

100

90

80

70

60

50

40

30

20

10

0
2002 2004 2006 2008 2010 2012 2014 2016

Figura: Evolução da Quantidade de Núcleos. Retirado de [Top500.org, 2015].

Jeremias Moreira Gomes Ciclo de Palestras Quinzenais - UDF 9/37


Introdução
Computação de Alto Desempenho
Tempo de Uma Tarefa
Como Funciona?
Taxonomia de Flynn
Conclusão
Referências Bibliográficas

Trabalhando Mais Rápido

Aumentando a Velocidade da CPU


Lei de Moore
Funcionou muito bem até 2005
Barreira tecnológica

Ciclo de Palestras Quinzenais - UDF 10/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

Trabalhando de Maneira Mais Inteligente


Mudança de Abordagem
Escolha apropriada do algoritmo
Adaptações em algoritmos
Problemas sem solução polinomial determinística (NP)

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

Ciclo de Palestras Quinzenais - UDF 12/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 Figura: Encoberto

Ciclo de Palestras Quinzenais - UDF 12/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 Figura: Encoberto Figura: Aberto

Ciclo de Palestras Quinzenais - UDF 12/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

Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].

Fluxo de
Instruções
Único Múltiplo

Único SISD MISD


Fluxo de
Dados
Múltiplo
SIMD MIMD

Figura: Taxonomia de Flynn

Ciclo de Palestras Quinzenais - UDF 13/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

Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].

Fluxo de
Instruções
Único Múltiplo

Único SISD MISD


Fluxo de
Dados
Múltiplo
SIMD MIMD

Figura: Single Instruction, Single Data

Ciclo de Palestras Quinzenais - UDF 13/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

Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].

Fluxo de
Instruções
Único Múltiplo

Único SISD MISD


Fluxo de
Dados
Múltiplo
SIMD MIMD

Figura: Single Instruction, Multiple Data

Ciclo de Palestras Quinzenais - UDF 13/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

Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].

Fluxo de
Instruções
Único Múltiplo

Único SISD MISD


Fluxo de
Dados
Múltiplo
SIMD MIMD

Figura: Multiple Instruction, Multiple DAta

Ciclo de Palestras Quinzenais - UDF 13/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

Taxonomia de Flynn
Modelo para classificação de arquiteturas mais aceito pela
comunidade científica [Flynn, 1972].

Fluxo de
Instruções
Único Múltiplo

Único SISD MISD


Fluxo de
Dados
Múltiplo
SIMD MIMD

Figura: Multiple Instruction, Single Data

Ciclo de Palestras Quinzenais - UDF 13/37


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

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 MEMÓRIA CPU

CPU

Figura: Arquiteturas Paralelas possuem uma memória compartilhada


Ciclo de Palestras Quinzenais - UDF 14/37
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

Exemplo de Processadores Paralelos


Arquitetura Manycore
Utilizam técnicas de paralelismo massivo para priorizar vazão
de processamento.

Ciclo de Palestras Quinzenais - UDF 15/37


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

Exemplo de Processadores Paralelos


Arquitetura Manycore
Utilizam técnicas de paralelismo massivo para priorizar vazão
de processamento.

Intel® Xeon Phi™


61 núcleos

4 threads de hardware

16 GB de DDR5

Registradores vetoriais de 512 bits

Ciclo de Palestras Quinzenais - UDF 15/37


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

Exemplo de Processadores Paralelos


Arquitetura Manycore
Utilizam técnicas de paralelismo massivo para priorizar vazão
de processamento.

NVIDIA GeForce GTX TITAN X


3072 núcleos

12 GB de DDR5

Programação em CUDA

Ciclo de Palestras Quinzenais - UDF 15/37


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

Motivação para o Uso de Computadores Paralelos

Custo/Benefício

Desempenho

Disponibilidade

Diversos outros...

Ciclo de Palestras Quinzenais - UDF 16/37


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

Sistemas Distribuídos

Definição segundo Tanenbaum [Tanenbaum, 1995]


Um sistema distribuído é uma coleção de computadores
autônomos conectados por uma rede de comunicação que é
percebida pelos usuários como um único computador que
provê um serviço ou resolve um problema.

Definição segundo Coulouris [Coulouris et al., 2005]


Um sistema distribuído é composto por computadores
conectados em rede (hardware e software) que se comunicam
e coordenam suas ações somente através do envio de
mensagens.

Ciclo de Palestras Quinzenais - UDF 17/37


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

Arquitetura de um Sistemas Distribuído

CPU MEMÓRIA CPU MEMÓRIA

Rede

CPU MEMÓRIA CPU MEMÓRIA

Figura: Arquitetura de um Sistema Distribuído

Ciclo de Palestras Quinzenais - UDF 18/37


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

Exemplos de Sistemas Distribuídos


Internet

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

Exemplos de Sistemas Distribuídos


Massive Multiplayer Online Role Playing Game

Figura: Massive Multiplayer Online Role Playing Game (MMORPG)

Ciclo de Palestras Quinzenais - UDF 20/37


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

Exemplos de Sistemas Distribuídos


Massive Multiplayer Online Role Playing Game

Figura: Massive Multiplayer Online Role Playing Game (MMORPG)

Ciclo de Palestras Quinzenais - UDF 20/37


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

Motivação para o Uso de Sistemas Distribuídos

Custo

Desempenho

Disponibilidade

Escalabilidade

Diversos outros...

Ciclo de Palestras Quinzenais - UDF 21/37


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

Diferença entre Sistemas Paralelos e Sistemas


Distribuídos

Computador Paralelo
Uma coleção de elementos de processamento que cooperam e
comunicam para resolver problemas mais rápido.

A principal diferença entre Sistemas Paralelos e Sistemas


Distribuídos encontra-se apenas no objetivo de cada um.
Sistema Paralelo: foco principal no desempenho
Sistema Distribuído: custo, disponibilidade, etc

Ciclo de Palestras Quinzenais - UDF 22/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Tipos de Arquitetura para Computação de Alto


Desempenho

Categorias
High Performance Computing (HPC) Para uso dedicado
High Throughput Computing (HTC) Aproveita a ociosidade
das máquinas

Ciclo de Palestras Quinzenais - UDF 23/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

High Performance Computing (HPC)


Cluster: Arquiteturas construídas com componentes comuns (PC, etc)
Supercomputadores: Arquiteturas proprietárias e específicas

Ciclo de Palestras Quinzenais - UDF 24/37


Jeremias Moreira
Figura:Gomes
Exemplo de Cluster
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Lista TOP500

O TOP500 é um site (http://www.top500.org) que mostra os


500 computadores mais poderosos comercialmente
conhecidos.

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

Ciclo de Palestras Quinzenais - UDF 25/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Medida de Desempenho

FLOPS
Operações de ponto flutuante por segundo

Ciclo de Palestras Quinzenais - UDF 26/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Medida de Desempenho

FLOPS
Operações de ponto flutuante por segundo

Mega FLOPS = 220 ∼= 106 = 1.000.000 operações por segundo


Giga FLOPS = 230 ∼
= 109 = 1.000.000.000 ...
Tera FLOPS = 240 ∼
= 1012 = 1.000.000.000.000 ...
Peta FLOPS = 250 ∼
= 1015 = 1.000.000.000.000.000 ...
Exa FLOPS = 260 ∼
= 1018 = 1.000.000.000.000.000.000 ...
Zetta FLOPS = 270 ∼
= 1021 = 1.000.000.000.000.000.000.000 ...
Yotta FLOPS = 280 ∼
= 1024 = 1.000.000.000.000.000.000.000.000 ..
Ciclo de Palestras Quinzenais - UDF 26/37
Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Medida de Desempenho

FLOPS
Operações de ponto flutuante por segundo

Mega FLOPS = 220 ∼= 106 = 1.000.000 operações por segundo


Giga FLOPS = 230 ∼
= 109 = 1.000.000.000 ...
Tera FLOPS = 240 ∼
= 1012 = 1.000.000.000.000 ...
Peta FLOPS = 250 ∼
= 1015 = 1.000.000.000.000.000 ...
Exa FLOPS = 260 ∼
= 1018 = 1.000.000.000.000.000.000 ...
Zetta FLOPS = 270 ∼
= 1021 = 1.000.000.000.000.000.000.000 ...
Yotta FLOPS = 280 ∼
= 1024 = 1.000.000.000.000.000.000.000.000 ..
Ciclo de Palestras Quinzenais - UDF 26/37
Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Ranking TOP500

Rank Site País Sistema Cores TFlop/s


National Super Computer Center Tianhe-2 (MilkyWay-2) - TH-IVB-FEP Cluster, Intel Xeon
1 in Guangzhou China E5-2692 12C 2.200GHz, TH Express-2, 3,120,000 33,862.7
Intel Xeon Phi 31S1P,NUDT
DOE/SC/Oak Ridge National Estados Titan - Cray XK7 , Opteron 6274 16C 2.200GHz, Cray
2 560,640 27,112.5
Laboratory Unidos Gemini interconnect, NVIDIA K20x,Cray Inc.
Estados Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz,
3 DOE/NNSA/LLNL 1,572,864 20,132.7
Unidos Custom,IBM
RIKEN Advanced Institute for K computer, SPARC64 VIIIfx 2.0GHz, Tofu
4 Japão 705,024 10,510.0
Computational Science (AICS) interconnect,Fujitsu
DOE/SC/Argonne National Estados Mira - BlueGene/Q, Power BQC 16C 1.60GHz,
5 786,432 8,586.6
Laboratory Unidos Custom,IBM
... ... ... ... ... ...
Laboratório Nacional de Santos Dumont GPU - Bullx B710,
201 Computação Científica Brasil Intel Xeon E5-2695v2 12C 2.4GHz, 10,692 456.8
Infiniband FDR, Nvidia K40,Bull, Atos Group

Ciclo de Palestras Quinzenais - UDF 27/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Tianhe-2 (MIlkWay-2)
Primeiro do ranking desde junho de 2013

Figura: Tianhe-2

Ciclo de Palestras Quinzenais - UDF 28/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

High Throughput Computing (HPT)

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

Ciclo de Palestras Quinzenais - UDF 29/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

High Throughput Computing (HPT)

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

Figura: Análise de radiofrequência.


Figura: Anonimato da navegação na internet.

Ciclo de Palestras Quinzenais - UDF 29/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Quão Rápido Estamos?

A mudança a cada seis


meses é extremamente
dinâmica

GTX Titan X alcança 6


Giga FLOPS

Ciclo de Palestras Quinzenais - UDF 30/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Quão Rápido Estamos?

A mudança a cada seis


meses é extremamente
dinâmica

GTX Titan X alcança 6


Giga FLOPS

Ciclo de Palestras Quinzenais - UDF 30/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Como Programar?
Memória Compartilhada
Posix Threads (PThreads)
Memória Distribuída
OpenMP
Message Passing Interface (MPI)
CUDA (GPU)
OpenCL

Ciclo de Palestras Quinzenais - UDF 31/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

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?

Ciclo de Palestras Quinzenais - UDF 32/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

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×

Ciclo de Palestras Quinzenais - UDF 32/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis

Ciclos de tempo para execução


Fórmula
1
Programa S= P
(1−P )+( N )

Ciclo de Palestras Quinzenais - UDF 33/37


Figura: ExemploJeremias
de Limitação do Paralelismo
Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis

Ciclos de tempo para execução Ciclos de tempo para execução


Fórmula
1
Programa 1-P P S= P
(1−P )+( N )

Ciclo de Palestras Quinzenais - UDF 33/37


Figura: ExemploJeremias
de Limitação do Paralelismo
Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis

Ciclos de tempo para execução

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 )

Ciclo de Palestras Quinzenais - UDF 33/37


Figura: ExemploJeremias
de Limitação do Paralelismo
Moreira Gomes
Introdução
Computação de Alto Desempenho Tipos de Arquitetura para Computação de Alto Desempenho
Como Funciona? TOP500
Conclusão Como Programar?
Referências Bibliográficas

Limites da Paralelização
Lei de Amdahl
Existem elementos no código que não são paralelizáveis

Ciclos de tempo para execução

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

E se ocorrer um salto de performance?

Consumo energético

Ciclo de Palestras Quinzenais - UDF 34/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho
Como Funciona? Conclusão
Conclusão
Referências Bibliográficas

Conscientização

Ciclo de Palestras Quinzenais - UDF 35/37


Jeremias Moreira Gomes
Introdução
Computação de Alto Desempenho
Como Funciona?
Conclusão
Referências Bibliográficas

Referências Bibliográficas I

Coulouris, G. F., Dollimore, J., and Kindberg, T. (2005).


Distributed systems: concepts and design.
pearson education.

Flynn, M. (1972).
Some Computer Organizations and their Effectiveness.
Computers, IEEE Transactions on, 100(9):948–960.

Millett, L. I., Fuller, S. H., et al. (2011).


The Future of Computing Performance:: Game Over or Next Level?
National Academies Press.
Moore, G. E. (2006).
Cramming More Components onto Integrated Circuits, Reprinted from Electronics, volume 38, number 8,
April 19, 1965, pp. 114 ff.
IEEE Solid-State Circuits Newsletter, 3(20):33–35.

Tanenbaum, A. S. (1995).
Distributed operating systems.
Pearson Education India.
Top500.org (2015).
Top500 Supercomputer Sites, http://top500.org.

Ciclo de Palestras Quinzenais - UDF 36/37


Jeremias Moreira Gomes
Computação de Alto Desempenho:
o que é, para que serve e como funciona
Limites da Paralelização

Jeremias Moreira Gomes

jeremiasmg@gmail.com

23 de março de 2016

Вам также может понравиться