Publicado el 1 de Enero del 2020
355 visualizaciones desde el 1 de Enero del 2020
211,5 KB
18 paginas
Creado hace 12a (14/03/2012)
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
© 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
Introducción
Conceptos básicos
Clasifación de paralelismos
Niveles de paralelismo
Paralelismo funcional y de datos
Paralelismo funcional
Paralelismo de datos
Criterios de clasificación
Ejecución multihilo en hardware
Ejecución multihilo simultánea
Resumen
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
4
5
7
9
10
12
12
12
14
15
17
18
3
Presentación
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
Hasta ahora, hemos estudiado algunos conceptos sobre multiprocesamiento, incluso hemos visto
el caso concreto de Intel, en el que podíamos comprobar cómo conseguir multiprocesamiento a
nivel de chip.
En este tema, daremos un salto más amplio hacia las máquinas multiprocesadores, dando un
formato más consecuente.
Para empezar, conoceremos los puntos clave para entender el porqué de la necesidad de
máquinas supercomputadores, y los puntos clave en los que se basan para conseguir un alto
rendimiento.
Posteriormente, daremos paso a cómo clasificar los ejemplares de máquinas según el tipo de
paralelización que implementen.
Por tanto, los puntos en los que nos centraremos en este tema son:
Introducción: proceso, hilo, cambio de contexto.
Clasificación y niveles de paralelismo implementados en las máquinas supercomputadores.
Diferentes tipos de ejecución multihilo a nivel hardware.
4
Introducción
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
Para empezar a hablar del paralelismo, antes necesitamos comprender cuáles son los niveles de
paralelismo y dónde podemos hacer paralelismo.
Primero, preguntémonos por la necesidad. Los computadores masivamente paralelos (MPP)
están en pleno desarrollo. Cada año se instalan más de 10 de estos supercomputadores en todo
el mundo. Tal vez parezcan pocos, pero es que su coste supera los 1,25 mil millones de euros y
unos 10 millones de coste al año de funcionamiento (consume 10MW de electricidad).
Pero su fabricación está justificada por las aplicaciones sobre las áreas en las que actualmente
están trabajando, que según el HPCC son:
Diseños de medicamentos principalmente orientados a lucha contra el cáncer y el SIDA.
El origen de la materia y el universo.
Avances en biomedicina, como el estudio del cerebro humano.
Modelado de comportamiento oceánico, la dinámica de la capa de ozono, cambio climático,
etc.
Nuevos materiales y la creación de la energía
Próxima generación de tecnología de fabricación
Para defensa, que siempre está presente, aunque no sea de las más populares.
Pero para definir bien el alcance de esta asignatura, aclaremos que paralelismo es un término
muy amplio, pero podemos definirlo como la capacidad de realizar operaciones al mismo tiempo.
Destacamos dos niveles fundamentales:
Paralelismo interno
Multiplicidad de unidades funcionales, segmentación (de
instrucciones, operaciones aritméticas, accesos a
memoria).
Paralelismo externo
Fuera del procesador. Sistemas
procesadores (computadores paralelos).
con muchos
5
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
En esta unidad nos centraremos únicamente en el paralelismo interno, no sin antes repasar con
más detalle, la necesidad del multiprocesamiento.
HPCC
HPCC son las siglas de High-Performance Computing and Communication program.
Rendimiento de un supercomputador
Como curiosidad, decir que un supercomputador de última generación resuelve en un día
lo que a nuestro ordenador de sobremesa le llevaría del orden de 200 años. Extrapolar este
calculo, y pensar en lo que podría resolver en un año de funcionamiento y ¿todo esto por
solo 10 millones de dólares?
6
Conceptos básicos
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
Antes de comenzar, vamos a recordar ciertos aspectos sobre materias estudiadas con
anterioridad. Repasemos las siguientes definiciones.
Programa
Para el programador, es un conjunto ordenado de
instrucciones. Pare el sistema operativo, es un archivo
ejecutable almacenado en memoria secundaria.
Proceso
También llamado tarea. Programa en ejecución, con su
contexto asociado que especifica
(espacio de
direcciones que ocupa, recursos del compilador que
utiliza, estatus, etc.).
Ciclo de vida de un proceso
ejecución
y
terminación. Con
Creación,
sus
subfunciones de establecimiento de la descripción del
proceso, asignación del espacio de memoria, carga del
programa en el espacio de memoria, paso de la
descripción del proceso al planificador, etc.
El proceso es una entidad pesada, es decir, tiene muchos recursos asociados. Además, hoy en
día, un proceso no solo realiza una operación a la vez, sino que realiza multitud de acciones
simultáneamente. Es decir, tiene varios flujos de ejecución simultánea.
Ejemplo: pensar en Word; al mismo tiempo que atiende el teclado para interpretar la teclas que el
usuario escribe, por debajo, está formateando la página para mostrar cómo está quedando el
documento, haciendo una corrección ortográfica instantánea, etc. No hace mucho, esto solo se
podría logar teniendo un proceso para cada una de estas actividades simultáneas, trabajando
sobre los mismos datos de entrada (lo que el usuario tecleaba).
En la actualidad, se ha creado un nuevo concepto: la idea de thread. El thread es la parte
ejecutiva de un proceso. Por tanto, el proceso sigue siendo igual de complejo que antes, pero
dentro de un mismo proceso, podemos tener más de un flujo (hilo) de ejecución, y todos estos
hilos comparten los recursos del proceso.
Si deseas ver las formas básicas de crear y terminar threads en los lenguajes de programación,
puedes consultar el siguiente enlace:
7
Crear y terminar threads
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
El proceso y su parte ejecutiva thread en la aplicación Word
Con thread, nuestro Word ya no necesita lanzar un gran número de procesos hijos para
realizar estas tareas, sino que puede lanzar threads hijos dentro de un único contexto. Esto
hace que la multitarea a nivel de proceso sea mucho más simple y liviana, pero su gestión
es similar a la de los procesos, con la salvedad de que el cambio de contexto entre
procesos es cara en tiempo, mientras que entre hilos es más fácil y rápida.
8
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
Clasifación de paralelismos
A continuación, vamos a hablar del paralelismo aplicado a modelos computacionales. Para
empezar, un modelo computacional es un sistema que maneja datos para obtener resultados
mediante la realización de unas determinadas operaciones en base a esos datos.
En relación con esta idea, podemos definir cuatro modelos de paralelismo.
SSID (Single Instruction
Single Data)
Es la máquina no paralela. En cada paso se emite una
instrucción, que opera sobre un único dato. Es típica de
las máquinas con una sola unidad funcional, y es óptima
para algoritmos secuenciales.
MISD (Multiple Instruction
Single Data)
SIMD (Single Instruction
Single Data)
Un solo dato, al que se le dedican simultáneamente
múltiples operaciones. Es un tipo de paralelismo que no
se implementa, ya que sus usos y aplicaciones son muy
pocas. Además, convertir esta máquina a una MIMD es
fácil y no resulta muy caro.
Una sola instrucción sobre una colección de datos. Es
típica de máquina con la unidad de procesamiento de
datos replicada (ALU). Todas estas unidades funcionales
están coordinadas por una única unidad de control y de
manera síncrona (todas a la vez). Estas máquinas son
conocidas como matriciales, y son óptimas para
operaciones vectoriales.
MIMD (Multiple Instruction
Multiple Data)
Tienen los procesadores y las unidades operativas
replicadas, pudiendo ejecutar múltiples
instituciones
sobre múltiples datos de manera simultánea, y la
ejecución de instrucciones puede ser asíncrona.
Por tanto, podemos resumir:
Máquinas convencionales: SISD.
Máquinas Vectoriales/Matriciales: SIMD.
Máquinas MIMD: Multiprocesadores/Multicomputadores.
Supercomputador: máquinas más potentes en cada momento. Hoy MIMD.
9
Niveles de paralelismo
UNIDAD DE CONTROL SEGMENTADA
PROCESAMIENTO PARALELO
Para conseguir eficiencia en el paralelismo se han asignado multitud de recursos, tanto desde el
punto de vista software como en el diseño de compiladores y sistemas operativos y hardware en
el desarrollo de nuevas arquitecturas. Estos estudios dan un contexto de paralelismo dividido en
dos grupos diferentes pero solapados.
Por un lado, encontramos el siguiente grupo.
Paralelismo en tiempo de
diseño de programa
(available parallelism)
Este paralelismo se centra en el momento de hacer el
programa, por lo que los sistemas operactivos y el
compilador
importancia. Este
paralelismo, se estudia conjuntamente con otras
asignaturas como las relacionas con la concurrencia y
los sistemas operativos.
tienen su
también
Paralelismo en tiempo de
ejecución (utilized
parallelism)
Es un paralelismo que se realiz
Comentarios de: Unidad de control segmentada / Procesamiento paralelo (0)
No hay comentarios