You are on page 1of 36

COMPUTACIÓN

PARALELA
TIPOS DE COMPUTACIÓN
PARALELA
La creciente complejidad de los problemas
tratados en ciertas áreas de la ciencia, la
ingeniería, el procesamiento de datos, etc.,
requieren una gran capacidad de cálculo. Es un
hecho bien establecido que para algunos
problemas tales como los métodos numéricos, la
simulación, la optimización, etc.
 Las aplicaciones de esta área de la computación se
extienden a diferentes disciplinas. La Figura 2.1 muestra
los requerimientos computacionales para distintos campos
de aplicación.
Ø La computación paralela o procesamiento en paralelo
consiste en acelerar la ejecución de un programa
mediante su descomposición en fragmentos que pueden
ejecutarse de forma simultánea, cada uno en su propia
unidad de proceso.
Ø
Ø Normalmente, los problemas no pueden dividirse
perfectamente en partes totalmente independientes y se
necesita, por tanto, una interacción entre ellas que
ocasiona una disminución de la velocidad computacional.
Ø
Ø En este sentido se habla de mayor o menor grado de
paralelismo en la medida en que un algoritmo sea más o
menos divisible en partes independientes con igual coste
computacional.
Ø
Ø Entre las interacciones hay que considerar principalmente las
dos siguientes:
 a) La transferencia de datos.
 b) La sincronización de los cálculos de los
diferentes procesadores.
 El concepto de computador paralelo, como es de esperar, no es una idea nueva.
Por ejemplo, Gill ya escribió acerca de la programación paralela en 1958, y un
año después Holland planteó la posibilidad de que un computador pudiera
ejecutar un número arbitrario de subprogramas simultáneamente. En 1963
Conway describe el diseño de un computador paralelo y su programación, y
40 años más tarde se siguen encontrando numerosísimos artículos con títulos
y planteamientos similares a los que ya apuntaban estos precursores del
campo de la computación paralela.
1.1 Taxonomía de las arquitecturas
paralelas
 Las diferentes posibilidades existentes para desarrollar
sistemas paralelos hacen que una clasificación definitiva
sea complicada, y seguramente estéril. Por ello, en
primer lugar se recuerdan las características básicas del
modelo secuencial, con el fin de delimitar los aspectos
básicos que son comunes o diferentes de los sistemas
paralelos.

 Seguidamente se muestra una clasificación clásica
propuesta por Flynn, que se basa en el flujo de
instrucciones y en el flujo de datos, es decir, el
mecanismo de control utilizado. Sin embargo, existe una
gran cantidad de criterios, aunque no todos
mutuamente excluyentes entre sí, para establecer una
clasificación de las distintas arquitecturas paralelas.
1.2 Arquitectura de los computadores
secuenciales
 Como es bien sabido, los computadores secuenciales,
también denominados computadores serie, se
basan en la arquitectura de J. von Neumann. En
este modelo se considera una única secuencia de
instrucciones que tratan una única secuencia de
datos. Por ello se conocen como computadores
SISD.
Arquitectura de Von Neumann

 Un computador de Von Neumann usa el concepto


de programa-almacenamiento. El CPU ejecuta un
programa que específica una secuencia de
operaciones de lectura y escritura en la memoria.
Diseño Básico:

 Memoria es usada para almacenar el programa y


las instrucciones sobre los datos
 Instrucciones del Programa son datos codificados
que le dice al computador que hacer
 Los datos es simplemente información a ser
usada por el programa
 La unidad de procesamiento central (CPU)
obtiene instrucciones y/o datos de la memoria,
decodifica las instrucciones y secuencialmente
ejecuta éstas.
 La más conocida es la segmentación (pipelining).

 La segmentación de instrucciones consiste en traer a la
cola de instrucciones la instrucción siguiente a la que
se está ejecutando. En último término se realiza la
segmentación de ejecución, o segmentación
encauzada, en la que se permite que varias
instrucciones se ejecuten simultáneamente en
diferentes unidades funcionales de cálculo
(multiplicadores, sumadores, unidad de
carga/almacenamiento, ...), durante las diferentes
etapas en las que se divide la ejecución de la
instrucción.
 El rendimiento que se obtiene recurriendo a una
máquina con segmentación es, por lo general,
muy superior al de la versión no segmentada.
Obsérvese la Figura, en la que se muestra una
segmentación típica e ideal de un procesador
RISC (Reduced Instruction Set Computer)
con cinco etapas de ejecución:

 IF (búsqueda de la instrucción)
 ID (decodificación de la instrucción y lectura de
los registros)
 EX (operaciones aritméticas)
 MEM (lectura/escritura de/en memoria)
 WB (escritura en los registros).
2.2.1 Taxonomía de Flynn
 En 1966 Flynn propuso una clasificación
generalista de los computadores,
adoptando como criterio el flujo de
instrucciones y el flujo de datos que en
ellos se desarrolla.
 Se entiende por flujo (stream) una
secuencia de elementos, en este
caso de datos o de instrucciones.
 Así, la clasificación de Flynn es la
siguiente:




Single Instruction, Single Data
(SISD):
 Un único procesador interpreta una única secuencia de
instrucciones, para operar con los datos almacenados en
una única memoria. Los computadores monoprocesador
caen en esta categoría.

SI SD
Unidad de Unidad de Unidad de
control proceso memoria

Instructions

Data Input Processor Data Output


Single Instruction, Multiple Data
(SIMD):
 Una única instrucción de máquina controla paso a paso la
ejecución simultánea y sincronizada de un cierto número de
elementos de proceso. Cada elemento de proceso tiene una
memoria asociada, de forma que cada instrucción es
ejecutada por cada procesador, con un conjunto de datos
diferentes. Los procesadores matriciales y vectoriales
pertenecen a esta categoría.

Instruction
Stream

Data Output
Processor
Data Input A stream A
stream A Data Output
Data Input Processor
stream B
stream B B
Processor
Data Output
Data Input C stream C
stream C
Multiple Instruction, Single Data
(MISD):
 Se transmite una secuencia de datos a un conjunto
de procesadores, cada uno de los cuales ejecuta
una secuencia de instrucciones diferente. Esta
estructura ha sido implementada sólo con fines
de investigación.
Instruction Stream A

Instruction Stream B

Instruction Stream C
Processor
A Data
Data Processor Output
Input B Stream
Stream Processor
C
Multiple Instruction, Multiple Data (MIMD):

 Un conjunto de procesadores ejecuta


simultáneamente secuencias de instrucciones
diferentes con conjuntos de datos diferentes. Los
clusters son ejemplos de esta categoría.
Instruction Stream A

Instruction Stream B
Instruction Stream C

Data Input Processor


stream A Data Output stream A
A
Data Input Processor Data Output stream B
stream B B
Processor
Data Input Data Output stream C
stream C C
2.2.2 Organización del espacio de
direcciones de memoria
 El intercambio de información entre
procesadores depende del sistema de
almacenamiento que se disponga.
Atendiendo a este criterio se obtiene una
nueva clasificación de las arquitecturas
paralelas en:

üSistemas de memória compartida o


multiprocesadores.
üSistemas de memória distribuída o
multicomputadores.
Sistemas de memória compartida o
multiprocesadores.
 Los procesadores de los sistemas con
memoria compartida se caracterizan por
compartir físicamente la memoria, es
decir, todos acceden al mismo espacio de
direcciones. Un valor escrito en memoria
por un procesador puede ser leído
directamente por cualquier otro. En
principio, en esta arquitectura la memoria
es igualmente accesible por todos los
procesadores a través de la red de
interconexión. Así se desarrollaron los
primeros computadores de esta
arquitectura, tales como el NYU
Ultracomputer.
SI SD
Unidad de Elemento
Control 1 de proceso 1

SI SD
Unidad de Elemento
Control 2 de proceso 2
Memoria
Compartida

SI SD
Unidad de Elemento
Control n de proceso n
 La mayoría de los sistemas de memoria
compartida incorporan una memoria cache
local en cada procesador, y del mismo modo
que en los computadores secuenciales, sirve
para aumentar el ancho de banda entre el
procesador y la memoria local. Análogamente
puede existir una memoria cache para la
memoria global. Cuando se utilizan memorias
cache es fundamental asegurar la coherencia
de la información en la memoria cache
Sistemas de memória distribuída o
multicomputadores
 En los sistemas de memoria distribuida
cada procesador dispone de su propia
memoria, denominada local o privada,
independiente del resto y accesible sólo
por su procesador. La comunicación se
realiza por paso de mensajes, es decir,
para que un dato que reside en la
memoria de un procesador pase a la de
otro, el primero debe construir un
mensaje por software, enviarlo a través
de una red de interconexión y el segundo
debe recibirlo.
Unidad de SI SD
Elemento Memoria
Control 1 de proceso 1 Local 1
Red de
SI SD Interco-
Unidad de Elemento Memoria
nexión
Control 2 de proceso 2 Local 2

Unidad de SI SD
Elemento Memoria
Control n de proceso n Local n
CLASIFICACIÓN DE LAS
ARQUITECTURAS PARALELAS
OTROS CRITERIOS DE
CLASIFICACIÓN
 La anterior clasificación, siendo muy completa
e ilustrativa, no puede considerarse
definitiva. De hecho, atendiendo a otros
factores o desde otros puntos de vista, se
pueden realizar taxonomías diferentes
como:


REDES DE INTERCONEXIÓN
REDES DE INTERCONEXIÓN

 la red de interconexión es eficaz u


óptima cuando la capacidad de cálculo
del sistema está equilibrada con
respecto a la capacidad de transmisión
de la red de interconexión. Cuando la
capacidad de cálculo se incrementa,
las características de la red deben
mejorarse en sintonía con ella.
REDES DE INTERCONEXIÓN

 LIMITACIONES:

Ø En primer lugar el coste es mayor


Ø Limitaciones físicas, como los retrasos
inherentes a todo sistema de
comunicación.
REDES DE INTERCONEXIÓN
 Los factores de la red de interconexión
que más influyen en el rendimiento del
sistema son fundamentalmente
cuatro:
Ø La topología
Ø El mecanismo de conmutación
Ø El control de flujo
Ø El algoritmo de encaminamiento.

REDES DE INTERCONEXIÓN
 TOPOLOGÍA:
 Existe gran variedad, que va desde
las estructuras sencillas de bajo coste y
poco escalables, hasta los grafos más
complejos.

Ø las redes de medio compartido el bus


Ø clasificadas en redes directas e
indirectas
REDES DE INTERCONEXIÓN
 MECANISMO DE CONMUTACIÓN

 En la actualidad se emplea conmutación de paquetes,


aunque en un principio se utilizaron técnicas de
conmutación de circuitos. Esta técnica sólo es eficaz si la
cantidad de información a enviar es elevada y/o la
fluctuación en el ritmo de transferencia es muy baja,
que es la situación contraria a la habitual en un sistema
multiprocesador. En la conmutación de paquetes no se
reserva el medio, sino que la información se transmite
en forma de paquetes siguiendo bien un camino
establecido previamente o bien buscando su propia ruta
al nodo destino. Esta técnica implica la incorporación de
arbitrajes para gestionar los fenómenos de contención,
permite aumentar significativamente el nivel de
ocupación de la red.

REDES DE INTERCONEXIÓN
 CONTROL DE FLUJO
 Los primeros multiprocesadores utilizaron
la técnica de control de flujo store-and-
forwards, bien establecida en las redes
de área local.
 En 1979, Kermani y KZeinrock introdujeron
la técnica de control de flujo virtual cut-
through6 (control de flujo segmentado).
En ella cada unidad mínima de
información intercambiable entre routers,
denominada phit, puede ser reenviada al
siguiente router, sin haber recibido todo
el paquete.
REDES DE INTERCONEXIÓN
 ALGORITMO DE ENCARNINAMIENTO

 el método utilizado para elegir el camino entre cada origen
y destino. La primera idea consiste en fijar una ruta
predeterminada. Este tipo es denominado
encaminamiento determinista. En él, los encaminadores
son sencillos, rápidos y de bajo coste. Su principal
desventaja es que puede provocar grandes
desbalanceos en los niveles de ocupación de los
recursos en numerosas situaciones de tráfico.
 Como alternativa apareció el encaminamiento adaptativo
en el que la elección del camino depende de los nodos
origen y destino y, además, del estado de la red en el
momento de la transmisión. Los encaminadores
adaptativos son mucho más complejos, con lo que
aumenta su coste y disminuye su rapidez.

CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 se observa que las mejoras en el desarrollo
producen una reducción en la duración del
ciclo.
CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 El Cray T3E
 es el exponente de la segunda generación de
una familia de sistemas multiprocesador que
comenzó con el Cray T3D. La red de
interconexión en ambos sistemas es un toro
3-D. Cada unidad de proceso está formada
por un DEC Alpha 21164, 2 Gbytes de
memoria, un router de comunicación y un
módulo de control. Cada procesador es capaz
de procesar instrucciones por periodo de
reloj, llegando a tener un pico de hasta 600
Mflops para procesadores de 300 Mhz y 900
Mflops para procesadores de 450Mhz. Este
procesador soporta aritmética de 32 y 64 bits.
CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 El CrayT3E - Arquitectura

CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 Myrinet
 Es una red de interconexión ideada para
NOWs (Network Of Workstations) de
una red LAN con características
particulares para su utilización en
NOWs. Así p (virtual cut-through).
Consta de dos elementos básicos: de
red y los conmutadores. Ambos
elementos se pueden combinar de
diversas formas diferentes topologías
irregulares.
CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 Red de interconexión basada en
Myrinet.
CARACTERÍSTICAS BÁSICAS DE
ALGUNOS ENCAMINADORES
 Estructura de una interfaz de red Myrinet. Procesador LANai.