Você está na página 1de 47

Universidade Federal do Rio de Janeiro Ps-Graduao em Informtica DCC/IM - NCE/UFRJ

Arquiteturas de Sistemas de Processamento Paralelo Introduo


Gabriel P. Silva

Bibliografia
Advanced Computer Architecture

Dezs Sima, Terence Fountain, Pter Kacsuk Addison-Wesley, 1997

Computer Architecture: A Quantitative Approach


John L. Henessy e David A. Patterson Morgan Kaufman Publishers, 3 edio, 2003

Parallel Computer Architecture A Hardware/Software Approach


David E. Culler e Jaswinder Pal Singh Morgan Kaufman Publishers, 1999


Gabriel P. Silva

Aplicaes Paralelas

Aplicaes Paralelas
Genoma Humano Turbulncia dos Fluidos Dinmica de Veculos Circulao de Oceanos Dinmica de Fluidos Viscosos Modelagem de Supercondutores Cromodinmica Quntica Viso por Computador Farmacutica Biologia Estrutural Previso do Tempo (+ 72 hs)
Gabriel P. Silva

Aplicaes Paralelas
Simulando as Correntes Ocenicas

Modelo do clima da terra precisa saber como a atmosfera interage com os oceanos, que ocupam da superfcie da Terra. Esto envolvidos neste estudo diversas foras fsicas: efeitos atmosfricos, vento e frico com o fundo dos oceanos. O oceano divido em planos e cada plano possui uma grade de pontos igualmente espaados (uma matriz) com informaes como velocidade e presso, entre outras. Alm disto, todos esses planos so simulados para diversos intervalos de tempo, tambm igualmente espaados.

Gabriel P. Silva

Aplicaes Paralelas
Simulando as Correntes Ocenicas

Para um oceano como o Atlntico, de 2000 km x 2000 km, uma grade de 100 x 100 pontos implica uma distncia de 20 km entre os pontos, o que no uma resoluo muito fina. Para simular o comportamento dos oceanos para um perodo de 5 anos, atualizados a cada 8 horas, sero necessrios cerca de 5500 intervalos de tempo. A demanda computacional para alta acurcia enorme e a necessidade de multiprocessamento clara. Por sorte a aplicao naturalmente permite bastante concorrncia, pois h bastante independncia de dados entre as diversas fases da computao.
Gabriel P. Silva

Aplicaes Paralelas
Simulando a Evoluo das Galxias

Para este tipo de problema seria necessrio calcular a interao gravitacional para cada par de estrelas em diversos intervalos de tempo. Este mtodo de soluo tem complexidade O(n2) o que o tornaria impossvel de ser aplicado para os milhes de estrelas de uma galxia. Mas levando-se em conta que a fora gravitacional diminui com o quadrado da distncia, pode-se usar um algoritmo de complexidade O(n logn).
Gabriel P. Silva

Aplicaes Paralelas
Simulando a Evoluo das Galxias

Neste caso grupos de estrelas mais distantes so consideradas como uma nica estrela com massa equivalente e situada no centro de massa dessas galxias. Este algoritmo hierrquico recebe o nome de Barnes-Hut Ampla concorrncia existe entre estrelas dentro de um intervalo de tempo, mas como so padres bastantes irregulares e variantes no tempo, um desafio explorar esta concorrncia em arquiteturas Gabriel P. Silva paralelas.

Computadores Paralelos

Classificao dos Processadores (2003)


# 1 2 2 4 5 6 7 8 Fabr. NEC HewlettPackard Linux Networx IBM IBM IBM Fujitsu HewlettPackard Nome Earth-Simulator, NEC Vector SX6 ASCI Q - AlphaServer SC ES45 MCR Linux Cluster Xeon 2.4 GHz - Quadrics ASCI White, SP Power3 375 MHz SP Power3 375 MHz 16 way xSeries Cluster Xeon 2.4 GHz - Quadrics PRIMEPOWER HPC2500 SR8000/MPP
Gabriel P. Silva

GFlops 35860 13880 7634 7304 7304 6586 5406 4881

# Proc. 5120 8192 2304 8192 6656 1920 2304 1540

Classificao dos Processadores (2005)


# 1 2 3 4 5 6 7 8 Fabr. IBM IBM SGI NEC IBM IBM Intel IBM Nome IBM BlueGene/L IBM BlueGene/L SGI Altix 3700 Earth-Simulator, NEC Vector SX6 JS20 Cluster, PPC 970 IBM BlueGene/L NOW - Itanium2 Tiger4 IBM BlueGene/L
Gabriel P. Silva

GFlops 35860 91290 51870 35860 27910 27450 19940 18200

# Proc. 65536 40960 10160 5120 4800 12288 4096 8192

Iniciativa de Computao Estratgica Acelerada (ASCI)


A Iniciativa de Computao Estratgica Acelerada (ASCI) foi iniciada em 1996 para assegurar que os EUA manteriam a dianteira no desenvolvimento de computadores de alto desempenho. A iniciativa foi realizada por alguns dos maiores laboratrios do Departamento de Energia (DOE): Sandia, Los Alamos, e Lawrence Livermore. Trs fabricantes (Intel, IBM and SGI) ganharam contratos para desenvolver sistemas que poderiam alcanar velocidades de 10--30 Tflop/s no nvel de aplicao por volta de 1999--2001 e cerca de 100 Tflop/s em 2003--2004. Um dos objetivos era o uso de componentes offthe-shelf de baixo custo e facil aquisio para os sistemas poderem serem facilmente comercializados.
Gabriel P. Silva

O mais rpido em 2001


ASCI White

Gabriel P. Silva

O mais rpido em 2003


Earth Simulator

Gabriel P. Silva

Gabriel P. Silva

O mais rpido em 2005


Earth Simulator

Gabriel P. Silva

IBM Blue Gene L

Conceitos Bsicos

Conceitos Bsicos
As arquiteturas paralelas permitem a execuo das tarefas em menor tempo, atravs da execuo em paralelo de diversas tarefas. O paralelismo pode ser obtido em diversos nveis, com ou sem o uso de linguagens de programao paralelas. Arquiteturas de diversos tipos, elaboradas para aplicaes especficas, podem ser utilizadas para acelerar a execuo dessas aplicaes.
Gabriel P. Silva

Processo
Processo:

Um processo criado para execuo de um programa pelo sistema operacional

A criao de um processo envolve os seguintes passos:


Preparar o descritor de processo Reservar um espao de endereamento Carregar um programa no espao reservado Passar o descritor de processo para o escalonador

Nos modernos S.O.s, um processo pode gerar cpias, chamadas de processos filhos.
Gabriel P. Silva

Threads
Threads so partes autnomas de cdigo, criadas dentro de um mesmo processo. Todas as threads de um processo compartilham os mesmos recursos, em particular o mesmo espao de endereamento. A custo de criao, comunicao e sincronizao entre threads bem menor que entre processos.
Gabriel P. Silva

Escalonamento
H dois tipos bsicos de escalonamento:

baseado em processos baseado em threads

Em qualquer dos casos o controle de atividade feito por um diagrama com pelo menos trs estados bsicos:

Pronto Executando Aguardando

As linguagens de programao possuem primitivas especficas para a criao de threads e processos.


Gabriel P. Silva

Conceitos Bsicos
Execuo concorrente est associada a idia de um servidor atendendo a vrios clientes atravs de uma poltica de escalonamento no tempo. Execuo paralela est associada ao modelo de vrios servidores atendendo a vrios clientes simultaneamente no tempo. As linguagens de programao podem ento ser classificadas como seqenciais, concorrentes e paralelas. Seqenciais:

C, Pascal, Fortran Ada, Pascal Concorrente, Modula-2, PROLOG Concorrente Occam-2, 3L Parallel C, Strand-88
Gabriel P. Silva

Concorrentes:

Paralelas:

Nveis de paralelismo
Nvel de instruo (granulosidade fina)

Arquiteturas Pipelined, Super Escalares e VLIW

Nvel de thread (granulosidade mdia)

Arquiteturas SMT

Nvel de processo (granulosidade grossa)

Arquiteturas Multiprocessadores e Multicomputadores

Gabriel P. Silva

Avaliao de Desempenho

Medidas de Desempenho
Velocidade: tempo de resposta, vazo e utilizao:

Vazo (Throughput): taxa na qual os pedidos so atendidos (servidos) pelo sistema. Utilizao: frao do tempo em que o recurso permanece ocupado atendendo os pedidos dos usurios Tempo de resposta: tempo decorrido entre o pedido e o incio/concluso da realizao do servio (latncia). Probabilidade de erro Intervalo entre erros Durao da falha Intervalo entre falhas
Gabriel P. Silva

Confiabilidade

Disponibilidade

Vazo
Taxa na qual os pedidos so atendidos (servidos) pelo sistema. Exemplos:

Sistemas em lotes: jobs por segundo Sistemas interativos: pedidos por segundo CPUs: MIPs ou MFLOPs Redes: pacotes por segundo (pps) ou bits por segundo (bps) Sistemas de Processamento de Transaes: Transaes por segundo (TPS)

Gabriel P. Silva

Medidas de Desempenho em Processamento Paralelo Speed-up:

Mede a razo entre o tempo gasto para execuo de um algoritmo ou aplicao em um nico processador e o tempo gasto na execuo com n processadores
S(n) = T(1)/T(n)

Eficincia:
E(n) = S(n)/n
Gabriel P. Silva

Medidas de Desempenho
Escalabilidade:

Um sistema dito escalvel quando sua eficincia se mantm constante medida que o nmero de processadores (n) aplicado soluo do problema cresce. Se o tamanho do problema mantido constante e o nmero de processadores aumenta, o overhead de comunicao tende a crescer e a eficincia a diminuir. A anlise da escalabilidade considera a possibilidade de se aumentar proporcionalmente o tamanho do problema a ser resolvido medida que n cresce de forma a contrabalanar o natural aumento do overhead de comunicao quando n cresce.
Gabriel P. Silva

Tcnicas de Avaliao

Medio Modelagem Analtica Simulao

Gabriel P. Silva

Modelagem Analtica

uma tcnica aproximada, ou seja, aproxima a realidade por um modelo. Se o modelo for simples e a aproximao boa, possvel avaliar facilmente compromissos entre alternativas.

Teoria das filas Filas associadas a recursos Caracterizao:


Processo de chegada Processo de atendimento Nmero de servidores Tamanho mximo da fila Poltica de atendimento da fila
Gabriel P. Silva

Simulao

Simulao de eventos discretos. Cada evento (ex.: chegada de usurio, trmino de servio, etc.) tratado quando do instante de sua ocorrncia. Simula o comportamento de um sistema real. Em geral, possvel construir um modelo muito mais prximo da realidade do que com a teoria das filas.

Gabriel P. Silva

Programas de Avaliao

o processo de comparao entre dois ou mais sistemas atravs de medies em que so utilizados programas de avaliao (benchmarks) como cargas de trabalho (workloads). Podem ser de vrios tipos:
Aplicaes Reais: compiladores, processadores de texto e imagem so alguns exemplos de programas utilizados. Sofrem de problemas de portabilidade. Aplicaes Modificadas: E/S removida. Scripts so utilizados para simular interatividade. Kernels: pequenos trechos de cdigo de programas reais so extrados de programas reais. Ex: Livermoore loops e Linpack.
Gabriel P. Silva

Programas de Avaliao
Benchmarks de brinquedo: tipicamente entre 10 e 100 linhas de cdigo para produzir um resultado previamente conhecido. Exemplos so o Crivo de Eratstenes, Quicksort e Puzzle. So fceis de digitar e executam em quase qualquer computador. Benchmarks sintticos: tentam imitar a freqncia de execuo mdia das instrues esperada em uma aplicao de um determinado tipo, mas no so extratos de programas reais. Whetstone (ponto flutuante) e Dhrystone (inteiro) so os exemplos mais populares.

Gabriel P. Silva

Programas de Avaliao
Sutes de Avaliao: coleo de programas de avaliao que tentam medir o desempenho dos processadores para uma variedade de aplicaes. O exemplo de maior sucesso o SPEC, que possui verses inteiras e de ponto flutuante, com edies em 1989, 1992, 1995 e 2000. Esto divididos em duas grandes categorias: inteiros e de ponto flutuante. O SPEC CPU2000 constitudo por 11 programas de avaliao inteiros (CINT2000) e 14 de ponto-flutuante (CFP2000).

http://www.spec.org http://www.top500.org
Gabriel P. Silva

Medio

Para efetuarmos medies (com os benchmarks programas de avaliao) preciso termos disposio ao menos um prottipo do sistema; Neste cado, normalmente difcil comparar alternativas; O mtodo mais utilizado compilar os benchmarks e execut-los no sistema que se deseja avaliar. Os programas devem ter caractersticas de acordo com os parmetros que se seja avaliar (CPU, E/S, Grfico, etc.).
Gabriel P. Silva

Porgramas de Avaliao

Gabriel P. Silva

Porgramas de Avaliao

Gabriel P. Silva

Tcnicas de Avaliao
Critrio Estgio Tempo Necessrio Ferramentas Preciso Modelagem Simulao Analtica Qualquer Qualquer Pouco Analistas Pouca Mdio Medio Prottipo Variado

Linguagens Instrumende tao Programao Moderada Variada Moderada Mdio Mdia Difcil Alto Alta

Avaliao de Fcil Compromissos Custo Baixo Escalabilidade Baixa

Gabriel P. Silva

Classificao

Paralelismo
Nveis de paralelismo :

nvel de instruo (granulosidade fina): arquiteturas pipelined, superescalares e VLIW nvel de thread (granulosidade mdia): arquiteturas multithreading, SMT nvel de processo (granulosidade grossa): multiprocessadores e multicomputadores

Gabriel P. Silva

Modelos de Programao
Modelos Bsicos de Programao:

Memria Compartilhada:
Todos os processos/threads compartilham de

um espao de endereamento comum; Comunicao atravs da memria; Uso de semforos para sincronizao; Linguagens: Pascal e C Concorrente.

Memria Distribuda:
Os processos/threads no dispem de um

espao comum para sincronizao e comunicao por troca de mensagens; Linguagens: PVM, MPI, Occam-3.
Gabriel P. Silva

Paralelismo
Classificao de Flynn (1966):

Single Instruction Stream (SI) Multiple Instruction Streams(MI) Single Data Stream (SD) Multiple Data Streams (MD)

Categorias de Arquiteturas

SISD (Processadores Convencionais) SIMD (Processadores Vetoriais) MIMD (Multiprocessadores)

Gabriel P. Silva

Arquitetura SIMD
Arquitetura SIMD Bsica

R D D IN E C N X O E E E T R O E
Mm e . E m le . Po . r c

Mm e . E m le . Po . r c

Mm e . E m le . Po . r c

U id d n a e d e Cn o o tr le

Mmr e ia d e Po r m r g a a

Gabriel P. Silva

Arquitetura MIMD
Arquitetura de Memria Centralizada

Memria Barramento Cache Proc. Cache Proc.


Gabriel P. Silva

Cache Proc.

Arquitetura MIMD
Arquitetura de Memria Distribuda

REDE DE INTERCONEXO
Mem. Cache Proc.

Mem. Cache Proc.

Mem. Cache Proc.


Gabriel P. Silva

Tcnicas Bsicas de Paralelismo


Pipelining

Vrias unidades funcionais colocadas em seqncia para realizar uma tarefa.

Duplicao de Recursos

Vrias unidades funcionais colocadas em paralelo para realizar uma tarefa

Gabriel P. Silva

Classificao
Tipo de Processador Vetoriais Sistlicos SIMD Pipelined VLIW Superescalares Multithread Multicomputadores Multiprocessadores
Gabriel P. Silva

Pipelining Duplicao X X X X X X X X X X X X

Você também pode gostar