Anda di halaman 1dari 41

Arquitecturas Paralelas

Introduccin

William Stallings, Organizacin y Arquitectura de


Computadores, 5ta. ed., Captulo 16: Procesamiento Paralelo.
Andrew S. Tanenbaum, Organizacin de Computadoras 4ta.
ed., Captulo 8: Arquitecturas de computadoras paralelas.
Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced
Computer Architecture and Parallel Processing. Willey.

Contexto
El paralelismo, en todas sus formas, es
el tema central de la asignatura.
En la primer mitad del curso se
presentaron varios aspectos de los
diseos de procesadores que involucran
el concepto de paralelismo, entendido
como ejecucin simultnea:
Segmentacin y supersegmentacin del ciclo
de instruccin y de las unidades funcionales.

Arquitecturas superescalares y duplicacin


de recursos.

Arquitecturas de palabra ancha.

Arquitecturas vectoriales.

NOTA:
Otra forma de simultaneidad: Multitareas.
Varios procesos comparten una CPU [OS] Timesharing vs. real-time.

Contexto
Paralelismo a nivel de instrucciones (ILP)
Existe ILP cuando las instrucciones que componen un programa son
independientes. En ese caso el cdigo puede ser reordenado sin
alterar el resultado. Por lo tanto existe la posibilidad de ejecutar las
instrucciones en paralelo. Las dependencias de datos son crticas en
este contexto.
Ejemplo operaciones independientes:
for(i=0;i<1000;i++) x[i]=x[i]+y[i];
Ejemplo operaciones dependientes: for(i=1;i<1000;i++) x[i]=(x[i]+x[i-1])/2;

Paralelismo de la mquina (MLP)


Es una medida de la capacidad del procesador para sacar partido del
ILP. Depende del nmero de instrucciones que puedan captarse y
ejecutarse simultneamente (nmero de cauces paralelos). Existen
dos aproximaciones:

Scheduling Dinmico (HW): P4, UltraSPARCIII. SUPERESCALAR. Paralelismo


implcito.
Scheduling Esttico (SW): IA-64, Transmeta. VLIW. Paralelismo explcito.

El punto es detectar el ILP y explotarlo con MLP


Alteramos la secuencialidad de las instrucciones del programa

Contexto
Se presentaron los limites para la construccin de procesadores:

La disipacin de potencia limita el tamao de los transistores


La velocidad de la luz limita la velocidad de reloj

Utilizando
diseos
RISC
profundamente
segmentados
con
caractersticas superescalares, puede conseguirse hasta un factor 10
de aceleracin respecto de los diseos tradicionales, pero no ms que
eso.
Pero qu sucede si una aplicacin necesita 1012 instrucciones por
segundo? Puede especularse sobre la futura existencia de un perodo
de reloj de 0.001 ns? Casi imposible (la luz recorre 0.3 mm en 1 ps).
Puede pensarse en 1000 computadoras de 1 ns trabajando
simultneamente? Puede ser...
Si se desea un factor 1000 no alcanza con extender el concepto
superescalar, agregando unidades funcionales, o pensar en aumentar
1000 veces la frecuencia de trabajo. La nica solucin es repetir CPUs
enteras y lograr una colaboracin eficiente entre ellas.

Contexto
Avances importantes en microprocesadores desde von
Neumann (1950)

Unidad de control microprogramada y el concepto de familia


(1964) Compatibilidad ISA con diferentes implementaciones [IBM
360].
Memoria cache (1968) [IBM 360].
Arquitecturas RISC (1982) Involucra la mayora de los asuntos
importantes de arquitectura y organizacin: Segmentacin de
cauce (pipeline) y diseo superescalar.

No existe en la actualidad una tecnologa que haga prever un


impacto semejante.

Mltiples procesadores?

Motivacin
Las computadoras con una nica CPU no son suficientes para
satisfacer los requerimientos de algunas reas de aplicacin, a pesar
de los avances tecnolgicos y arquitectnicos de los procesadores
modernos.

Simulaciones y modelado de sistemas complicados.

Problemas

que

dependan

de

la

manipulacin/cmputo

de

grandes

cantidades de datos

Los grandes problemas fsicos, econmicos, biolgicos, climatolgicos.

Estas aplicaciones se caracterizan por manejar cantidades enormes de


datos y/o realizar grandes cantidades de clculos numricos.
Grand Challenge Problems (los grandes desafos)
Problemas que tienen solucin, pero que no pueden resolverse en
una cantidad de tiempo razonable utilizando las computadoras
actuales. Dinmica de fludos, modelado ambiental, biologa
molecular. Ejemplo: pronostico meteorolgico.
Una posible solucin para las necesidades de alta performance es utilizar
sistemas con varias CPUs para resolver una determinada aplicacin.

Procesamiento paralelo

Arquitectura paralela
Sistema con dos o mas procesadores conectados de tal manera que
les sea posible compartir la ejecucin de una determinada tarea
(realizar procesamiento paralelo).
Existen diversas organizaciones, segn:

Nmero y complejidad de las CPUs utilizadas.


Disponibilidad de memoria compartida.
Topologa de interconexin.
Dispositivos de E/S.

Paralelizacin de programas
La estrategia para la construccin de un programa paralelo
(paralelizacin) consiste en descomponer el problema en tareas de
menor complejidad que puedan ejecutarse simultneamente.
El paralelismo se consigue:

Descomponiendo el problema en tareas menores.

Asignando las tareas a procesadores que puedan ejecutar en


paralelo.

Coordinando las tareas simultneas.

Analoga con la industria automotriz y otros problemas complejos.

Programas paralelos - Condiciones


Se necesitan dos condiciones en los programas de aplicacin para
hacer un uso eficiente de los procesadores:
1) Poca comunicacin entre los procesadores mientras ejecutan la
tarea compartida.
2) Un cierto grado de paralelismo inherente en la tarea a realizar.
Generalmente, la resolucin de un problema puede
tareas de menor complejidad, las cuales pueden
simultneamente con una cierta coordinacin. Pero
que el esfuerzo de coordinacin supere los
procesamiento simultneo.

ser dividida en
ser ejecutadas
puede suceder
beneficios del

No todas las aplicaciones se benefician


Problemas Embarrassingly parallel
Problemas en los cuales no hay que hacer ningn esfuerzo para
paralelizar, pues no existe comunicacin entre procesadores.

Fractales (cada punto puede calcularse en forma independiente)


Animacin (cada cuadro se renderiza en forma independiente de los
dems)
Simulaciones y reconstrucciones en fsica de partculas.

Programas paralelos - Ejemplos


for(i=0;i<n;i++){
x=rand()/RAND_MAX;
y=rand()/RAND_MAX;
r=sqrt(x*x+y*y);
if(r<=1.0) m++;
}
pi=4*m/n;

a) Clculo de (distribucin de tareas)


b) Ordenamiento paralelo (distribucin
de datos)

El mtodo Montecarlo:
mtodo
estadstico
numrico utilizado para
aproximar
expresiones
complejas o costosas. Se
basa
en
el
muestreo
aleatorio
(o
pseudoaleatorio en el caso de las
computadoras).

Tipos de paralelismo
PARALELISMO EN LOS DATOS PARALELISMO EN LAS TAREAS
Diferentes datos, misma tarea Diferentes datos, diferentes tareas
(SIMD)
(MIMD)
program:
...
if CPU="a" then
low_limit=1
upper_limit=50
else if CPU="b" then
low_limit=51
upper_limit=100
end if
do i = low_limit , upper_limit
Task on d(i)
end do
...
end program

program:
...
if CPU="a" then
do task "A"
else if CPU="b" then
do task "B"
end if
...
end program

Organizacin
Clasificacin de Flynn (1972)
Clasificacin histrica, basada en la naturaleza ortogonal del flujo de
instrucciones ejecutado por la computadora (I) y el flujo de datos
sobre los cuales operan las instrucciones (D).

Massively Parallel
Processor
(MPP)

(Tanenbaum)

Arquitecturas SISD
Single Instruction stream, Single Data stream.
Arquitectura tradicional escalar de von Neumann, estudiada hasta
este momento. Cada instruccin opera sobre un nico dato.
Puede existir paralelismo: segmentacin, superescalares y
unidades vectoriales.

Arquitecturas SIMD
Single Instruction stream, Multiple Data stream
Constan de una nica unidad de control y mltiples unidades
idnticas de procesamiento que realizan la misma instruccin al
unsono. Llamados tambin Array Processors (no confundir con
vectoriales).

Especializados en problemas numricos que puedan expresarse


como matrices o vectores. Cada unidad de procesamiento consta de
una ALU y registros, y se utiliza para computar un elemento del
resultado (front-end von Neumann, ms un array de procesadores
idnticos que realizan la misma instruccin).

Arquitecturas SIMD
Single Instruction stream, Multiple Data stream
Pueden utilizar memoria compartida o distribuida.

Ejemplo: ILLIAC IV (1970s), 64 procesadores


conectados en una grilla de 8x8. CM-2 (1990s) de
Connection Machines (RIP), 65536 procesadores
conectados en hipercubo.

Arquitecturas MIMD
Multiple Instruction stream, Multiple Data stream
Son las arquitecturas paralelas propiamente dichas. Pueden ser con
memoria compartida (multiprocesadores) o memoria distribuida
(multicomputadoras). Cada unidad de procesamiento tiene su propio
flujo de instrucciones.

MIMD: Multiprocesadores
Procesadores fuertemente acoplados
Existe un nico espacio de direccionamiento. La comunicacin entre
procesadores se realiza a travs de la memoria compartida. Desde el
punto de vista del programador se trata de variables globales. Los
programas son fciles de escribir,
La performance de la memoria limita el nmero de procesadores
(crtico).
IBM System/370, 2 CPUs (1970)
IBM System/390, mltiple (1990)
Cray X-MP/Y-MP
Cray 3 (16 proc vect)
Intel Pentium D: 2xP4 en bus sin HT
L1:16K+16K, L2:1M+1M
IBM POWER5 (2004)

COHERENCIA DE CACHE

MIMD: Multicomputadoras
Procesadores dbilmente acoplados
Cada CPU tiene su propia memoria, invisible para la dems. La
comunicacin entre procesadores se realiza a travs de un
mecanismo de pasaje de mensajes. Desde el punto de vista del
programador no existen las variables globales, sino canales de
comunicacin y operaciones de envo y recepcin, que deben
programarse en forma explcita.
La performance de la red de interconexin limita el nmero de
procesadores. Depende mucho del tipo de aplicacin.

Intel iPSC/2 (1989)


[128 proc 80386, hipercubo]
Intel Paragon (1991)
[2000 proc i860, mesh]
Cray T3E MC512 (1995)
[512 proc Alpha 3d-mesh]
Beowulf Clusters, NOW

ROUTING DE MENSAJES

Redes de interconexin para


arquitecturas paralelas
Pueden clasificarse segn diferentes criterios:

Modo de operacin: sincrnico vs. asincrnico.

Estrategia de control: centralizado vs. descentralizado.

Tcnica de conmutacin: circuitos vs. conmutacin de


paquetes.

Topologa: cmo se conectan procesadores y memorias entre s.

Balance entre performance (ancho de banda) y costo.

Redes de interconexin

Topologas para memoria compartida

a) Bus

b) Conmutada

Redes de interconexin

Topologas para memoria compartida


CROSSBAR

El routing dinmico se consigue utilizando redes de conmutacin


compuestas por crossbar switches o 2x2 switches. Las redes
crossbar son no bloqueantes (permiten varias conexiones
simultneas) pero necesitan gran cantidad de switches (N 2 para N
nodos).

Redes de interconexin

Topologas para memoria compartida


OMEGA

Las redes de interconexin multietapa son las ms avanzadas entre


las redes actuales de conmutacin. En el caso de la red omega, para
conectar N nodos se necesitan log2N etapas con N/2 switches 2x2
cada una.

Redes de interconexin

Topologas para memoria compartida


Sumario
Ventajas y desventajas de las diferentes topologas:

Las redes tipo bus son econmicas pero pueden transformarse en


el cuello de botella del sistema.
Los buses paralelos mejoran la performance, pero son costosos.
Las redes crossbar son no bloqueantes, pero requieren un gran
nmero de switches.
Las redes omega son bloqueantes en menor grado. Presentan
mejor performance que los buses y son ms econmicas que las
crossbar.

Redes de interconexin

Topologas para pasaje de mensajes


I) Estticas (pizarrn)

II) Dinmicas

Redes de interconexin

Topologas para pasaje de mensajes


10-cube

4-cube

Anlisis de performance en
Arquitecturas Paralelas
Hesham El-Rewini & Mostafa Abd-El-Barr,
Advanced Computer Architecture and Parallel Processing. Willey.
Captulo 3 completo.

Peak rate (no muy til, marketing)

Mejora y Eficiencia [S=Ts/Tp, =S/n]


Equal duration model: caso ideal [S=n, =1]
Serial section model: ley de Amdahl [S=n/(f(n-1)+1)]

Amdahl vs. Gustafson-Barsis [SS=n-f(n-1)]

Efecto del tiempo de comunicacin [S=Ts/(Tp+Tc), fc=nTc/Ts]

Escalabilidad

Definicin de mejora y eficiencia

S=

ts
tm

S
=
n

Equal duration model

= 1

Fractional communication overhead

Serial section model

Serial section model


with communication overhead

Amdhal vs. Gustafson-Barsis


Algunos problemas no se comportan en forma tan pesimista como
predice Amdhal. A veces el tamao del problema escala con el nmero

SS
n

de procesadores. SS(f) es una recta y no presenta el lmite en 1/f. Es


como si f se fuera achicando, en proporcin, al aumentar el orden del

problema (en la prctica sucede)

f+(1 f )n
SS ( n )=
(1 f )
f+
n
n

lim SS (n )n =

Mtrica de Karp-Flatt
Despejando f de Amdhal y midiendo la aceleracin S que se obtiene para un
dado problema (utilizando n procesadores), resulta que f es una medida
experimental de cun paralelizable es el problema. Puede utilizarse para
predecir cmo se comportar el sistema al variar el nmero de
procesadores).

1 1
+
S n
f=
1
1
n

S vs. f

gnuplot> plot [x=0:1] [0:10] 5/(x*4+1) title "Amdahl n=5", 10/(x*9+1) title "Amdahl
n=10", 100/(x*99+1) title "Amdahl n=100",1/x title "Amdahl n=oo", 5-(x*4) title
"Gustafson n=5", 10-(x*9) title "Gustafson n=10", 100-(x*99) title "Gustafson n=100"

Escalabilidad
Ejemplo: Hipercubo de D dimensiones (n=2D, dist max
D=log2(n)), utilizado para realizar la suma de m nmeros.
Mejora (hacia 4): escalable

S=

m
m
+2log 2 n
n

Es escalable si habiendo agregado nodos la


eficiencia se mantiene cte al aumentar m

form=1:8,
forn=1:8,
N=2^n;
M=2^(m+5);
S(m,n)=M/(M/N+log2(N));
E(m,n)=S(m,n)/N;
end
end
surf(S);%verqueenladiagonalsevayaduplicando
ylabel('m:orden2^(m+5)');
xlabel('n:nodos2^n');
zlabel('Mejora');

form=1:8,
forn=1:8,
N=2^n;
M=2^(m+5);
S(m,n)=M/(M/N+log2(N));
E(m,n)=S(m,n)/N;
end
end
surf(E);%verqueladiagonalsemantengaconstante
ylabel('m:orden2^(m+5)');
xlabel('n:nodos2^n');
zlabel('Eficiencia');

Escalabilidad
El grado de escalabilidad de un sistema paralelo se determina por la
relacin en que el problema debe incrementarse respecto del nmero de
procesadores (n), para mantener una eficiencia constante cuando el
nmero de procesadores aumenta.
Por ejemplo, en un sistema paralelo altamente escalable el tamao del
problema deber crecer linealmente con respecto de n a fin de mantener
la eficiencia constante.
En un sistema poco escalable el tamao del problema necesitar crecer
exponencialmente con respecto de n para mantener la eficiencia
constante.

Sumario Taxonoma de Flynn


SISD: Single Processor, von Neumann
SIMD: Array Processors
MISD: ????
MIMD:
Memoria compartida: Multiprocesadores (SMP y NUMA)
Memoria distribuida: Multicomputadoras (MPP y Clusters)

Sumario Taxonoma de Flynn

Sumario
Las arquitecturas para procesamiento paralelo, en sus diversas variantes, son el
tema central de la materia.
Las tcnicas superescalares y de segmentacin utilizan conceptos de paralelismo con el
objetivo de incrementar el desempeo de los diseos clsicos. Estas encuentran
rpidamente limitaciones prcticas en el momento de la implementacin.
Existen problemas que no pueden solucionarse utilizando un nico procesador, dado el
actual estado de la tecnologa, por lo que se presenta la necesidad de utilizar varios de
ellos trabajando en forma coordinada. Pero no todos los problemas pueden sacar
partido de esta estrategia. Los programas deben cumplir con algunas condiciones.
Existen dos tipos de organizaciones con diferentes objetivos: los diseos SIMD explotan
el paralelismo en los datos, y los MIMD el paralelismo en las instrucciones.
Estos ltimos se dividen en multiprocesadores y multicomputadoras, segn dispongan o
no de memoria compartida. Estas son las dos grandes categoras actuales de
arquitectutas paralelas. Ambas utilizan modelos de programacin diferentes.
Los grandes sistemas
arquitecturas.

de

cmputo

utilizan

hoy

una

combinacin

de

ambas

Anda mungkin juga menyukai