Publicado el 29 de Diciembre del 2019
376 visualizaciones desde el 29 de Diciembre del 2019
302,6 KB
18 paginas
Creado hace 12a (23/03/2012)
MULTIPROCESADORES
TIPOS DE PARALELISMO
MULTIPROCESADORES
TIPOS DE PARALELISMO
© Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad
Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del
público y en general cualquier otra forma de explotación de toda o parte de la misma.
La utilización no autorizada de esta obra, así como los perjuicios ocasionados en los derechos de
propiedad intelectual e industrial de la Universidad Europea de Madrid, S.L.U., darán lugar al ejercicio
de las acciones que legalmente le correspondan y, en su caso, a las responsabilidades que de dicho
ejercicio se deriven.
2
Índice
Presentación
Clasificación de Flynn
Tipos de MIMD
Multiprocesadores. Arquitecturas memoria compartida
Multiprocesadores. Arquitecturas con memoria distribuida
Tipos de memoria compartida
Modelo UMA
Modelo NUMA
Modelo COMA
Arquitecturas con memoria distribuida
Resumen
MULTIPROCESADORES
TIPOS DE PARALELISMO
4
6
7
9
11
13
14
15
16
17
18
3
Presentación
MULTIPROCESADORES
TIPOS DE PARALELISMO
Cuando hablamos de paralelismo o procesamiento paralelo, normalmente nos viene a la mente un
sistema multiprocesador. En este tema veremos que hay distintos tipos de paralelismo y de
arquitecturas de procesamiento paralelo, entre
las que se encuentran,
los sistemas
multiprocesadores y sus variantes.
Los multiprocesadores, así como otras arquitecturas de procesamiento paralelo, surgieron de la
necesidad de resolver problemas que se denominan de procesamiento intenso, tales como:
El tratamiento de imágenes capturadas por satélites.
Aplicaciones médicas que implican la generación de imágenes filtradas en tiempo real.
La investigación en el campo de la astrología, donde las aplicaciones procesan grandes
imágenes.
El tratamiento de datos extraídos de Internet.
Este tipo de aplicaciones necesitan arquitecturas capaces de operar, del orden de TFLOPS:
1 Tera FLOP = 1012 FLOPS = 1 Billón de operaciones en coma flotante por segundo.
4
MULTIPROCESADORES
TIPOS DE PARALELISMO
Esta necesidad de aumentar el rendimiento de los computadores a una mayor velocidad que la
evolución de los procesadores, llevó a los arquitectos de computadores a realizar diseños
creativos, como la construcción de multiprocesadores, que pudieran multiplicar el rendimiento de
la máquina.
En este tema aprenderemos a clasificar distintos tipos de arquitecturas de procesamiento intenso,
y seremos capaces de identificar cuál es la más adecuada según el tipo de aplicación que se le
quiera asignar a la arquitectura.
5
Clasificación de Flynn
MULTIPROCESADORES
TIPOS DE PARALELISMO
En 1966, Flynn estableció una clasificación del paralelismo que todavía hoy es utilizada para
describir las arquitecturas de procesamiento intenso. La clasificación de Flynn se basa en dos
características:
Número de instrucciones que ejecutan en paralelo: una instrucción (Single Instruction) o
múltiples (Multiple Instructions)
Número de fuentes de datos que se tratan en paralelo: una entrada (Single Data) o
múltiples (Multiple Data).
Sobre la base de estas características, la clasificación de Flynn establece cuatro tipos de
arquitecturas según el paralelismo utilizado en instrucciones y datos.
TIPO
SISD
SIMD
DESCRIPCIÓN
Single Instruction, Single Data.
Single Instruction, Multiple Data.
MISD
Multiple Instruction, Single Data.
MIMD Multiple Instruction, Multiple Data.
EJEMPLOS
Monoprocesador convencional.
Procesador vectorial (trabaja con vectores, múltiples datos en paralelo),
Procesador superescalar (múltiples ALU que operan en paralelo).
No existen arquitecturas de este tipo.
Sistemas multinúcleo y multiprocesador.
En los últimos tiempos, se habla también del concepto de SPMD (Single Program Multiple Data),
haciendo referencia al modelo de programación de las arquitecturas MIMD, donde un único
programa se ejecuta en todos los procesadores. El programador puede incluir directivas
condicionales de paralelismo en el código secuencial.
6
Tipos de MIMD
MULTIPROCESADORES
TIPOS DE PARALELISMO
Dentro de las arquitecturas MIMD, existen dos tendencias de desarrollos arquitectónicos:
Arquitecturas multiprocesador.
Arquitecturas multicomputador.
La principal diferencia entre estos dos tipos de arquitecturas, radica en el grado de
compactación de la arquitectura y en la forma en la que se comunican los componentes. Se dice
que
las arquitecturas multiprocesador están
fuertemente acopladas, y
las arquitecturas
multicomputador, que están débilmente acopladas. En la realidad, existe una línea muy delgada
para distinguir dónde terminan los multiprocesadores y dónde comienzan los multicomputadores.
Vamos a plantear dos ejemplos que reflejan los casos más extremos de ambas arquitecturas,
donde se diferencia claramente la naturaleza de cada tendencia.
Arquitectura multiprocesador
multinúcleo
Los procesadores se encuentran localizados en el
mismo chip, normalmente comparten el mismo espacio
de memoria para ejecutar programas en paralelo y
resolver un mismo problema en común en mucho menor
tiempo.
Arquitecutra cliente-servidor
La misma aplicación se ejecuta en dos máquinas
independientes, normalmente cada una tiene su propio
procesador, su propia memoria principal, incluso su
propio controlador de E/S con dispositivos periféricos
independientes. Cada máquina ejecuta una parte de
código distinto y solo se intercambian información a
través de paso de mensajes. Si llevamos al extremo la
definición de arquitectura multicomputador, podríamos
incluir, en este tipo de computadores, una arquitectura
cliente-servidor ejecutada en red donde los ordenadores
están físicamente separados en lugares distintos.
.
7
.
MULTIPROCESADORES
TIPOS DE PARALELISMO
8
MULTIPROCESADORES
TIPOS DE PARALELISMO
Multiprocesadores. Arquitecturas memoria compartida
Dentro de los multiprocesadores existen dos tipos de arquitecturas claramente diferenciadas:
Arquitecturas con memoria compartida.
Arquitecturas con memoria distribuida.
En este apartado vamos a tratar las arquitecturas con
memoria compartida, en las que todos los procesadores
comparten el mismo espacio de direcciones. Es decir, todo el
direccionamiento de la memoria principal es único, y los
procesadores pueden acceder a todas las posiciones de
memoria.
Por su parte, la comunicación entre procesadores normalmente se hace a través de la memoria
mediante el uso de variables compartidas. Si el número de componentes de la arquitectura es
reducido, puede ser suficiente un bus de datos digital lo bastante ancho (suficientes hilos) para
comunicar los componentes. Arquitecturas grandes utilizan como modelo de interconexión una
red crossbar o una red multietapa.
Este tipo de multiprocesadores debe utilizar memorias cachés suficientemente grandes. Cada
procesador tendrá su memoria caché independiente y privada para evitar, más de lo necesario,
la búsqueda de datos en la memoria principal, y por tanto, impedir un cuello de botella cuando
varios procesadores requieran acceder a datos de memoria al mismo tiempo.
Estas arquitecturas son las más utilizadas en la actualidad, puesto que ofrecen buenas
prestaciones por tener varios procesadores trabajando en paralelo. Además, la gestión de varios
procesadores se hace muy sencilla por estar muy compactos y apenas se consumen recursos
para este fin.
Desde el punto de vista de consumo, las nuevas arquitecturas multinúcleo, al compartir un mismo
chip, hacen que el consumo de potencia disminuya respecto a arquitecturas multiprocesadores
más antiguas y con menor grado de acoplamiento.
9
MULTIPROCESADORES
TIPOS DE PARALELISMO
Este tipo de arquitecturas suele tener un número de procesadores relativamente pequeño, entre 2
y 32 procesadores.
10
MULTIPROCESADORES
TIPOS DE PARALELISMO
Multiprocesadores. Arquitecturas con memoria distribuida
En el caso de arquitecturas con memoria distribuida, todos los procesadores poseen una
memoria privada. Es decir, que no todos pueden acceder a todas las posiciones de memoria, y
hay varios módulos de memoria independientes que no comparten el mismo direccionamiento.
Pueden trabajar con datos de memoria compartidos, pero la gestión de la memoria compartida es
mucho más costosa que en el otro tipo de multiprocesadores, puesto que no comparten ningún
módulo de memoria principal.
En este tipo de arquitecturas, la comunicación entre procesadores se hace a través de paso de
mensajes. Como modelo de interconexión, normalmente se utiliza una red crossbar o una red
multietapa.
Como ventaja principal de este tipo de arquitecturas encontramos, por un lado, la escalabilidad,
ya que permite ampliar el número de procesadores sin grandes cambios en la arquitectura. Por
otro lado, ofrecen una solución al problema del ancho de banda, ya que los procesadores no
comparten la misma memoria principal y hay menos comunicaciones. Normalmente, el número
de procesadores de este tipo de arquitecturas es alto (entre 512 y 1024 procesadores), por eso
se necesita una red de interconexión que permita conectar muchos componentes.
Como principal desventaja, debemos mencionar el coste en la gestión de tantos procesadores,
especialmente cuando trabajan en problemas comunes, y el envío de datos a través de la red es
más lento debido a los protocolos de comunicación. La gestión de muchos procesos y tareas
hace que la arquitectura pierda eficiencia.
Desde el punto de vista de consumo, e
Comentarios de: Multiprocesadores / Tipos de paralelismo (0)
No hay comentarios