30.10.2014 Views

Granularidad y latencia

Granularidad y latencia

Granularidad y latencia

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!