Granularidad y latencia
Granularidad y latencia
Granularidad y latencia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Niveles de paralelismo y <strong>latencia</strong>s<br />
de comunicación<br />
• Niveles de paralelismo.<br />
• <strong>Granularidad</strong> o tamaño de grano.<br />
• Latencia de comunicación.<br />
• Particionado de los programas.<br />
• Empaquetado de granos.<br />
• Planificación (Scheduling)<br />
27<br />
<strong>Granularidad</strong> y <strong>latencia</strong><br />
• El tamaño de grano o granularidad mide la<br />
cantidad de procesamiento necesaria en un<br />
proceso.<br />
• Medida sencilla: Número de instrucciones en un<br />
grano (segmento de programa).<br />
• El tamaño de grano se describe habitualmente<br />
como fino, medio y grueso.<br />
• La granularidad y la <strong>latencia</strong> están muy<br />
relacionadas.<br />
• Latencia: medida de tiempo por la carga añadida<br />
de comunicación en el sistema.<br />
28<br />
Tema 2 1
¨<br />
¦<br />
¦<br />
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
<strong>Granularidad</strong> y <strong>latencia</strong><br />
• <strong>Granularidad</strong> gruesa: muchas instrucciones<br />
secuenciales (no necesitan comunicación). El<br />
proceso necesita poca comunicación.<br />
• <strong>Granularidad</strong> fina: pocas instrucciones<br />
secuenciales. El proceso necesita mucha<br />
comunicación.<br />
• Una medida de la granularidad en relación con<br />
la <strong>latencia</strong>:<br />
<br />
¦ §<br />
=<br />
¡£¢¥¤<br />
<br />
¨ §©¨<br />
¡£¢<br />
29<br />
Particionado de programas y planificación<br />
• Los programas se pueden particionar en distintos<br />
módulos concurrentes (se pueden ejecutar en<br />
paralelo), estos módulos son los granos. El<br />
particionado puede realizarse en distintos niveles<br />
caracterizados por distintos tamaños de grano.<br />
• La planificación (scheduling) consiste en asignar<br />
en un orden determinado los granos a los<br />
distintos procesadores.<br />
• La planificación puede ser estática (antes de la<br />
ejecución) o dinámica (en tiempo de ejecución<br />
se puede modificar).<br />
30<br />
Tema 2 2
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Niveles de paralelismo<br />
Mayor demanda de comunicacíones y de<br />
planificación<br />
!"$#% <br />
!"$#©'<br />
!"$#&<br />
!"$#©(<br />
!"$#*) <br />
Trabajos o programas<br />
Subprogramas, pasos de trabajos o<br />
partes relacionadas de un programa<br />
Procedimientos, subrutinas, tareas o<br />
corrutinas<br />
Bucles no recursivos o iteraciones<br />
desplegadas<br />
Instrucciones o sentencias<br />
Grano grueso<br />
Grano<br />
medio Grano fino<br />
Mayor grado de paralelismo<br />
31<br />
Nivel de instrucción o sentencia<br />
• Grano fino. Menos de 20 instrucciones.<br />
• Paralelismo de 2 a varios miles, dependiendo<br />
del programa concreto.<br />
• Media de paralelismo de 5 (raramente mayor de<br />
7) en un programa ordinario.<br />
• Para aplicaciones científicas se han medido de<br />
500 a 3000 sentencias concurrentes en un<br />
entorno ideal.<br />
• Necesidad de un compilador con optimización.<br />
32<br />
Tema 2 3
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Nivel de bucle<br />
• Operaciones iterativas en bucles.<br />
• Un bucle típico contiene menos de 500<br />
instrucciones.<br />
• La construcción más optimizada para<br />
ordenadores paralelos.<br />
• Los bucles recursivos son difíciles de<br />
paralelizar.<br />
• Grano fino.<br />
33<br />
Nivel de procedimientos<br />
• Grano medio.<br />
• Típicamente menos de 2000 instrucciones.<br />
• Detección de paralelismo más difícil que<br />
en grano fino.<br />
• Análisis de dependencias entre<br />
procedimientos más complejo.<br />
• Menores requerimientos de comunicación.<br />
34<br />
Tema 2 4
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Nivel de subprograma<br />
• Grano medio o grueso.<br />
• Miles de instrucciones.<br />
• Los subprogramas pueden ser planificados para<br />
diferentes procesadores.<br />
• También es adecuado para su ejecución en<br />
multicomputadores.<br />
• No existen buenos compiladores. La<br />
paralelización la realiza el diseñador de<br />
algoritmos o el programador.<br />
35<br />
Nivel de programa<br />
• Ejecución paralela de trabajos<br />
esencialmente independientes en un<br />
ordenador paralelo.<br />
• Tamaño de grano: Puede haber millones<br />
de instrucciones por programa.<br />
• Apropiado para superordenadores con<br />
pocos procesadores muy potentes.<br />
• Gestionado por el sistema operativo.<br />
36<br />
Tema 2 5
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Niveles de paralelismo y granulometría<br />
• En general, cuanto más fino sea el grano mayor<br />
potencial de paralelismo pero mayor penalización<br />
en comunicaciones y en planificación.<br />
• El paralelismo masivo se suele explotar al nivel<br />
de grano fino, como el paralelismo de datos en<br />
ordenadores SIMD y MIMD.<br />
• A menudo se utiliza la comunicación mediante<br />
variables compartidas para procesamiento de<br />
grano fino y medio.<br />
• Los multicomputadores de paso de mensajes se<br />
utilizan preferiblemente para grano medio y<br />
grueso.<br />
37<br />
Latencia de comunicación<br />
• La mejora de prestaciones en un<br />
ordenador depende del equilibrado entre<br />
la granularidad y la <strong>latencia</strong>.<br />
• La <strong>latencia</strong> impone una limitación a la<br />
escalabilidad en el tamaño de la máquina.<br />
• La <strong>latencia</strong> de memoria aumenta al<br />
hacerlo la capacidad de memoria.<br />
38<br />
Tema 2 6
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Latencia de comunicación<br />
• Latencia en las comunicaciones<br />
interprocesadores. En general, n tareas<br />
comunicándose todas, unas con otras,<br />
necesitan n(n-1)/2 enlaces de comunicación. La<br />
complejidad crece cuadráticamente. Habrá un<br />
valor límite del número de procesadores.<br />
• La solicitud de comunicaciones puede limitar la<br />
granularidad o el paralelismo. Se requiere un<br />
compromiso entre comunicaciones y<br />
granularidad.<br />
39<br />
Análisis mediante grafos de la<br />
granularidad de programas<br />
• Permite determinar el mejor tamaño de grano y<br />
su correspondiente planificación (scheduling)<br />
estática (no cambia en tiempo de ejecución).<br />
• Nodos: unidad computacional.<br />
• Tamaño de grano: nº ciclos máquina básicos<br />
(procesador y memoria) para ejecutar el nodo.<br />
• La <strong>latencia</strong> de comunicación entre nodos se<br />
indica en el segmento de enlace. Es el retraso<br />
total, incluyendo <strong>latencia</strong>s de memoria de<br />
comunicación entre los nodos.<br />
40<br />
Tema 2 7
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Planificación en función de la<br />
<strong>latencia</strong> de comunicación<br />
1: a = 4;<br />
2: b = a × 5;<br />
3: c = a + 7;<br />
41<br />
Duplicado de nodos en la planificación para<br />
eliminar retraso de comunicación<br />
1: a = 5;<br />
2: b = a * 3;<br />
3: c = a * 6;<br />
4: d = b + c;<br />
5: e = c / 3;<br />
42<br />
Tema 2 8
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Modelos de programación<br />
• Las aplicaciones se escriben en un modelo<br />
de programación concreto.<br />
• Abstraen la arquitectura real de la<br />
máquina.<br />
• Caracterizados por la forma de realizar la<br />
comunicación y la sincronización.<br />
• Una arquitectura concreta admite<br />
diferentes modelos pero será más proximo<br />
a uno de ellos (tendrá mayor rendimiento).<br />
43<br />
Modelos de programación<br />
• El usuario utiliza un modelo de<br />
programación mediante las primitivas de<br />
comunicación.<br />
• Las primitivas software que utiliza el<br />
usuario tendrán una mayor o menor<br />
cercanía a las primitivas hardware reales.<br />
• Tipos de modelos de programación:<br />
– Modelo de memoria compartida.<br />
– Modelo de paso de mensajes.<br />
44<br />
Tema 2 9
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Modelo de memoria compartida<br />
• Adecuado para sistemas multiprocesadores.<br />
• Comunicación implícita, se realiza mediante<br />
variables compartidas.<br />
• Facilita grano fino.<br />
• Más fácil de programar.<br />
• En arquitecturas con memoria distribuida es<br />
más difícil de predecir y optimizar las<br />
prestaciones.<br />
45<br />
Modelo de paso de mensajes<br />
• Adecuado para multicomputadores.<br />
• Habitualmente grano medio y grueso.<br />
• Comunicación explícita.<br />
• Más difícil de programar.<br />
• En arquitecturas distribuidas es más fácil<br />
de predecir y optimizar el rendimiento.<br />
46<br />
Tema 2 10
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Primitivas para memoria<br />
compartida<br />
47<br />
Primitivas para paso de mensajes<br />
48<br />
Tema 2 11
Sistemas de Multiprocesamiento - 5º<br />
IAEI<br />
Pasos del proceso de<br />
paralelización<br />
• Descomposición del trabajo en tareas.<br />
• Asignación de tareas a procesos.<br />
• Organización del acceso a los datos, de la<br />
comunicación y la sincronización. Aquí se tiene<br />
en cuenta el modelo de programación.<br />
• Mapeado: asignación de procesos (concepto<br />
abstracto) a procesadores (recursos físicos). Se<br />
tiene en cuenta la máquina real.<br />
49<br />
Tema 2 12