PDF de programación - Multiprocesadores - El software en los multiprocesadores

Imágen de pdf Multiprocesadores - El software en los multiprocesadores

Multiprocesadores - El software en los multiprocesadoresgráfica de visualizaciones

Publicado el 29 de Julio del 2019
407 visualizaciones desde el 29 de Julio del 2019
617,5 KB
19 paginas
Creado hace 12a (21/03/2012)
MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES





MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

© 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

MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES



Índice

Presentación

La dificultad de crear programas de procesamiento paralelo

¿Por qué es más difícil desarrollar programas de procesamiento paralelo que programas secuenciales?

¿Por qué es difícil escribir programas de procesamiento paralelo que sean rápidos, especialmente cuando
aumenta el número de procesadores?

Escalado fuerte-débil

Consideraciones de diseño de un sistema operativo de multiprocesador

Procesamiento multithread y multiprocesadores monochip

Procesamiento multithread implícito y explícito

Caso real: Intel I

¿Cómo se sitúa Intel dentro de esta arquitectura multiprocesador/multithread de la que hablamos?

Caso real: Intel II

Resumen

4

5

5

5

7

8

11

12

15

15

17

19

3





Presentación

MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

En este tema, veremos cómo afecta al software que una máquina sea multiprocesador. Tanto al

sistema operativo como a las aplicaciones en general.

Veremos cuáles son los puntos fundamentales en el diseño de aplicaciones para que estas

aprovechen las características de máquinas multiprocesador.

Para terminar, haremos un estudio de una de las familias más extendidas tanto dentro de los

ordenadores personales como de los grandes supercomputadores: la familia Intel.

Analizaremos cuales son las tendencias más modernas que Intel implementa para optimizar la

ejecución de código y explicaremos por qué el de Intel es un buen procesador tanto para uso

personal como para uso intensivo.

El tema lo desglosaremos en los siguientes puntos fundamentales:

Cómo crear programas de procesamiento paralelo y los tipos de paralelización.

Describiremos el multiprocesamiento en un solo chip y en multiprocesadores.

Caso real: Intel.

4





MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

La dificultad de crear programas de procesamiento paralelo

La dificultad del paralelismo no solo está en el hardware, tal vez la principal dificultad esté en el

software. Hay muy pocas aplicaciones que se hayan reescrito para completar sus tareas en

menos tiempo en un multiprocesador. Es difícil escribir software que utilice varios procesadores

para terminar una tarea de forma más rápida, y el problema empeora al aumentar el número de

procesadores.

¿Por qué es más difícil desarrollar programas de procesamiento paralelo que programas
secuenciales?

Como es lógico pensar, para que un programa sea eficaz en una máquina multiprocesador, debe

aprovechar al máximo las características de una arquitectura paralela. Por el contrario, en un

monoprocesador es preferible utilizar un programa secuencial pues la programación es más

sencilla y el aumento de eficiencia es poco significativo. De hecho, las técnicas de diseño de

monoprocesadores, tales como súper escalar y ejecución fuera de orden, aprovechan el

paralelismo a nivel de instrucción (que veremos en este tema) normalmente sin la participación

del programador.

¿Por qué es difícil escribir programas de procesamiento paralelo que sean rápidos,
especialmente cuando aumenta el número de procesadores?

Porque para que sea eficiente, el software tiene que poder dividirse en tantas subtareas como

procesadores tenga la máquina. Pensemos en lo que cuesta hacer un trabajo entre un grupo de

compañeros de prácticas cuando dicho grupo no tiene dos o tres, sino 50 o 60 integrantes y, a

continuación, supongamos que la tarea es difícil de dividir, ya que para que un compañero pueda

hacer su parte del trabajo, necesita resultados de otro compañero. O supongamos que el trabajo

es tan pequeño que se tarda más tiempo en dividirlo y juntarlo, que en que una sola persona lo

haga completamente.

5





MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

Otro riesgo para las prestaciones se produciría cuando hay que emplear demasiado tiempo en

comunicarse con sus compañeros en lugar de trabajar en su parte de la tarea. Podemos extraer

algunas conclusiones de esta analogía con la programación paralela, los desafíos incluyen la

planificación de las tareas, el equilibrio de la carga, el tiempo de sincronización y la sobrecarga

de las comunicaciones entre colaboradores. El reto es todavía más difícil cuantos más

compañeros participen en la resolución de la actividad y cuantos más procesadores estén

disponibles para la programación paralela.

No nos olvidemos de lo visto sobre la ley de Amdahl. Esta ley nos recuerda que incluso

las partes pequeñas de un programa deben paralelizarse si se quiere hacer un buen

uso de los muchos núcleos disponibles.

División

Y dividirlo cumpliendo unas premisas, como por ejemplo que la división sea equitativa en
tiempo y complejidad, ya que si no, un compañero puede terminar más tarde que los
demás, lo que la mejora es poco significativo.

Técnicas:súper escalar y ejecución fuera de orden

técnicas disminuyen

Estas
reescritura de programas para
multiprocesadores, porque sin que los programadores tengan que hacer nada más, sus
programas secuenciales se ejecutarán más rápido en los nuevos computadores.

la demanda de

6





Escalado fuerte-débil

MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

En un multiprocesador, es más difícil obtener buenas aceleraciones manteniendo el tamaño del

problema fijo que incrementando el tamaño del problema. Esto nos permite introducir dos

términos que describen dos formas diferentes de escalado.

Escalado fuerte

Hace referencia a la aceleración con un tamaño de
problema fijo

Escalado débil

Implica que el
proporcionalmente al número de procesadores.

tamaño del problema aumenta

Supongamos que el tamaño del problema, M, es el conjunto de trabajo en memoria principal y

que el número de procesadores de que se dispone es P. Entonces, la memoria por procesador

en escalado fuerte es aproximadamente M/P y, en escalado débil, es aproximadamente M.

Dependiendo del tipo de aplicación, se puede defender cualquier tipo de escalado. Por ejemplo,

los programas de pruebas benchmark de una base de datos crédito-débito requieren que el

número de cuentas de clientes aumente para aumentar el número de transacciones por minuto.

El argumento utilizado reside en lo absurdo que resulta pensar que un número dado de clientes,

de repente, va a utilizar los cajeros automáticos 100 veces al día simplemente porque el banco

tiene un computador más rápido. En lugar de esto, si se quiere demostrar que el sistema puede

multiplicar por 100 el número de transacciones por minuto, se debe hacer el experimento

multiplicando por 100 el número de clientes.

Este último ejemplo muestra la importancia del equilibrio de la carga. A continuación, puedes

encontrar las definiciones correspondientes a estos dos tipos de escalado.

Escalado fuerte

Aceleración obtenida en un multiprocesador sin
aumentar el tamaño del problema.

Escalado débil

Aceleración obtenida en un multiprocesador aumentando
el tamaño del problema proporcionalmente al número de
procesadores.

7





MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

Consideraciones de diseño de un sistema operativo de multiprocesador

Un sistema operativo de SMP (Symmetric Multiprocessor) gestiona los procesadores y demás

recursos del computador para que el usuario perciba un solo sistema operativo controlando los

recursos del sistema. De hecho, el computador debería parecer un sistema monoprocesador con

multiprogramación.

Tanto en un sistema multiprocesador como en un sistema monoprocesador, pueden estar activos

varios trabajos o procesos al mismo tiempo, y es responsabilidad del sistema operativo planificar

su ejecución y asignar los recursos.

Un usuario puede desarrollar aplicaciones que utilicen varios procesos o varios hilos dentro de un

proceso sin tener en cuenta si se dispone de uno o de varios procesadores.

Así, un sistema operativo de multiprocesador debe proporcionar toda la funcionalidad

de un sistema operativo con multiprogramación y, además, las características

adicionales que permitan utilizar varios procesadores.

Entre los puntos clave de diseño están los siguientes.

8





Procesos concurrentes
simultáneos

MULTIPROCESADORES

EL SOFTWARE EN LOS MULTIPROCESADORES

Las rutinas del sistema operativo deben ser reentrantes

para permitir que varios procesadores puedan ejecutar

simultáneamente el mismo código IS.

Con varios procesadores ejecutando la misma o distintas

partes del sistema operativo, las tablas y las estructuras

de gestión del sistema operativo deben manejarse

apropiadamente para evitar bloqueos u operaciones no

válidas.

La planificación puede realizarla cualquier procesador,

por lo que deben evitarse los conflictos.

Planificación

El planificador debe asignar los procesos preparados a

los procesadores disponibles.

Sincronización

Puesto que hay varios procesos que pueden acceder a

espacios de memoria y a recursos de E/S compartidos,

debe proporciona
  • Links de descarga
http://lwp-l.com/pdf16381

Comentarios de: Multiprocesadores - El software en los multiprocesadores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad