Você está na página 1de 35

Procesamiento Paralelo

1
Procesamiento Paralelo

2
Procesamiento Paralelo
 El procesamiento paralelo ofrece una gran
ventaja en cuanto a costos. Sin embargo,
su principal beneficio, la escalabilidad
(crecer hacia arquitecturas de mayor
capacidad), puede ser difícil de alcanzar
aún.
 Esto se debe a que conforme se añaden
procesadores, las disputas por los recursos
compartidos se intensifican

3
Procesamiento Paralelo
 Algunos diseños diferentes de
procesamiento paralelo enfrentan este
problema fundamental:

• Multiprocesamiento simétrico
• Procesamiento masivamente paralelo
• Procesamiento paralelo escalable

Cada diseño tiene sus propias ventajas y


desventajas.

4
Procesamiento Paralelo
 Algunos diseños diferentes de
procesamiento paralelo enfrentan este
problema fundamental:

• Multiprocesamiento simétrico
• Procesamiento masivamente paralelo
• Procesamiento paralelo escalable

Cada diseño tiene sus propias ventajas y


desventajas.

5
1. MULTIPROCESAMIENTO SIMETRICO

 El Multiprocesamiento simétrico (symmetric


multiprocessing / SMP) tiene un diseño simple
pero aún así no es efectivo.

En SMP, multiples los procesadores comparten la


memoria RAM y el bus del sistema.

Este diseño es también conocido como


estrechamente acoplado (tightly coupled), o
compartiendo todo (shared everything).

6
1. MULTIPROCESAMIENTO SIMETRICO

7
1. MULTIPROCESAMIENTO SIMETRICO

Debido a que SMP comparte globalmente la


memoria RAM, tiene solamente un espacio de
memoria, lo que simplifica tanto el sistema físico
como la programación de aplicaciones.
Este espacio de memoria único permite que un
Sistema Operativo con Multiconexión
(multithreaded operating system) distribuya las
tareas entre varios procesadores, o permite que
una aplicación obtenga la memoria que necesita
para una simulación compleja. La memoria
globalmente compartida también vuelve fácil la
sincronización de los datos.

8
1. MULTIPROCESAMIENTO SIMETRICO

 SMP es uno de los diseños de procesamiento


paralelo más maduro. Apareció en los
supercomputadores Cray X-MP y en sistemas
similares hace década y media (en 1983).
 Sin embargo, esta memoria global contribuye el
problema más grande de SMP: conforme se
añaden procesadores, el tráfico en el bus de
memoria se satura. Al añadir memoria caché a
cada procesador se puede reducir algo del tráfico
en el bus, pero el bus generalmente se convierte
en un cuello de botella al manejarse alrededor de
ocho o más procesadores. SMP es considerada
una tecnología no escalable.
9
1. MULTIPROCESAMIENTO SIMETRICO

10
2. PROCESAMIENTO MASIVAMENTE PARALELO

 El Procesamiento masivamente paralelo


(Massively parallel processing / MPP) es otro
diseño de procesamiento paralelo.

Para evitar los cuellos de botella en el bus de


memoria, MPP no utiliza memoria compartida.

En su lugar, distribuye la memoria RAM entre los


procesadores de modo que se semeja a una red
(cada procesador con su memoria distribuida
asociada es similar a un computador dentro de
una red de procesamiento distribuido).

11
2. PROCESAMIENTO MASIVAMENTE PARALELO

Debido a la distribución dispersa de los


recursos RAM, esta arquitectura es también
conocida como dispersamente acoplada
(loosely coupled), o compartiendo nada
(shared nothing).

12
2. PROCESAMIENTO MASIVAMENTE PARALELO

 Para tener acceso a la memoria fuera de su propia


RAM, los procesadores utilizan un esquema de paso
de mensajes análogo a los paquetes de datos en
redes.

Este sistema reduce el tráfico del bus, debido a que


cada sección de memoria observa únicamente aquellos
accesos que le están destinados, en lugar de observar
todos los accesos, como ocurre en un sistema SMP.

Únicamente cuando un procesador no dispone de la


memoria RAM suficiente, utiliza la memoria RAM
sobrante de los otros procesadores. Esto permite
sistemas MPP de gran tamaño con cientos y aún miles
de procesadores. MPP es una tecnología escalable.

13
2. PROCESAMIENTO MASIVAMENTE PARALELO

14
2. PROCESAMIENTO MASIVAMENTE PARALELO

 El RS/6000 Scalable Powerparallel System


de IBM (SP2) es un ejemplo de sistema MPP, que
presenta una ligera variante respecto al esquema
genérico anteriormente planteado.
Los procesadores del RS/6000 se agrupan en
nodos de 8 procesadores, los que utilizan una
única memoria compartida (tecnología SMP).
A su vez estos nodos se agrupan entre sí
utilizando memoria distribuida para cada nodo
(tecnología MPP). De este modo se consigue un
diseño más económico y con mayor capacidad de
crecimiento.

15
2. PROCESAMIENTO MASIVAMENTE PARALELO

La parte negativa de MPP es que la programación se


vuelve difícil, debido a que la memoria se rompe en
pequeños espacios separados. Sin la existencia de un
espacio de memoria globalmente compartido, correr
(y escribir) una aplicación que requiere una gran
cantidad de RAM (comparada con la memoria local),
puede ser difícil.
16
2. PROCESAMIENTO MASIVAMENTE PARALELO

 Escribir una aplicación MPP también requiere estar al tanto


de la organización de la memoria manejada por el
programa. Donde sea necesario, se requieren insertar
comandos de paso de mensajes dentro del código del
programa.

 Sin embargo, la mayor parte de vendedores de


computadores han salvaguardado la portabilidad de las
aplicaciones adoptando, sea un mecanismo de dominio
público para paso de mensajes conocido como Máquina
virtual paralela (parallel virtual machine / PVM), o un
estándar en fase de desarrollo llamado Interfaz de Paso
de Mensajes (Message Passing Interface / MPI), para
implementar el mecanismo de paso de mensajes.

17
3. PROCESAMIENTO PARALELO ESCALABLE

 Cómo superar las dificultades de SMP y MPP? La última


arquitectura paralela, el Procesamiento paralelo
escalable (Scalable parallel processing / SPP), es un
híbrido de SMP y MPP, que utiliza una memoria jerárquica
de dos niveles para alcanzar la escalabilidad. La primera
capa de memoria consiste de un nodo que es
esencialmente un sistema SMP completo, con múltiples
procesadores y su memoria globalmente compartida.

 Se construyen sistemas SPP grandes interconectando dos o


mas nodos a través de la segunda capa de memoria, de
modo que esta capa aparece lógicamente, ante los nodos,
como una memoria global compartida.

18
3. PROCESAMIENTO PARALELO ESCALABLE

La memoria de dos niveles reduce el tráfico de bus


debido a que solamente ocurren actualizaciones
para mantener coherencia de memoria. Por tanto,
SPP ofrece facilidad de programación del modelo
SMP, a la vez que provee una escalabilidad similar
a la de un diseño MPP.
19
3. PROCESAMIENTO PARALELO ESCALABLE

20
ARQUITECTURAS Y DISEÑOS DE
COMPUTADORAS
 En 1966 Michael Flynn propuso un mecanismo de
clasificación de las computadoras. La taxonomía de
Flynn es la manera clásica de organizar las
computadoras, y aunque no cubre todas las
posibles arquitecturas, proporciona una importante
penetración en varias arquitecturas de
computadoras.
 El método de Flynn se basa en el número de
instrucciones y de la secuencia de datos que la
computadora utiliza para procesar información.
Puede haber secuencias de instrucciones sencillas o
múltiples y secuencias de datos sencillas o
múltiples.
 Esto da lugar a 4 tipos de computadoras, de las
cuales solamente dos son aplicables a las
computadoras paralelas.
21
1.- SISD (Single Instruction Single Data).
 Este es el modelo tradicional de computación
secuencial donde una unidad de procesamiento
recibe una sola secuencia de instrucciones que
operan en una secuencia de datos.

CONTROL PROCESADOR MEMORIA

Ejemplo: Para procesar la suma de N números a1,


a2, ... aN, el procesador necesita accesar a memoria N
veces consecutivas (para recibir un número). También
son ejecutadas en secuencia N-1 adiciones. Es decir los
algoritmos para las computadoras SISD no contienen
ningún paralelismo, éstas están constituidas de un
procesador.
22
2.- SIMD (Single Instruction Multiple Data )

 A diferencia de SISD, en este caso se tienen


múltiples procesadores que sincronizadamente
ejecutan la misma secuencia de instrucciones,
pero en diferentes datos. El tipo de memoria que
estos sistemas utilizan es distribuida.

23
2.- SIMD (Single Instruction Multiple Data )

 Aquí hay N secuencias de datos, una por


procesador, así que diferentes datos pueden ser
utilizados en cada procesador. Los procesadores
operan sincronizadamente y un reloj global se
utiliza para asegurar esta operación.
Es decir, en cada paso todos lo procesadores
ejecutan la misma instrucción, cada uno en
diferente dato.
Máquinas con arreglos de procesadores tales
como ICL DAP (Distributed Array Processor) y
computadoras vectoriales canalizadas como CRAY
1 & 2 y CIBER 205 son de arquitectura SIMD.

24
2.- SIMD (Single Instruction Multiple Data )

 Ejemplo: Sumando dos matrices A + B = C. Siendo A y B


de orden 2 y teniendo 4 procesadores:

A11 + B11 = C11 A12 + B12 = C12


A21 + B21 = C21 A22 + B22 = C22

 La misma instrucción es ejecutada en los 4 procesadores


(sumando dos números) y los 4 ejecutan las instrucciones
simultáneamente. Esto toma un paso en comparación con
cuatro pasos en una máquina secuencial.

25
3 MIMD (Multiple Instruction Multiple)
 Este tipo de computadora es paralela al igual que
las SIMD, la diferencia con estos sistemas es que
MIMD es asíncrono. No tiene un reloj central.
Cada procesador en un sistema MIMD puede
ejecutar su propia secuencia de instrucciones y
tener sus propios datos. Esta caracteristica es la
más general y poderosa de esta clasificación.

26
3 MIMD (Multiple Instruction Multiple)
 Se tienen N procesadores, N secuencias de
instrucciones y N secuencias de datos. Cada
procesador opera bajo el control de una sencuencia de
instrucciones, ejecutada por su propia unidad de
control, es decir cada procesador es capaz de ejecutar
su propio programa con diferentes datos. Esto
significa que los procesadores operan asíncronamente,
o en terminos simples, pueden estar haciendo
diferentes cosas en diferentes datos al mismo tiempo.

 Los sistemas MIMD se clasifican en:


3.1 Sistemas de Memoria Compartida.
3.2 Sistemas de Memoria Distribuida.
3.3 Sistemas de Memoria Compartida Distribuida.

27
3.1. Sistemas de Memoria Compartida.

 En este tipo de sistemas cada procesador tiene


acceso a toda la memoria, es decir hay un
espacio de direccionamiento compartido.
 Se tienen tiempos de acceso a memoria
uniformes ya que todos los procesadores se
encuentran igualmente comunicados con la
memoria principal y las lecturas y escrituras de
todos los procesadores tienen exactamente las
mismas latencias; y además el acceso a memoria
es por medio de un ducto común.
 En esta configuración, debe asegurarse que los
procesadores no tengan acceso simultáneamente
a regiones de memoria de una manera en la que
pueda occurrir algún error.
28
3.1. Sistemas de Memoria Compartida.

Desventajas:
• El acceso simultáneo a memoria es un problema.
• Poca escabilidad de procesadores, debido a que se
puede generar un cuello de botella al incrementar el
numero de CPU's.
• En computadoras vectoriales como Crays, etc.
• Todos los CPUs tienen un camino libre a la memoria.
No hay interferencia entre CPUs.
• La razón principal por el alto precio de Cray es la
memoria.

Ventaja:
• La facilidad de la programación. Es mucho más fácil
programar en estos sistemas que en sistemas de
memoria distribuida.

29
3.1. Sistemas de Memoria Compartida.

Las computadoras MIMD con memoria compartida son


sistemas conocidos como de multiprocesamiento
simétrico (SMP) donde múltiples procesadores
comparten un mismo sistema operativo y memoria. Otro
término con que se le conoce es máquinas firmemente
juntas o de multiprocesadores. Ejemplos son: SGI/Cray
Power Challenge, SGI/Cray C90, SGI/Onyx, ENCORE,
MULTIMAX, SEQUENT y BALANCE, entre otras.
30
3.2. Sistemas de Memoria Distribuida.
 Estos sistemas tienen su propia memoria local. Los
procesadores pueden compartir información solamente
enviando mensajes, es decir, si un procesador requiere los
datos contenidos en la memoria de otro procesador, deberá
enviar un mensaje solicitándolos. Esta comunicación se le
conoce como Paso de Mensajes.

Ventajas:
• La escalabilidad. Las computadoras con sistemas de
memoria distribuida son fáciles de escalar, mientras que
la demanda de los recursos crece, se puede agregar
más memoria y procesadores.

Desventajas:
• El acceso remoto a memoria es lento.
• La programación puede ser complicada.

31
3.3 Sistemas de Memoria Compartida Distribuida

 Es un cluster o una partición de procesadores que


tienen acceso a una memoria compartida común
pero sin un canal compartido.
 Esto es, físicamente cada procesador posee su
memoria local y se interconecta con otros
procesadores por medio de un dispositivo de alta
velocidad, y todos ven las memorias de cada uno
como un espacio de direcciones globales.
 El acceso a la memoria de diferentes clusters se
realiza bajo el esquema de Acceso a Memoria No
Uniforme (NUMA), la cual toma menos tiempo en
accesar a la memoria local de un procesador que
accesar a memoria remota de otro procesador.
32
3.3 Sistemas de Memoria Compartida Distribuida
Ventajas:
•Presenta escalabilidad como en los sistemas de memoria
distribuida.
•Es fácil de programar como en los sistemas de memoria
compartida.
•No existe el cuello de botella que se puede dar en
máquinas de sólo memoria compartida.

Algunos ejemplos de este tipo de sistemas son HP/Convex


SPP-2000 y SGI/Cray Origin2000
33
4 MISD (Multiple Instrucion Single Data).

 En este modelo, secuencias de instrucciones


pasan a través de múltiples procesadores.
Diferentes operaciones son realizadas en diversos
procesadores.
 N procesadores, cada uno con su propia unidad
de control comparten una memoria común.

34
4 MISD (Multiple Instrucion Single Data).

 Aqui hay N secuencias de instrucciones


(algoritmos/programas) y una secuencia de
datos. El paralelismo es alcanzado dejando que
los procesadores realicen diferentes cosas al
mismo tiempo en el mismo dato.
 Las máquinas MISD son útiles en cómputos
donde la misma entrada esta sujeta a diferentes
operaciones.

35

Você também pode gostar