You are on page 1of 36

Computacin de Alto Rendimiento:

Computacin Paralela, Computacin


Distribuida, Computacin Grid
Contenido
Qu es la Computacin de Alto Rendimiento?

Computacin Paralela
Contenido
Qu es la Computacin de Alto Rendimiento?

Computacin Paralela
Supercomputacin
Primero, los sistemas HPC fueron sistemas
basados en vectores (e.g. Cray)
llamados supercomputadores porque ellos eran
un orden de magnitud ms poderosos que los
sistemas comerciales
Ahora, un supercomputador est formado
por computadores pequeos
Los sistemas grandes son versiones escaladas
de sistemas pequeos
Sin embargo, la Computacin de Alto
Rendimiento tiene varios significados
Definiendo HPC
Computacin de Alto Rendimiento:
Puede significar muchas Flop
Por procesador
En total sobre varios procesadores trabajando sobre un
mismo problema
En total sobre varios procesadores trabajando sobre
problemas relacionados

Puede significar rpidez de ejecucin
Sistemas ms poderosos
Usando multiples sistemas simultneamente
Definicin
HPC: Cualquier tcnica computacional que
soluciona un problema grande de forma ms
rpida que usando posiblemente sistemas
simples

Procesadores de alto redimiento (e.g. Cray, NEC)
Computacin Paralela
Computacin Distribuida
Computacin Grid
Mi Definicin
Computacin Paralela: sistemas simples con
varios procesadores trabajando sobre el
mismo problema
Computacin Distribuida: varios sistemas
acoplados por un secuenciador de trabajo
sobre problemas relacionados
Computacin Grid: varios sistemas
acoplados por software y redes para trabajar
en conjunto en poblemas simples o en
problemas relacionados
Importancia de HPC
HPC ha tenido tremendo impacto sobre todas
las areas de ciencias computacionales e
ingenieria en la academia, gobierno e
industria.
Muchos problemas han sido solucionados
con tcnicas de HPC que eran imposibles de
solucionar con estaciones de trabajo
individuales o computadores personales.
Contenido
Qu es la Computacin de Alto Rendimiento?

Computacin Paralela
Motivacin
Aunque la frecuencia de reloj es cada vez
ms alta, la velocidad de los circuitos no
se puede incrementar indefinidamente.
La velocidad de la luz ya representa un
problema importante para los diseadores de
computadoras del extremo superior, y las
posibilidades de lograr que los electrones y
fotones se muevan a mayor velocidad no son
muy buenas
Rendimento de un Computador Serial
0
20
40
60
1 6
Time (years)
p
e
r
f
o
r
m
a
n
c
e
Moore's
Law
Future
(?)
Aunque la Ley de
Moores predice
que el rendimiento
de un simple
procesador se
dobla cada 18
meses, los limites
fsicos de la
tecnologa sern
alcanzados
Motivacin
Para poder atacar problemas cada vez ms
grandes, se disearon las computadoras
paralelas. Aunque tal vez nunca sea posible
construir una computadora con una sola CPU y
un tiempo de ciclo de 0.001 ns, bien podra ser
factible construir una con 1000 CPU, cada una
de ellas con un tiempo de ciclo de 1 ns. Si bien
este ltimo diseo usa CPU ms lentas que el
primero, en teora su capacidad de
procesamiento total es la misma.

Motivacin
Podemos introducir paralelismo en diversos
niveles. En el nivel de instrucciones, por
ejemplo, el uso de filas de procesamiento y los
diseos superescalares pueden elevar el
desempeo en un factor de 10 respecto a los
diseos puramente secuenciales.
Sin embargo, para lograr un mejoramiento por
un factor de cien o mil o un milln es necesario
repetir CPU enteras, o al menos partes de
ellas.

Qu es un Computador Paralelo?
Computacin Paralela: el uso de multiples
computadores o procesadores trabajando en
conjunto sobre una tarea comn
Computador Paralelo: un computador que
contiene multiples procesadores:
Cada procesador trabaja sobre su seccin del
problema
Los procesadores permiten intercambio de
informacin con otros procesadores
Computadores Paralelos vs. Seriales
Dos grandes ventajas de los computadores
paralelos:
1. Rendimiento
2. Memoria
Los computadores Paralelos son capaces
de resolver problemas que:
Requerien una rpida solucin
Requieren gran cantidad de memoria
Ejemplo que requiere ambas: prediccin de
clima
Computadores Paralelos vs. Seriales
Algunos beneficios de los computadores
paralelos:
muchos datos
dominios muy grandes
bsqueda de soluciones en regiones muy grandes
muchas particulas
muchos pasos de tiempo
largas ejecuciones
mejor resolucin temporal
ejecucin ms rpida
tiempo ms rpidos para obtener solucin
muchas soluciones al mismo tiempo
largas simulaciones en tiempo real
Aspectos de Diseo
Cuntos elementos de procesamiento hay, de
qu tamao y de qu tipo?
Los elementos de procesamiento pueden
variar desde las ALU mnimas hasta las CPU
completas, con tamaos que van desde una
pequea fraccin de un chip hasta un metro
cbico de circuitos electrnicos por elemento.
Cuando el elemento de procesamiento es una
fraccin de un chip, es posible equipar una
computadora con una gran cantidad de tales
elementos, quiz hasta un milln de ellos.
Aspectos de Diseo
Cuntos elementos de procesamiento hay, de
qu tamao y de qu tipo?
Si el elemento de procesamiento es una
computadora completa, con su propia memoria y
equipo de E/S, el nmero de elementos es
naturalmente ms reducido, aunque se han
instalado sistemas con casi 10,000 CPU. Cada
vez se estn construyendo ms computadoras
paralelas a partir de piezas comerciales, sobre
todo CPU. Las capacidades y limitaciones de
estas piezas a menudo influyen
considerablemente en el diseo
Aspectos de Diseo
Cuntos mdulos de memoria hay, de qu
tamao y de qu tipo?
Los sistemas de memoria a menudo se dividen en
mdulos que operan de forma independiente unos
de otros, en paralelo para que muchas CPU
puedan accesar a ellos al mismo tiempo. Dichos
mdulos pueden ser pequeos (kilobytes) o
grandes (megabytes) y estar integrados a la CPU
o situados en una tarjeta de circuitos distinta.

Aspectos de Diseo
Cuntos mdulos de memoria hay, de qu
tamao y de qu tipo?
Puesto que las memorias dinmicas (DRAM)
grandes suelen ser mucho ms lentas que las
CPU, es comn utilizar complejos esquemas de
cach para agilizar el acceso a la memoria. Con
frecuencia se usan dos, tres y hasta cuatro
niveles de cach.


Aspectos de Diseo
Cmo se interconectan los elementos de
procesamiento y de memoria?
Los esquemas de interconexin se pueden
dividir a grandes rasgos en dos categoras:
estticos y dinmicos. Los esquemas
estticos simplemente conectan todos los
componentes en una configuracin fija, como
estrella, anillo o cuadrcula. En los esquemas
de interconexin dinmica todas las piezas se
conectan a una red de conmutacin que puede
encaminar dinmicamente mensajes entre los
componentes.

Modelos de Comunicacin


En cualquier sistema de cmputo paralelo, las CPU
que trabajan en diferentes partes del mismo problema
se deben comunicar entre s para intercambiar
informacin. La forma precisa en la que lo deben
hacer es tema de muchos debates en la comunidad
arquitectnica.
Se han propuesto e implementado dos diseos
distintos, multiprocesadores y multicomputadoras.
Modelos de Comunicacin

Multiprocesadores
Todas las CPU comparten la memoria.
Un sistema basado en memoria compartida como
ste se llama multiprocesador o a veces
simplemente sistema con memoria compartida.

Modelos de Comunicacin

Multiprocesadores
El modelo del multiprocesador se extiende al
software. Todos los procesos que estn
ejecutndose en un multiprocesador pueden
compartir un solo espacio de direcciones virtual
mapeado en la memoria comn.

P P P P P P
BUS
Memory
Acceso Uniforme a Memoria
(UMA): Cada procesador tiene
un acceso uniforme a memoria.
Tambin conocido como
multiprocesadores simtricos, o
SMPs (Sun E10000)
P P P P
BUS
Memory
P P P P
BUS
Memory
Network
Acceso No-Uniforme a
Memoria (NUMA): El tiempo
de acceso depende de la
ubicacin de los datos. Los
accesos locales son ms
rpidos. Son ms fcilmente
escalables que SMPs (SGI
Origin)
Memoria Compartida: UMA vs. NUMA
Memoria Distribuida: MPPs vs. Clusters
Nodos Procesador-memoria son conectados
por algn tipo de red de interconexin
Procesador Masivamente Paralelo (MPP):
completamente integrado, imgen de un sistema
simple.
Cluster: computadores individuales conectados
por un s/w
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
Interconnect
Network
Modelos de Comunicacin

Multicomputadoras
Cada CPU tiene su propia memoria privada,
accesible nicamente a ella y a ninguna otra CPU.
Un diseo as se llama multicomputadora o
sistema de memoria distribuida
Modelos de Comunicacin

Multicomputadoras
Una multicomputadora que la distingue de un
multiprocesador es que cada CPU de una
multicomputadora tiene su propia memoria local
privada a la que puede acceder con slo ejecutar
instrucciones tipo LOAD y STORE, pero a la que
ninguna otra CPU puede acceder usando esas
instrucciones. .
Modelos de Comunicacin

Multicomputadoras
As pues, los multiprocesadores tienen un solo
espacio de direcciones fsico compartido por
todas las CPU, mientras que las
multicomputadoras tienen un espacio de
direcciones fsico por CPU.
Puesto que las CPU de una multicomputadora no
pueden comunicarse con slo leer y escribir en la
memoria comn, necesitan un mecanismo de
comunicacin distinto.
Tipos de Computadores Paralelos
De esta forma, la manera ms simple y til
para clasificar los computadores paralelos
modernos es por su modelo de memoria:

memoria compartida
memoria distribuida

P P P P P P
BUS
Memory
M
P
M
P
M
P
M
P
M
P
M
P
Network
Memoria Compartida Un espacio
simple de direccionamiento. Todos los
procesadores tienen acceso a un pool
de memoria compartida. (Eje.: SGI
Origin, Sun E10000)
Memoria Distribuida cada
procesador tiene su propia
memoria local. Se debe hacer paso
de mensaje para intercambiar
datos entre procesadores. (Eje.:
CRAY T3E, IBM SP, clusters)
Compartida vs. Distribuida
Procesadores, Memoria y Redes
Los sistemas de memoria compartida y
distribuida tienen:
1. procesadores: RISC procesadores
2. memoria: DRAM
3. red/interconexin: entre los procesadores y
memoria (bus, crossbar, fat tree, torus,
hypercube, etc.)
Compartida vs. Distribuida
En la memoria compartida, cada CPU tiene que descubrir
(de alguna manera) cul CPU tiene los datos que necesita y
enviar a esa CPU un mensaje en el que solicita una copia
de los datos, utilizando instrucciones de software como send
(enviar) y receive (recibir).
Compartida vs. Distribuida
Esto hace que el software tenga una estructura diferente,
mucho ms complicada, que en un multiprocesador, y
tambin implica que la divisin correcta de los datos y su
colocacin en los lugares ptimos es una cuestin
importante en una multicomputadora.
Compartida vs. Distribuida
Esto hace que el software tenga una estructura diferente,
mucho ms complicada, que en un multiprocesador, y
tambin implica que la divisin correcta de los datos y su
colocacin en los lugares ptimos es una cuestin
importante en una multicomputadora.
Compartida vs. Distribuida
Programar una multicomputadora es mucho ms difcil que
programar un multiprocesador.
Pero, las multicomputadoras grandes son mucho ms
sencillas y econmicas de construir que los multiprocesadores
con el mismo nmero de CPU. Implementar una memoria
compartida por unos cuantos cientos de CPU es difcil, pero
es relativamente fcil construir una multicomputadora con
10,000 CPU o ms..

You might also like