mini-curso arquiteturas paralelas

88
Arquiteturas Paralelas Prof. Dr. Edson T. Midorikawa [email protected] Departamento de Engenharia de Computação e Sistemas Digitais Escola Politécnica da USP I Escola Regional de Alto Desempenho de SP São Paulo - SP 30 e 31 de Julho de 2010 ERAD-SP 2010

Upload: deivid-martins

Post on 22-Jun-2015

5.300 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Mini-curso Arquiteturas Paralelas

Arquiteturas Paralelas

Prof. Dr. Edson T. [email protected]

Departamento de Engenharia de Computação

e Sistemas Digitais

Escola Politécnica da USP

I Escola Regional de Alto Desempenho de SP

São Paulo - SP – 30 e 31 de Julho de 2010

ERAD-SP 2010 1

Page 2: Mini-curso Arquiteturas Paralelas

Apresentação – Prof. Edson Midorikawa

• Formação

– Graduação em Engenharia Elétrica – EPUSP (1986)

– Mestrado em Engenharia Elétrica – EPUSP (1992)

– Doutorado em Engenharia Elétrica – EPUSP (1997)

• Atividades

– Professor doutor da Escola Politécnica da USP

– Membro do LAHPC (Laboratório de Arquitetura e Computação

de Alto Desempenho)

• Áreas de Interesse

– Arquiteturas paralelas (multicore, hierarquia de memória)

– Máquinas virtuais (escalonamento de recursos, gerencia de

memória, interação MMV-SO)

– Computação avançada (cluster, grid, cloud computing)

ERAD-SP 2010 2

Page 3: Mini-curso Arquiteturas Paralelas

ERAD-SP 2010

Sumário

• Introdução

– Motivação

– Classificação de Máquinas Paralelas

• Paralelismo em Arquitetura de Computadores

– Pipelining

– Superescalaridade

– Multithreading

• Arquiteturas Multicore

• Arquiteturas Avançadas

– Multicores Avançados – Multiprocessadores

– GPGPU – Clusters

3

Page 4: Mini-curso Arquiteturas Paralelas

1. Introdução

ERAD-SP 2010 4

Page 5: Mini-curso Arquiteturas Paralelas

Motivação

• Por que estudar “Arquitetura de Computadores”?

– Disciplina obrigatória nos cursos de Engenharia de

Computação, Ciência da Computação,

Sistemas de Informação, etc.

– Melhor entendimento do funcionamento (e aproveitamento)

das máquinas modernas.

– Cria novas oportunidades de pesquisa em computação

avançada.

ERAD-SP 2010 5

Page 6: Mini-curso Arquiteturas Paralelas

Motivação

• Por que pesquisar “Arquiteturas Paralelas”?

– Explora alternativas de projeto de novos sistemas para

aumento de desempenho e de recursos de microeletrônica.

– Área de pesquisa com uma comunidade brasileira ativa e

atuante em várias áreas (SBAC-PAD)

– Áreas de atuação:

• Desenvolvimento de novos modelos de computação

• Desenvolvimento de novas arquiteturas de sistemas

computacionais (processadores multi-core, multiprocessadores,

sistemas de cluster, grid e cloud computing)

• Viabiliza novas aplicações computacionais (modelos matemáticos)

– Previsão de tempo e de clima

– Drug design, genômica, proteômica

– Simulação (car crash, plataforma petrolífera, ...)

ERAD-SP 2010 6

Page 7: Mini-curso Arquiteturas Paralelas

ERAD-SP 2010

Motivação

• Evolução em várias categorias de computadores

1950 1960 1970 1980 1990 2000

mainframe

minicomputador

microcomputador

x

UNIVAC

4004

/370 /390 z/900

servidor/workstation

desktop PC

value PC

8080 8088

80286

80386

80486

Pentium

PIIPIIIP4

Celeron

/360

PDP-8 PDP-11 VAX

RS/6000

PPro

Xeon

super-computador

ENIAC CDC-6600

?Cray-1 Cray-2NORC Cray-3 Cray T3E

Cray-4

8088Altair

7

Page 8: Mini-curso Arquiteturas Paralelas

Motivação

• Evolução do desempenho de processadores

ERAD-SP 2010

SPE Cint92

5

10

50

Year

86 8879 198081 82 83 84 85 87 89199091 92 93 94 95 96 97 98 99

*

*

*

**

*

**

2

386/16

*

* *

*

*

* 8088/5

*0.5

100

8088/8

80286/10

80286/12

386/20 386/25

386/33

500

*

*

*1000

20

200

1

0.2

*

***

**

*

486/25

486/33

486/50486-DX2/66

Pentium/66

Pentium/100Pentium/120

Pentium Pro/200

PI I /450

PI I I /600

486-DX4/100

Pentium/133Pentium/166

Pentium/200

PI I /300PI I /400PI I I /500

486-DX2/50

*

200001 02 03

5000

2000

**

*

*

*

***

*

PI I I /1000

P4/1500P4/1700

P4/2000P4/2200

P4/2400P4/2800

P4/3060

P4/3200

~ 100*/10 years

*

*

***

04 05

Northwood B

10000

Pres cott (1M )Pres cott (2M )

L eveling off

8

Page 9: Mini-curso Arquiteturas Paralelas

Motivação

• Fatores para melhora de desempenho

ERAD-SP 2010

5

10

50

Year

*

**

*

2

8088

*

100

386

Pentium

Year of first volume shipment

cf

500

1000

20

200

*

486-DX2

79 1980 81 82 83 84 85 86 87 88 89 1990 91 92 93 94 95 96 97 98 9978

*

*

*

*

*

*486

*

* * *

*

*

* ***

Pentium II

** *Pentium III

*

286

*

Pentium Pro

1

486-DX4

2000 01 02 03

2000

***

**

***

*

*

5000

Pentium 4

~10*/10years

~100*/10years

04 05

* * *

Leveling off(MHz)

Aumento da

Frequencia do relógio

9

Page 10: Mini-curso Arquiteturas Paralelas

Motivação

• Fatores para melhora de desempenho (2)

ERAD-SP 2010

Lei de Moore

10

Page 11: Mini-curso Arquiteturas Paralelas

Motivação

• Fatores para melhora de desempenho (3)

• Como manter a tendencia de aumento de desempenho

dos processadores?

• O que fazer se não é possível manter continuamente

o aumento do clock?

• Como utilizar eficientemente os transistores

disponíveis em um chip?

ERAD-SP 2010 11

Page 12: Mini-curso Arquiteturas Paralelas

Motivação

• Resposta

PARALELISMO

ERAD-SP 2010 12

Page 13: Mini-curso Arquiteturas Paralelas

Classificação de Máquinas Paralelas

• Classificação de Flynn

– Classificação de arquiteturas paralelas genérica

de acordo com as características do fluxo de

instruções e o fluxo de dados (único ou múltiplo)

ERAD-SP 2010 13

Michael J. Flynn

Page 14: Mini-curso Arquiteturas Paralelas

Classificação de Máquinas Paralelas

• SISD

– Single Instruction, Single Data

• Um único fluxo de instruções

• Um único fluxo de dados

– Contém as arquiteturas tradicionais não paralelas

• Máquinas de Von Neumann

ERAD-SP 2010 14

dadoinstruçãoUC = unidade de controle

UP = unidade de processsamento

MEM = memória

Page 15: Mini-curso Arquiteturas Paralelas

Classificação de Máquinas Paralelas

• SIMD

– Single Instruction, Multiple Data

• Um único fluxo de instrução

• Múltiplos fluxos de dados

– Execução síncrona da instrução

para todos os dados

– Exemplos:

• Processadores vetoriais (Cray 1)

• GPU

ERAD-SP 2010 15

dadosinstrução

Page 16: Mini-curso Arquiteturas Paralelas

Classificação de Máquinas Paralelas

• MISD

– Multiple Instruction, Single Data

• Múltiplos fluxos de instrução

• Um único fluxo de dados

– Execução de várias instruções

em um único dado.

– Não há exemplos.

ERAD-SP 2010 16

dado

instruções

UP2

UP3

UPnUCn

...

...

Page 17: Mini-curso Arquiteturas Paralelas

Classificação de Máquinas Paralelas

• MIMD

– Multiple Instruction, Multiple Data

• Múltiplos fluxos de instruções

• Múltiplos fluxos de dados

– Permite a execução de

instruções diferentes para

cada um dos dados

– Exemplos:

• Arquiteturas paralelas atuais

• Top500.org

ERAD-SP 2010 17

dadosinstruções

Page 18: Mini-curso Arquiteturas Paralelas

Máquinas Paralelas

• Top500.org

– Lista com os 500 computadores mais rápidos

– Atualizada duas vezes ao ano (junho e novembro)

ERAD-SP 2010 18

Page 19: Mini-curso Arquiteturas Paralelas

ERAD-SP 2010 19

Page 20: Mini-curso Arquiteturas Paralelas

2. Paralelismo em Arquitetura de

Computadores

ERAD-SP 2010 20

Page 21: Mini-curso Arquiteturas Paralelas

ERAD-SP 2010

Fontes de Paralelismo

• Há várias fontes de execução paralela em um

computador moderno:

– Aplicações diferentes;

– Instâncias de execução

da mesma aplicação;

– Fluxo de instruções (threads)

de uma aplicação;

– Instruções de um programa (ILP)

Processadores

multicore

Multiprogramação

Multitarefa

21

Page 22: Mini-curso Arquiteturas Paralelas

Fontes de Paralelismo

• Paralelismo no Nível de Instrução (ILP)

– Permite executar várias instruções em cada ciclo de relógio.

– Modificações na microarquitetura do processador para

possibilitar a execução paralela de instruções.

– Alternativas:

• Paralelismo temporal: encadeamento no fluxo de execução das

instruções (pipeline);

• Paralelismo na emissão de instruções: submissão de várias

instruções para execução pelo fluxo de dados (VLIW e

superescalaridade);

• Paralelismo de dados: permite executar várias instâncias da

mesma instrução para um conjunto de dados (processamento

SIMD ou vetorial).

ERAD-SP 2010 22

Page 23: Mini-curso Arquiteturas Paralelas

Fontes de Paralelismo

ERAD-SP 2010

Paralelismo

de DadosParalelismo

Temporal

Paradigmas de processamento ILP

Resolução estática

de dependências

Resolução dinâmica

de dependências

Processadores

com Pipeline Processadores

VLIW

Processadores

Superscalares

extensão

SIMD

Paralelismo de

Emissão de Instruções

23

Page 24: Mini-curso Arquiteturas Paralelas

Evolução do Paralelismo

ERAD-SP 2010

Processadores von Neumanntradicionais

Processadores Superscalares com

extensão SIMD

Processadores

SuperscalaresProcessadores

Pipelined

Extensão do

paralelismo

da execução

Nível de

redundância

de hardware

ProcessamentoILP

~ 1985/88 ~ 1990/93 ~ 1994/00

Sequencial

t

+ paralelismo

de dados

+ paralelismo

de envio de

instruções

Paralelismo

temporal

24

Page 25: Mini-curso Arquiteturas Paralelas

Pipelining

• Execução de uma instrução é dividida em etapas:

IF = busca da instrução na memória (inclui atualização do PC)

ID = decodificação da instrução + busca de valores em registradores

EXE = execução da instrução (ULA ou cálculo de endereços)

MEM = acesso à memória ou instrução de desvio

WB = escrita resultados nos registradores de saída

Uma instrução leva 5 períodos de clock para concluir.

ERAD-SP 2010 25

Registra-

dores

ID MEMIF EXE WB

MemóriaMemória

Page 26: Mini-curso Arquiteturas Paralelas

Pipelining

• Fluxo de dados do processador MIPS didático

(COD/4e, Patterson & Hennessy)

ERAD-SP 2010 26

Page 27: Mini-curso Arquiteturas Paralelas

Pipelining

• Inicia a execução de uma instrução por ciclo de clock

ERAD-SP 2010 27

IF I1 I2

I1 I2ID

EXE

MEM

WB

I1 I2

I1 I2

I1 I2

I3 I4

I3

I3 I4 I5

I3 I4 I5 I6

ciclo 1 2 3 4 5 6

fluxo de

instruções

A cada ciclo de clock, termina-se a execução de uma instrução.

Page 28: Mini-curso Arquiteturas Paralelas

Superescalaridade

• Em um processador superescalar, várias instruções são

submetidas para execução simultaneamente.

• Várias instruções do programa são analisadas para

execução paralela.

PROBLEMA: dependência de dados entre instruções.

ERAD-SP 2010 28

Regis-

tradores

ID MEMBusca

de instr. EXE WB

MemoriaMemoria

instruções instruções

Page 29: Mini-curso Arquiteturas Paralelas

Superescalaridade

• Dependência de dados

ERAD-SP 2010 29

Stall

Time (cycles)

1 2 3 4 5 6 7 8

RF40

$s0

RF

$t0+

DMIM

lwlw $t0, 40($s0)

add $t1, $t0, $s1

sub $t0, $s2, $s3

and $t2, $s4, $t0

sw $s7, 80($t3)

RF$s1

$t0add

RF$s1

$t0

RF

$t1+

DM

RF$t0

$s4

RF

$t2&

DMIM

and

IMor

and

sub

|$s6

$s5$t3

RF80

$t3

RF

+

DM

sw

IM

$s7

9

$s3

$s2

$s3

$s2

-$t0

oror $t3, $s5, $s6

IM

Page 30: Mini-curso Arquiteturas Paralelas

Superescalaridade

• Para resolver o problema da dependência de dados, um

processador superescalar permite a execução fora de

ordem das instruções (OOO – out of order execution)

ERAD-SP 2010 30

Time (cycles)

1 2 3 4 5 6 7 8

RF40

$s0

RF

$t0+

DMIM

lwlw $t0, 40($s0)

add $t1, $t0, $s1

sub $t0, $s2, $s3

and $t2, $s4, $t0

sw $s7, 80($t3)

or|$s6

$s5$t3

RF80

$t3

RF

+

DM

sw $s7

or $t3, $s5, $s6

IM

RF$s1

$t0

RF

$t1+

DMIM

add

sub-$s3

$s2$t0

two cycle latency

between load and

use of $t0

RAW

WAR

RAW

RF$t0

$s4

RF

&

DM

and

IM

$t2

RAW

Page 31: Mini-curso Arquiteturas Paralelas

Multithreading

• Algumas definições:

– Processo: programa rodando em um computador.

– Vários processos estão em execução simultaneamente, como

p. ex.: browser Web, editor de texto, anti-virus.

– Thread: parte de um processo.

– Cada processo pode ter vários threads, como p. ex.: um editor

de texto pode ter vários threads para digitação, verificação

ortográfica e impressão.

• Em um processador convencional:

– Apenas um thread é executado por vez.

– Quando ocorre uma parada (stall) na execução de um thread

(p.ex. acesso à memória), realiza-se uma troca de contexto

para outro thread.

ERAD-SP 2010 31

Page 32: Mini-curso Arquiteturas Paralelas

Multithreading

• Em um processador com multithreading, vários threads

podem estar ativos ao mesmo tempo:

– Possui mais de um conjunto de registradores de estado

– Quando ocorre stall em um thread, outro é colocado em

execução imediatamente (não há necessidade de operações

de salvamente e carga de estado)

– Se um thread não usar uma unidade funcional (p.ex. somador,

ULA, FPU), outro pode usá-lo

• Não modifica o paralelismo de instruções de um único

thread, mas aumenta o desempenho geral do sistema.

ERAD-SP 2010 32

Page 33: Mini-curso Arquiteturas Paralelas

Multithreading

• A presença de vários conjuntos de registradores de

estado é normalmente interpretado pelos sistemas

operacionais como se houvesse vários processadores

(virtuais), onde os processos podem ser escalonados.

• Permite um melhor compartilhamento dos recursos do

processador

– Unidades funcionais

– Memórias cache

ERAD-SP 2010 33

Page 34: Mini-curso Arquiteturas Paralelas

Multithreading

• Simultaneous Multithreading (SMT)

– Permite executar instruções de threads de vários programas

(processos) simultaneamente sem a necessidade de troca de

contexto

– Vantagens

• Permite a execução simultânea de mais instruções por ciclo

• Desempenho total se tiver apenas um thread ativo

ERAD-SP 2010 34

ciclos

sem

multithreading

cache

miss

blocked

multithreading

Interleaved

multithreading SMT

Page 35: Mini-curso Arquiteturas Paralelas

Multithreading

ERAD-SP 2010 35

Superescalar

(4-way)

Superescalar com SMT

(4-way/2 threads)

Thread Thread 2Thread 1

Page 36: Mini-curso Arquiteturas Paralelas

Multithreading

• Simultaneous Multithreading

– A Intel implementa a técnica SMT em seus processadores

com o nome comercial “Hyperthreading” (HT)

permitindo a execução simultânea

de 2 threads por core.

– Sun UltraSparc T2 (8 threads por core)

– IBM Power 7 (4 threads por core)

ERAD-SP 2010 36

Page 37: Mini-curso Arquiteturas Paralelas

Arquiteturas Multicore

ERAD-SP 2010 37

Page 38: Mini-curso Arquiteturas Paralelas

Processadores Multicore

• Etapa atual no desenvolvimento de novas

arquiteturas de processadores.

• Permite a execução simultânea de

múltiplos threads e/ou aplicações.

• Inclui vários núcleos de

processadores na pastilha.

ERAD-SP 2010 38

Page 39: Mini-curso Arquiteturas Paralelas

Exemplos de Multicore

• Intel Core i7 e AMD Phenom X6

ERAD-SP 2010 39

Page 40: Mini-curso Arquiteturas Paralelas

Exemplos de Multicore

• Intel Xeon 5600 (hexacore)

ERAD-SP 2010 40

Page 41: Mini-curso Arquiteturas Paralelas

Exemplos de Multicore

• Intel Xeon 7500 (8-core)

ERAD-SP 2010 41

Page 42: Mini-curso Arquiteturas Paralelas

Exemplos de Multicore

• AMD Opteron 6000 (12-core)

ERAD-SP 2010 42

Page 43: Mini-curso Arquiteturas Paralelas

Processadores Multicore

ERAD-SP 2010

Tilera Tile64Intel

UltraSparc T2

43

Page 44: Mini-curso Arquiteturas Paralelas

Paralelismo no Nível de Threads

ERAD-SP 2010

ILP(paralelismo no nível de instruções)

TLP(paralelismo no nível de threads)

Thread

(fluxo de instruções)

Múltiplos threads

Granularidade

do paralelismo

44

Page 45: Mini-curso Arquiteturas Paralelas

Paralelismo no Nível de Threads

• Execução paralela de threads

ERAD-SP 2010

De onde vem os vários threads?

da mesma

aplicação

Multiprogramação Multitarefa,

Multithreading

de aplicações

diferentes

45

Page 46: Mini-curso Arquiteturas Paralelas

Paralelismo no Nível de Threads

ERAD-SP 2010

Implementação de dois ou mais cores

colocados na mesma pastilha

Implementação de um

core multithreaded

pastilha

(chip)

SMP: Symmetric Multiprocessing

(CMP: Chip Multiprocessing)SMT: Simultaneous Multithreading

(HT: Hyperthreading (Intel))

L3/Memória

L2/L3Core Core

L3/Memória

Core

SMT

L2/L3

Implementação de paralelismo no nível de

threads em microprocessadores

46

Page 47: Mini-curso Arquiteturas Paralelas

Paralelismo no Nível de Threads

• Simultaneous

Multithreading

ERAD-SP 2010 47

Superescalar

(4-way)

Superescalar com SMT

(4-way/2 threads)

Thread Thread 2Thread 1

Page 48: Mini-curso Arquiteturas Paralelas

Paralelismo no Nível de Threads

• Simultaneous

Multiprocessing

ERAD-SP 2010 48

Nehalem-EX

Page 49: Mini-curso Arquiteturas Paralelas

Simultaneous Multiprocessing

• A presença de vários núcleos de processador (core) em

um computador pode ser realizada em dois níveis

distintos:

– Multiprocessador: vários chips processadores.

– Multicore: um único chip processador com vários cores.

ERAD-SP 2010 49

chip único

Page 50: Mini-curso Arquiteturas Paralelas

Multicore

• Vários “processadores single core” agrupados em um

único chip (CMP = chip multiprocessor).

– Replicação real dos recursos de um processador dentro do chip

(ao contrário do multithreading)

– Compatibilidade de código com os multiprocessadores

(modelo de memória compartilhada)

– Incorpora uma hierarquia complexa de memórias cache interna

• Caches L1 e L2 privados (particulares a cada core)

• Cache L3 único e compartilhado entre os cores

ERAD-SP 2010 50

Page 51: Mini-curso Arquiteturas Paralelas

Multicore

• Organização interna de um Multicore

– Principais componentes:

• Núcleos de processador

(cores)

• Memórias cache

• Rede de interconexão interna

• Interface com barramento

de E/S externo

• Controlador de interrupções

• Timers

• etc

ERAD-SP 2010 51

Fonte: ARM, The ARM Cortex-A9 Processors White Paper, 2009.

Page 52: Mini-curso Arquiteturas Paralelas

Multicore

• Hierarquia de caches

ERAD-SP 2010 52

Page 53: Mini-curso Arquiteturas Paralelas

Multicore

• Interconexão Interna

ERAD-SP 2010 53

Árbitro/Implementações de cache multi-porta

Crossbar

Implementação das interconexões

Anel

Número pequeno defontes e destinos

Número grande defontes e destinos

Cell BE (2006)XRI (2005)

p.ex. Conexão dos dual-coresaos cache L2 compartilhado

UltraSPARC T1 (2005)UltraSPARC T2 (2007)

Aspectos quantitativos, tais como número de fontes e destinos ou requisitos de banda, afetamqual alternativa de implementação é mais benéfica.

Page 54: Mini-curso Arquiteturas Paralelas

Multicore

• Aplicação de multicores vs. SMP e processadores

superescalares

– Instrução

– Bloco básico

– Loop

– Tarefa

– Processo

ERAD-SP 2010 54

Fonte: Olukotun et al. Chip Multiprocessor Architecture, 2007.

Page 55: Mini-curso Arquiteturas Paralelas

Multicore

• Breve Histórico

ERAD-SP 2010 55

Prescott(core original)

Smithfield(dois cores Prescott modificados colocados no mesmo die)

2/2004

90 nm112 mm2

125 mtrsL2: 1 MB

Pentium 4 A/E/F seriesPentium 4 5xx series

5/2005

90 nm2 x 103 mm2

2 x 115 mtrsL2: 2 MB

Pentium D 8xxPentium EE 840

Pentium D/EE

Page 56: Mini-curso Arquiteturas Paralelas

Multicore

• Breve Histórico

ERAD-SP 2010 56

7/2006

65 nm143 mm2

167/291 mtrs

Core 2 Duo E 6x00 series

Core2 Extrem X6x00 series

11/2006

65 nm2 x 143 mm2

2 x 167/291 mtrs

Core 2 Extreme QX6x00 series

Conroe(die)

Kentsfield(dois Conroes no mesmo empacotamento)

Page 57: Mini-curso Arquiteturas Paralelas

Desafio dos Multicores

• Os processadores multicore...

– possuem uma grande capacidade computacional

(“lembre-se que um octocore permite executar ao menos 8

threads simultaneamente”);

– Implementam várias otimizações para execução paralela

(caches integrados, alta banda de comunicação, etc);

mas

– Os programas existentes não foram escritos para usar

tais recursos.

ERAD-SP 2010 57

Page 58: Mini-curso Arquiteturas Paralelas

Desafio dos Multicores

• É muito importante que a aplicação seja capaz de

aproveitar completamente os recursos dos

processadores multicore.

Conceitos de programação paralela

e multithreaded.

ERAD-SP 2010 58

Page 59: Mini-curso Arquiteturas Paralelas

ERAD-SP 2010

Fonte: Multi-core Programming, Intel Press, 2006.

59

Page 60: Mini-curso Arquiteturas Paralelas

3. Arquiteturas Avançadas

ERAD-SP 2010 60

Page 61: Mini-curso Arquiteturas Paralelas

Multicores Avançados

• IBM Power 7

– Lançado em 2010

– 1,2 bilhões de transistores

– Módulos de até 4 soquetes

– 4, 6 ou 8 cores por chip

– 4 threads SMT por core

– 12 unidades funcionais por

core

ERAD-SP 2010 61

Page 62: Mini-curso Arquiteturas Paralelas

Multicores Avançados

• Sun UltraSparc T3

– a ser lançado em 2010

– 1 bilhão de transistores

– 16 cores

– 8 threads SMT por core

– 128 threads por chip

– SMP com 4 processadores

ERAD-SP 2010 62

Page 63: Mini-curso Arquiteturas Paralelas

Manycore

• Pastilhas de processadores multicore com

cores heterogêneos

• Aplicações

– Processamento especializado

– Co-processamento

• Exemplos:

– Cell (Sony, Toshiba, IBM)

– Intel Sandy Bridge

– AMD Fision

ERAD-SP 2010 63

Page 64: Mini-curso Arquiteturas Paralelas

Manycore

• Cell

– 1 PPE (PowerPC)

– 8 SPE

– PS3 (Cell BE)

– Roadrunner

(PowerXCell 8i)

Top 500 #3

ERAD-SP 2010 64

Page 65: Mini-curso Arquiteturas Paralelas

Manycore

• Cell

ERAD-SP 2010 65

Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006,http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf

Page 66: Mini-curso Arquiteturas Paralelas

Manycore

• Cell

ERAD-SP 2010 66

Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006,http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf

Circuito de um único SPE

Page 67: Mini-curso Arquiteturas Paralelas

Manycore

• CPU + GPU (ex. Intel Sandy Bridge, AMD Fusion)

ERAD-SP 2010 67

Page 68: Mini-curso Arquiteturas Paralelas

GPGPU

• GPGPU = General Purpose computation on Graphics

Processing Unit

• Utilização de GPUs (unidades de processamento

gráfico) para execução de computação normalmente

realizada em CPUs.

• Exemplos:

– NVIDIA

– ATI

ERAD-SP 2010 68

Page 69: Mini-curso Arquiteturas Paralelas

GPGPU

ERAD-SP 2010

• GPU

– Unidade de processamento especializado para acelerar o

processamento gráfico 2D e 3D.

69

Page 70: Mini-curso Arquiteturas Paralelas

GPGPU

ERAD-SP 2010

• GPU

– Arquitetura baseada em SP (streaming processor) e

SFU (Special Function Units)

70

Page 71: Mini-curso Arquiteturas Paralelas

GPGPU

• CPU vs. GPU

– Comparação relativa a utilização de área de silício alocada por

funcionalidade nas CPUs e GPUs.

ERAD-SP 2010 71

Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008.

Page 72: Mini-curso Arquiteturas Paralelas

GPGPU

• Princípios básicos

– Multicore

• streaming multiprocessor (Nvidia)

• superscalar shader processor (AMD)

• wide SIMD processor, CPU core (Intel).

– Processamento vetorial

• Modelo SIMD

• Paralelismo de dados

– Hardware Multithreading

• Sincronização de barreira

ERAD-SP 2010 72

Page 73: Mini-curso Arquiteturas Paralelas

GPGPU

• Paralelismo de dados

ERAD-SP 2010 73

Mesma instruçãopara todos os dados

Page 74: Mini-curso Arquiteturas Paralelas

GPGPU

ERAD-SP 2010 74

Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008.

Page 75: Mini-curso Arquiteturas Paralelas

GPGPU

• Mais informações:

– gpgpu.org

– www.nvidia.com

– developer.amd.com (ATI)

– Minicurso 2 (avançado):

“Programação Paralela: CUDA”

Raphael Y. de Camargo (UFABC)

ERAD-SP 2010 (Material disponível no CD)

ERAD-SP 2010 75

Page 76: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Um multiprocessador contém vários (chips de)

processadores

• Memória compartilhada entre os processadores

– Comunicação pela memória

– Modelo UMA (uniform memory access)

– Baixa escalabilidade (até poucas dezenas de processadores)

– Fácil programação (OpenMP, CPar, ...)

ERAD-SP 2010 76

Page 77: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Arquitetura básica

ERAD-SP 2010 77

Page 78: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Cada processador pode ser um multicore com suporte a

multithreading

– Vários níveis de paralelismo

• Outras questões importantes

– Coerência de caches

– Multiprocessadores NUMA

– Programação paralela

ERAD-SP 2010 78

Page 79: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Coerência de caches

ERAD-SP 2010 79

Várias soluções na literatura.

Page 80: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Multiprocessadores

NUMA

– NUMA = Non-Uniform

Memory Acess

– Grupos de processadores

com sua respectiva

memória

– Tempos de acesso à

memória diferentes

– Mantém modelo de

memória compartilhada

(mas precisa cuidados

para obter desempenho)

ERAD-SP 2010 80

Page 81: Mini-curso Arquiteturas Paralelas

Multiprocessadores

• Programação Paralela

– Método de desenvolvimento de programas que explora a

disponibilidade de vários processadores/cores para uma

única aplicação.

– Modelos de programação

• Memória compartilhada (OpenMP, CPar)

• Memória distribuída (MPI)

• Mais informações:

Minicurso 3 (básico):

Programação Paralela: multicores e clusters

Profa. Dra. Liria Matsumoto Sato (Poli-USP)

(amanhã – 31/07 às 14h00)

ERAD-SP 2010 81

Page 82: Mini-curso Arquiteturas Paralelas

Clusters

• Arquitetura de sistema paralelo multiprocessador

organizado como um conjunto de processadores

interligados através de uma rede de interconexão rápida

ERAD-SP 2010 82

Interconexão rápida (Myrinet,

Infiniband, Gigabit Ethernet)

Rede interna de administração

(Ethernet)

cluster

Page 83: Mini-curso Arquiteturas Paralelas

Clusters

• Conhecido inicialmente como NOW (Network of

Workstations) ou COW (cluster of workstations)

• Cada nó tem sua própria memória local (não

compartilhada)

– Comunicação por troca de mensagens

– Difícil programação

• Modelo de programação diferente

• Conceito cliente-servidor

• MPI

ERAD-SP 2010 83

Page 84: Mini-curso Arquiteturas Paralelas

Clusters

• Máquinas comerciais

ERAD-SP 2010 84

Page 85: Mini-curso Arquiteturas Paralelas

4. Considerações Finais

ERAD-SP 2010 85

Page 86: Mini-curso Arquiteturas Paralelas

Arquiteturas Paralelas

Alguns pensamentos:

• Hoje, a maioria de sistemas computacionais apresenta

uma arquitetura paralela. Contudo nossos cursos não

apresentam este conteúdo de forma detalhada.

• É uma grande oportunidade para todos melhorar sua

formação com um estudo detalhado deste tópico.

ERAD-SP 2010 86

Page 87: Mini-curso Arquiteturas Paralelas

Arquiteturas Paralelas

Pensamento final:

• Precisamos difundir a necessidade

em compreender o funcionamento

das arquiteturas paralelas e do

aprendizado das técnicas de

programação paralela e distribuída

para usufruirmos dos benefícios

destas máquinas.

ERAD-SP 2010 87

Page 88: Mini-curso Arquiteturas Paralelas

Bibliografia

Algumas referências bibliográficas interessantes para

consulta sobre Arquiteturas Paralelas:

• Akter, S.; Roberts, J. Multi-core Programming. Intel Press, 2006.

• Culler, D.; Singh, J. Parallel Computer Architecture: A Hardware/

Software Approach. Morgan Kaufmann, 1999.

• De Rose, C.; Navaux, P. Arquiteturas Paralelas. Editora Sagra-Luzzatto,

2003. (Série Livros Didáticos - Número 15)

• Grama, A.; Gupta, A.; Karypis, G. and Kumar, V. Introduction to Parallel

Computing. 2nd ed., Addison-Wesley, 2003.

• Hennessy, J.L.; Patterson, D.A. Computer Architecture: A Quantitative

Approach. 4th ed., Morgan Kaufmann, 2007.

• Olukotun, K.; Hammond, L. and Laudon, J. Chip Multiprocessor

Architecture: Techniques to Improve Throughput and Latency.

Morgan & Claypool, 2007.

• Zomaya, A.Y.H. (ed.) Parallel & Distributed Computing Handbook.

McGraw-Hill, 1996.

ERAD-SP 2010 88