You are on page 1of 8

Mdulo 1: Computao paralela usando clusters e

grids

TACPD 2004/2005

Panormica da computao paralela

Aula1: 03/Maro 2005

i.
ii.

Arquitecturas e modelos de computao paralelas


Ambientes de desenvolvimento e execuo

Breve panormica da computao


paralela e distribuda
Bibliografia: consultar a pgina da cadeira
http://asc.di.fct.unl.pt/~pm/TACPD-04-05/

Definies

Supercomputadores
Definido quando os sistemas CDC e Cray foram
desenvolvidos nos anos 80; estes sistemas eram, de longe,
mais poderosos do que todos os sistemas existentes na
altura

Tentar definir alguns termos; a definio no consensual


Supercomputao
Computao de alto desempenho (High performance
computing)
Computao paralela
Computao distribuda
Computao em grelha (Grid computing)
Computao avanada (Advanced Computing)

DEC VAX tpico: 1-10 Mflops


Crays, CDCs: ~100 Mflops
No existiam sistemas no meio ; era fcil dizer quais eram os

supercomputadores

Usualmente significava mquinas com poucos processadores e


capacidades vectoriais

Page 1

Computao Paralela

Computao de Alto Desempenho


(High Performance Computing)

Computao Paralela o uso de mltiplos processadores


ou computadores, trabalhando em conjunto na mesma
tarefa

Nos anos 90 apareceram sistemas mais escalveis


que iam de 1 a 1000s de processadores;
removeram o buraco existente na gama de
desempenho

Cada processador trabalha numa parte do problema


Os processadore necessitam de trocar dados entre si para
resolver o problema
Mesh of problem to be solved

Tornou a distino entre Supercomputador e computador normal


mais difcil

CPU #1 trabalha nesta


parte do problema

High performance computing (HPC) qualquer computao


que consiga maior desempenho do que a que feita usando
PCs, workstations ou pequenos servidores

troca

CPU #3 trabalha nesta


parte do problema

Grandes sistemas de memria partilhada (muitos CPUs)


Grandes sistemas de memria distribuda
Combinao de muitos pequenos sistemas em clusters
Essencialmente, todos os sistemas HPC so sistemas de
computao paralela

troca

exchange
troca

CPU #2 trabalha nesta


parte do problema
troca

CPU #4 trabalha nesta


parte do problema

Porque que se usa computao


paralela?

Exemplo: Previso Meteorolgica


Para simular a evoluo de um furaco:

Limites da computao feita por um nico CPU

A regio em causa tem 1000 X 1000 km, com uma altura de 10 km.
Parte-se numa grelha of 0.1 x 0.1 x 0.1 km: 1010 pontos
Simular 2 dias, com passos de 30 minutos: 100 passos no total

Nmero de operaes efectuadas pelo CPU


Memria disponvel

A computao paralela permite:

Assume-se que as computaes em cada ponto requerem 100


instrues.

Resolver problemas que no se adequam a um nico CPU


Resolver problemas que no podem ser resolvidos num tempo razovel

Um passo requer 1010 x 100 = 1012 instrues.


Para dois dias necessita-se 1012 x 100 = 1014 insts
Um monoprocessador que execute 108 instructions/seg, leva 106 segs (10 dias!) para
prever os prximos 2 dias!!
Requer muita memria

Assim, a computao paralela permitem-no


Resolver problemas maiores
Resolver problemas mais depressa
Resolver mais problemas

Soluo: escrever cdigo que usa computadores com muitos CPUs e


memria
Actualmente a maior parte dos centros de previso meteorolgica
(EUA, Europa, sia) tm computadores paralelos com 1000s de CPUs.

Page 2

Contribuies da Comunidade da Computao


Distribuda

Computao distribuda
Computao Distribuda significa usar mltiplos CPUs de uma
forma organizada para trabalhar num objectivo comum

Exemplos na rea da Investigao e Desenvolvimento


incluem:

Requer software que permita a coordenao dos recursos e a orquestrao


A coordenao pode ser sncrona ou assncrona, etc.
Computao paralela uma forma de computao distribuda
A HPC actualmente essecialmente computao paralela, logo HPC um
tipo de computao distribuda
Computao em Grelha (Grid computing) um tipo diferente de computao
distribuda

SETI@home, United Devices


Parallel Virtual Machine (PVM)
Redes de workstations (NOWs) e clusters

O Globus Toolkit para grid computing foi desenvolvido


por esta comunidade, embora j esteja a ser usado em
e-commerce

Computao em Grelha
(Grid Computing)

Uso de recursos distribudos


Muitos utilizadores j usam sistemas distribudos:

O termo Grid usado por analogia com a rede


elctrica: pode-se ligar um dispositivo em
qualquer lado e usar a potncia da rede

Workstations locais para pequenas simulaes


Sistemas HPC em centros
Sistemas de visualizao
Aramazenamento em SANs, NASes, robs de bandas, etc.

Computao em Grelha computao distribuda


feita de forma democrtica e normalizada

Colaborao entre utilizadores


Partilha de dados, programas, documentos, etc.

APIs normalizadas, tcnicas de autenticao, protocolos, etc.


Funcionalidade modular, extensvel e de fcil utilizao

Mas a utilizao de computao distribuda tem de ser


tornada mais simples e mais standard.

Page 3

Computing Platforms Evolution: Breaking Administrative


Barriers

Computao avanada
Computao avanada refere-se colectivamente a todas
as formas de computao que usam mltiplos e poderosos
recursos

2100

2100

2100

2100

2100

2100

P
E
R
F
O
R
M
A
N
C
E

HPC, computao paralela


Visualizao e anlise de dados
Data mining e outras manipulaes de dados em larga escala
Grid computing

2100

2100

2100

Administrative Barriers
Individual
Group
Department
Campus
State
National
Globe
Inter Planet
Universe

Desktop
(Single Processor)

SMPs or
SuperComp
uters

Local
Cluster

Enterprise
Cluster/Grid

Global
Cluster/Grid

Inter Planet
Cluster/Grid ??

Arquitecturas paralelas

Arquitecturas de computadores paralelos


MPP

Taxonomia

Um grande sistema de processamento paralelo com uma arquitectura


shared-nothing
Tem centenas de ns com uma rede/switch de interligao de muito alta
velocidade
Cada n constitudo por memria & um ou mais CPUs

baseada em como so organizados os processadores,


memria e as interligaes

Massively Parallel Processors (MPP)


Symmetric Multiprocessors (SMP)
Cache-Coherent Nonuniform Memory Access
(CC-NUMA)
Redes de workstations
Clusters

Corre uma cpia separado do SO

SMP
2-64 CPUs
Arquitectura Shared-everything
Todos os CPUs partilham os recursos (memria, dispositivos de E/S, etc)
disponveis
H uma instncia nica do SO

Page 4

SMP com uma rede de interligao


mais sofisticada
SMP com cache nos PEs
Processor
Cache

Processor
Cache

Main
Memory

. .

Processor
Cache

I/O
Subsystem

Coerncia das caches por Bus Snooping

Arquitecturas paralelas

Memory: centralizada com tempo de acesso


uniforme (UMA) e interligao por bus
Examplos: Sun Enterprise 5000 , SGI Challenge

CC-NUMA
Um multiprocessador escalvel que tem uma arquitectura de memria
com tempos de acesso no uniforme e com hardware para manter a
coerncia das caches.
Cada CPU tem uma viso global de toda a memria
SO nico

Clusters
Uma coleco de PCs/servidores/SMPs que so interligados por uma
rede de alta velocidade
Trabalham como um conjunto integrado de recursos
Podem usar a tcnica single system image em que o software de
sistema faz a gesto integrada dos recursos de forma transparente

Page 5

CC-NUMA com coerncia das caches assegurada


pela informao registada na directoria

Exemplo de cluster em que cada n um SMP


8 cache
coherent
(CC)
processadores
num bus

Rede de
interligao

Ver em www.tpc.org as configuraes hardware que conseguem os melhores


resultados no benchmark TPC-C

Caractersticas dos principais tipos de sistemas


paralelos

TOP 500 (www.top500.org)


Lista dos 500 computadores existentes no mundo que
conseguiram os melhores resultados no benchmark Linpack
um benchmark que mede o desempenho em operaes de
vrgula flutuante (resultados em MegaFlops)
Durante muito tempo completamente dominada pelos
supercomputadores com processadores vectoriais (tipo Cray).
A partir dos anos 90 comearam a aparecer os MPPs, SMPS e
CC-NUMAs baseados em processadores de consumo geral
Sun SPARC, Intel Pentium, SGI MIPS, IBM Power PC
1997, 500 mquinas mais rpidas no mundo:
319 MPPs, 73 bus-based shared memory (SMP), 106 parallel
vector processors (PVP)
2000, 381 das500 mais rpidas: 144 IBM SP (~cluster), 121
Sun (bus SMP), 62 SGI (NUMA SMP), 54 Cray (NUMA SMP)
.

Page 6

Nvel de paralelismo

Modelos de programao paralela


Baseados em partilha de memria

PVM/MPI

Distributed Shared Memory (DSM)


Threads/OpenMP
Java threads

Task
Taski-l
i-l

Baseados em troca de mensagens

PVM
MPI

func1
func1( () )
{{
....
....
....
....
}}

Threads

Compiladores paralelizantes (Fortran )


Bibliotecas paralelas & Computational Kernels (ex.,
NetSolve)

Compiladores
CPU

Ferramentas de programao (I)

aa( (00) )=..


=..
bb( (00) )=..
=..

++

Task
Taskii

func2
func2( () )
{{
....
....
....
....
}}

aa( (11)=..
)=..
bb( (11)=..
)=..

xx

Task
Taski+1
i+1

func3
func3( () )
{{
....
....
....
....
}}

aa( (22)=..
)=..
bb( (22)=..
)=..

Load
Load

Gro grosso
Processo/Programa
Gro mdio
(nvel de controlo)
Funo (thread)
Gro fino
(paralelismo de dado)
Loop (Compilador)
CPU lana vrias
instrues em paralelo

Ferramentas de programao (II)


Sistemas de troca de mensagens (MPI e PVM)
Permite escrever programas paralelos de forma eficiente
para sistemas de memria distribuda
2 sistemas de troca de mensagens mais populares PVM &
MPI
PVM
uma biblioteca de troca de mensagens e um ambiente
de execuo (embrio de um SO distribudo)
MPI
uma especificao de uma biblioteca de programao
para sistemas de memria distribuda baseada em troca
de mensagens explcita
Tentativa (conseguida) de definir uma norma prtica,
transportvel e flexvel para troca de mensagens.
Actualmente as novas aplicaes so desenvolvidas em
MPI, que se est a tornar uma norma de facto

Threads (PCs, SMPs, NOW..)


Em sistemas de multiprocessadores

Usados para utilizar simultaneamente todos os CPUs disponveis


Em monoprocessadores

Usados para utilizar os recursos de forma eficiente


As aplicaes Multithreaded oferecem resposta mais rpida ao
utilizador
Potencialmente transportvel uma vez que existe uma norma IEEE
standard for POSIX threads (pthreads)
Muito usada para desenvolver aplicaes e software de sistema

Page 7

Bibliografia

Ferramentas de programao (III)


Sistemas Distributed Shared Memory (DSM)

Troca de mensagens
O paradigna mais eficiente e mais comum nos sistemas de memria
distribuda
Difcil de programas
Partilha de memria
Oferece um modelo de programao simples e geral
Difcil de implementar eficazmente em sis
DSM em sistemas de memria distribuda
Soluo de compromisso facilidade de programao/eficincia
DSM por software
Usualmente construda por cima da interface de comunicao
Tira partido das caractersiticas da aplicao: pginas, objectos,
tipos de dados de linguagens especficas
TreadMarks, Linda
DSM por hardware
Melhor desempenho, no h perdas de tempo nas camadas de SW,
permite granularidade fina, HW (complexo) baseado em esquemas de
coerncia de caches
DASH, Merlin

Ver http://asc.di.fct.unl.pt/~pm/TACPD-04-05/
Slides da aula
Introduo ao processamento paralelo, Pedro Medeiros,
FCT/UNL, 1998 (PS)
Cap. 1 do livro de Culler et al., Parallel Computer
Architecture, Ed. Morgan Kauffman, 1996 (PDF)

Page 8

You might also like