SISTEMAS DISTRIBUIDOS Y PARALELOS - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

SISTEMAS DISTRIBUIDOS Y PARALELOS

Description:

Para habilitar el uso de paralelismo, es necesario dividir la computaci n en tareas o procesos. ... Reduce los costos de creaci n de procesos y comunicaci n ... – PowerPoint PPT presentation

Number of Views:172
Avg rating:3.0/5.0
Slides: 46
Provided by: Marc328
Category:

less

Transcript and Presenter's Notes

Title: SISTEMAS DISTRIBUIDOS Y PARALELOS


1

PROGRAMACIÓN PARALELA -2004-
2
Medidas de Performance
  • Aceleración
  • Costo
  • Eficiencia
  • Escalabilidad
  • Portabilidad
  • GRANULARIDAD PARALELA

3
Granularidad
Para habilitar el uso de paralelismo, es
necesario dividir la computación en tareas o
procesos. El tamaño de un proceso puede ser
descripto por su Granularidad TAMAÑO DE
COMPUTACIÓN ENTRE DOS PUNTOS CONSECUTIVOS DE
COMUNICACIÓN O SINCRONIZACIÓN
4
Granularidad gruesa ?
Comunicación y sincronización
computo
Comunicación y sincronización
5
Granularidad FINA ?
Comunicación y sincronización
computo
Comunicación y sincronización
computo
Comunicación y sincronización
computo
Comunicación
6
Granularidad
Como métrica de Granularidad, se puede utilizar
una relación entre computación, comunicación
Granularidad Tcomp / Tcomm Aumentar la
granularidad Reduce los costos de creación de
procesos y comunicación entre procesos Reduce el
número de procesos concurrentes y cantidad de
paralelismo
7
Granularidad
Granularidad Fina
Granularidad Gruesa
8
ESCALABILIDAD
Escalabilidad de harware Es la capacidad de una
arquitectura, que al crecer en tamaño es capaz
de lograr mejoras de performance
Escalabilidad con tamaño de problema
fijo Analizar como varía Tpar y la Eficiencia
(costo secuencial vs. costo paralelo) al
incrementar el número de Procesadores Si
quiero mantener una eficiencia del 50, cuántos
procesadores debería utilizar? Hay que observar
que E puede decrementar al aumentar P! Hay que
observar que T puede incrementar si el modelo se
computación incluye potencias de P !
9
ESCALABILIDAD
Las Computadoras paralelas son frecuentemente
utilizadas no solo para resolver más rápido
problemas de tamaño fijo, sino también resolver
problemas más grandes. Escalabilidad de
software Es la capacidad de un software, que al
crecer el tamaño del problema no decrementa su
performance
Tamaño del problema tamaño del input o Número
de pasos de cómputo en el mejor alg. Secuencial.
10
PORTABILIDAD

11
PERFORMANCE
  • Es deseable escribir e implementar programas que
    satisfagan requerimientos de correctitud y
    performance.
  • Performance es un concepto complejo y
    multifacético
  • Requerimientos cruciales de la computación
    paralela son
  • La velocidad de ejecución y eficiencia de los
    programas
  • La escalabilidad
  • La portabilidad

12
ANÁLISIS DE PERFORMANCE
  • Muchos aspectos están involucrados en una
    implementación paralela eficiente, escalable y
    portable
  • el tipo de descomposición del problema,
  • el tipo de algoritmo escogido,
  • el tipo de arquitectura,
  • el número de procesadores a utilizar,
  • la topología de inteconexión, etc.
  • Los desbalances en los sistemas de hardware,
    implementaciones algorítmicas ineficientes y
    desacuerdos del algoritmo y la arquitectura son
    la principal causa de una implementación pobre.

13
ANÁLISIS DE PERFORMANCE
  • Esta naturaleza multidimensional de programas
    paralelos es una dificultad añadida para el
    análisis de performance paralela.
  • Para que el costo del ciclo de desarrollo de un
    programa paralelo sea mínimo, es de vital
    importancia resolver estos aspectos claves tan
    tempranamente como sea posible.
  • Los métodos de Análisis y Predicción de
    Performance proveen guías para la toma de estas
    decisiones.

14
MODELOS DE PERFORMANCE
Pueden ser utilizados para comparar la
eficiencia de distintos algoritmos, evaluar
escalabilidad, identificar cuellos de botella y
otras ineficiencias ANTES de Invertir un
esfuerzo significante de implementación
15
ANÁLISIS DE PERFORMANCE
  • Dos técnicas (ramas) son comúnmente usadas para
    el análisis, evaluación y predicción de la
    performance
  • Medición Experimental (chequea de la performance
    durante
  • el run-time del programa paralelo)
  • Modelización (trabaja sobre un modelo abstracto
    del
  • sistema real, utiliza técnicas analíticas o de
    simulación)
  • Ambas técnicas juegan un rol muy importante en
    estudiar la performance de un sistema y su
    elección considera factores dependientes de los
    objetivos de estudio.

16
ENFOQUES PARA MODELAR PERFORMANCE
  • Extrapolación a partir de Observaciones
    Realizadas
  • Ley de Amdahls
  • Análisis Asintótico
  • Son adecuadas ?

17
Extrapolación desde Observaciones
  • Se ha implementado un algoritmo paralelo A y se
    ha logrado un Sup de 10.8 utilizando 12
    procesadores con un tamaño
  • del problema de SIZE100
  • Por ejemplo
  • T(Aseq) escala a raíz de (SIZESIZE2)

18
Extrapolación desde Observaciones
  • T(Apar) SIZESIZE2/P particiona toda la
    computación y replica la componente SIZE en todo
    procesador
  • T(Apar) (SIZESIZE2)/P100 particiona toda
    la computación e introduce un costo adicional de
    100
  • T(Apar) (SIZESIZE2)/P0.6P particiona toda la
    computación e introduce un costo adicional de
    0.6P

19
Extrapolación desde Observaciones
20
Extrapolación desde Observaciones
  • Se ha implementado un algoritmo paralelo A y se
    ha logrado un Sup de 10.8 utilizando 12
    procesadores con un tamaño del problema de
    SIZE100
  • Válido como medida de calidad de este único punto
    de observación.
  • Inválido como medida de performance del algoritmo
    A.

21
Ley de Amdahl
  • Todo algoritmo tiene una componente secuencial
    que eventualmente limitará el speedup alcanzado
    sobre una computadora paralela.
  • Si la componente secuencial es un f del tiempo
    paralelo, entonces el máximo Sup posible en una
    computadora paralela será 100/f
  • Ej Componente sec. 5 , ? Max(Sup )
    1/.0520

22
Ley de Amdahl (?)
  • La ley de Amdahl limita el uso de paralelismo
  • La escalabilidad de algunas soluciones puede
    estar limitada debido a costos de comunicación
  • o demasiados tiempos ociosos, más que por la
    existencia de componentes secuenciales

23
Análisis Asintótico
Frecuentemente se caracteriza la performance de
un algoritmo paralelo de la siguiente manera
Un Análisis asintótico revela que el algoritmo
requiere un tiempo de O(SIZE log SIZE) utilizando
un número de procesadores de O(SIZE) Lo
anterior establece que el costo varía cuando
SIZE y P son grandes (tienden a infinito)
24
Análisis Asintótico
  • Juega un rol muy importante en el diseño de
    programas paralelos
  • Sin embargo hay que tener cuidado en algunos
    aspectos
  • Ignora el análisis de problemas de tamaño
    pequeño.
  • Ignora el análisis de problemas resueltos con un
    número pequeño de procesadores.
  • No considera costos absolutos.
  • Considera modelos de máquinas idealizadas que
    pueden variar de las computadoras reales (Modelo
    PRAM)

25
Modelos de Performance
  • Un buen modelo debe ser capaz de explicar
    observaciones disponibles y predecir
    observaciones futuras.
  • La ley de Amdahl, la extrapolación de
    observaciones y el análisis asintótico no
    satisfacen completamente estos requerimientos.

26
Modelos de Performance
  • Existen varios modelos de performance teóricos
  • PRAM
  • BSP
  • Modelo Colectivo
  • Redes
  • LogP
  • Oblivious BSP

Estos modelos incluyen demasiados detalles como
para ser prácticos para programadores de
aplicaciones paralelas
27
Modelo de Performance Inicial
  • (Revisión)
  • Tiempo de Ejecución
  • Escalabilidad

28
Tiempo de Ejecución
  • Los modelos propuestos consideran como métrica
    específica, el tiempo de ejecución (T), como
    una función del tamaño del problema SIZE, del
    número de procesadores P, del número de tareas U
    y de otras características del algoritmo y del
    hardware
  • T f(SIZE, P, U,....)
  • T tiempo de ejecución de un programa paralelo
    (tiempo transcurrido desde que el primer
    procesador comienza a ejecutar sobre el problema
    hasta que el último procesador completa la
    ejecución)

29
Tiempo de Ejecución
  • T j T jcompT jcommT jidle Proc j
  • Alt 1 T max(T0, T1,..., TP-1)
  • Alt. 2 T (T0 T1...TP-1)/P
  • T ( )/P

30
Tiempo de Computación
  • Generalmente quedará expresado en función de
    determinantes del algoritmo (tamaño de los datos,
    tamaño de las estructuras de datos, número de
    tareas, número de procesadores).
  • También, Tcomp puede depender de características
    del procesador y de su sistema de memoria.

31
Tiempo de Comunicación
  • Es el tiempo gastado en enviar y recibir
    mensajes, e incluye el tiempo de sincronización.
  • En una arquitectura ideal, el costo de enviar
    mensajes entre dos tareas ubicadas en dos
    procesadores distintos puede ser representada
    por
  • ts tiempo de startup del mensaje (para
    iniciar la comunicación)
  • tw tiempo de transferencia por palabra

32
Tiempo de Comunicación
  • El tiempo requerido para enviar un mensaje de L
    palabras es
  • Tmgs ts tw L

ts y tw Deberán ser obtenidos empíricamente
para cada arquitectura !
Sus valores, pueden depender del patrón de
comunicación involucrado? Si su rpta es sí
Cómo modificaría el modelo?
33
Tiempo Idle
  • Es difícil de determinar ya que generalmente
    depende del orden de ejecución de las operaciones
    de computación y comunicación.
  • Un proceso puede estar ocioso debido a la falta
    de computación o a la no disponibilidad de datos
    (ambas situaciones deberían tratar de evitarse)
  • técnicas de balance de carga
  • técnicas de superposición de comunicación con
    computación
  • utilizar primitivos de comunicación no bloqueantes

34
Ejemplo Diferencias Finitas de una Dimensión
  • Considere un problema de diferencia finita de
    una- dimensión, en el cual se tiene un vector
    X(0) de dimensión N y se debe computar X(T)
    donde

35
Ejemplo Diferencias Finitas de una Dimensión
36
Ejemplo Diferencias Finitas de dos Dimensiones
37
Ejemplo Diferencias Finitas de una Dimensión
Un algoritmo paralelo para este programa puede
crear N tareas, una para cada punto en el
vector. Cada proceso es responsable de computar
el valor final de X(t) en T pasos. Cada proceso
i en el paso t debe 1- Enviar sus datos Xi(t)
a sus vecinos de derecha e izquierda 2. Recibir
Xi-1(t) y Xi1(t) de sus vecinos de izquierda y
derecha 3. Utilizar estos valores para computar
Xi(t1)
38
Ejemplo Diferencias Finitas de Dos Dimensión
Un algoritmo paralelo para este programa puede
crear N tareas, una para cada punto en el
vector. Cada proceso es responsable de computar
el valor final de X(t) en T pasos. Cada proceso
(i,j) en el paso t debe 1- Enviar sus datos
Xi,j(t) a sus vecinos en cada dimensión 2.
Recibir Xi-1,j (t) , Xi1,j (t) , Xi,j-1 (t) y
Xi,j1 (t) dede sus vecinos de cada dimesión 3.
Utilizar estos valores para computar Xi,j(t1)
39
Ejemplo Diferencias Finitas de una-Dimensión
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de
1-Dimesión N) Tcomp tc Tcomm ts
tw 2 2 l l longitud en palabras
de cada dato
L
40
Ejemplo Diferencias Finitas de dos-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de
2-Dimensiones NxN) Tcomp tc
Tcomm ts tw 2 2 2 l
41
Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de 3
Dimesiones NxNxN) Tcomp tc Tcomm ts
tw 3 2 2 l Tcomm ts tw d 2
2 l
42
Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 2 procesadores para
resolver el problema tridimensional NXxNyxNz)
43
Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 2 procesadores para
resolver el problema tridimensional
NXxNyxNz) Tsec tc NX Ny Nz Tcomp tc
NX Ny / 2 Nz Tcomm ( ts tw
2 NX Nz l) Tpar tc NX Ny
/2 Nz ts tw 2 NX Nz l
44
Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 4 procesadores para
resolver el problema tridimensional NX x Ny x
Nz) Cómo particionarían el problema?.
45
Escalabilidad
  • Ley de Gustafson
  • La ley hace la observación que un multiprocesador
    más grande debería resolver un problema mas
    grande en un tiempo razonable
  • sparte secuencial
  • pparte paralela
  • sp1
  • T1spP
  • Tparsp

Sup(P) (spP)/(sp) Sup(P)s(1-P)P
Write a Comment
User Comments (0)
About PowerShow.com