miércoles, 26 de agosto de 2015

Definiciones de Programación Paralela y Distribuida

Procesamiento Pipeline o Segmentado:


Es una técnica por medio de la cual se puede traslapar la ejecución de instrucciones. En la actualidad la segmentación es una de las tecnologías utilizadas para hacer procesadores más rápidos. Permite aumentar el rendimiento del funcionamiento en computadoras y dispositivos similares aplicándolo al microprocesador.

Consiste en la descomposición de la ejecución de un programa en varias etapas especializadas en realizar una tarea en específico, si bien estas etapas pueden requerir de que se ejecute una antes de ellos para ellas realizar su función, funcionan independientemente por lo cual, cuando una instrucción es procesada en la primera etapa y pasa a la segunda etapa, la primera etapa puede procesar inmediatamente la siguiente instrucción, sin esperar que la anterior sea procesada por todas las etapas.

Gráficamente se puede observar en la siguiente imagen:



Ley de Amdahl


La ley de Amdhal pone un límite superior a la ganancia en velocidad, y por tanto también a la eficiencia, de un sistema paralelo atendiendo al hecho, de que los procesos suelen tener partes que no pueden ser ejecutadas en paralelo, sino solo de forma secuencial pura.

Del tiempo total de ejecución del proceso, llamaremos s a la parte que no puede ser paralelizable y p al resto (paralelizable). Suponiendo condiciones ideales en la parte paralelizable del proceso p, tendremos que los tiempos mínimos de ejecución del proceso con un solo procesador y en el sistema paralelo con N procesadores.

De forma sencilla podemos enunciar la ley de Amdahl de la siguiente manera:

$$F_m = F_a ((1 - F_m)+ \frac{F_m}{A_m})$$
Donde:
$F_m$ = Tiempo de Ejecución mejorado
$F_a$ = Tiempo de Ejecución antiguo
$A_m$ = Factor de Mejora 

Lo más rescatable de la ley de Amdahl es el hecho de que el rendimiento de un sistema no aumenta por incrementarse indefinidamente el número de procesadores.

Ley de Gustafson


Establece que cualquier problema lo suficientemente grande puede ser eficientemente paralelizado, Se refiere a problemas con volumen de cálculo fijo en que se aumenta el número de procesadores, en la mayoría de los casos, cuando el volumen del problema crece, lo hace solo en su parte paralela, no en su parte secuencial. Ello hace que el cuello de botella secuencial tienda a cero cuando el volumen del problema aumenta.

Al aumentar el número de procesadores, el volumen de cálculo es mayor, esto afecta más a la parte paralela del problema, que a la parte secuencial. Esta ley puede quedar enunciada de la siguiente manera:

$$ S(N) = N - (N - 1)a$$
Donde:

$N = $ es el numero de procesadores
$S = $ es el aumento en velocidad
$a = $ es la parte no paralelizable del proceso

Esta ley indica que si existe una mejora en el procesamiento de la parte paralela de un proceso, al aumentar el número de procesadores, la cual se mantiene al momento de seguir aumentado el número de procesadores, siendo esto contradictorio a la ley de Amdhal, pero esto se debe a que parten de un fundamento diferente, mientras la de Amdahl considera procesos con un volumen de procesamiento fijo, la ley de Gustafson se refiere a problemas cuyo volumen de procesamiento puede aumentar según el número de procesadores, siendo esta última una situación más real.

Referencias:


No hay comentarios.:

Publicar un comentario