Download - Algorítmica paralela

Transcript
Page 1: Algorítmica paralela

Algorítmica paralela

• Modelos ideales de una implantación

paralela

– PRAM

– De circuitos

– Redes

• Compleijidad de los algoritmos paralelos

• Métricas para determinar su desempeño

Page 2: Algorítmica paralela

Modelos ideales de una implantación paralela

• Se consideran a las computadoras sin

restricción

• En el número de procesadores

• En el acceso físico a la memoria para

leer o escribir datos

Page 3: Algorítmica paralela

Modelos ideales de una implantación paralela

• Con los modelos se obtiene:

• Las partes o segmentos que se pueden ejecutar en paralelo

• La dependencia de los datos en el proceso de cálculo

• El tiempo ideal de la ejecución paralela

• El número de procesadores requeridos para alcanzar ese tiempo de ejecución ideal.

Page 4: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Es una máquina ideal de p procesadores con una memoria global.

• Cada procesador puede realizar en un ciclo:– una lectura– una escritura – una operación de cómputo.

Page 5: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• En el modelo de memoria global compartida se debe de especificar cómo se hacen las lecturas y escrituras concurrentes en la misma localidad.

• Lectura exclusiva (ER) • Escritura exclusiva (EW) • Lectura concurrente (CR)• Escritura concurrente (CW)

Page 6: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Los modelos PRAM se clasifican de acuerdo a las formas de actualización de la memoria, en:

• EREW (Exclusive Read, Exclusive Write)

• ERCW (Exclusive Read, Concurrent Write)

• CREW (Concurrent Read, Exclusive Write)

• CRCW (Concurrent Read, Concurrent Write)

Page 7: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Modelo PRAM CRCW• Común: Todas las escrituras simultáneas almacenan

el mismo valor en la localidad de memoria

seleccionada.

• Arbitraria: Cualquiera de los valores escritos

permanece, aquí no se puede saber que procesador

escribió de los que intentaron.

• Prioritaria: El procesador de mayor prioridad será el

que logrará escribir en la memoria.

Page 8: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Encontrar el número mayor del arreglo A={5, 6, 9, 2, 9, 7, 8, 3} con PRAM-CRCW Seudocódigo Pasos de ejecución n = longitud de (A) (1) en paralelo i = 0 ... n-1 hacer m[i] = V (1) en paralelo i, j = 0 ... n-1 hacer sí A[i] < A[j] entonces m[i] = F (2) en paralelo i = 0 ... n – 1 hacer sí m[i] = V entonces (1) max = A[i] (1)

Page 9: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Comparación en cada procesador del algoritmo PRAM-CRCW

i\j 5 6 9 2 9 7 8 3 m

5 F V V F V V V F F

6 F F V F V V V F F

9 F F F F F F F F V

2 V V V F V V V V F

9 F F F F F F F F V

7 F F V F V F V F F

8 F F V F V F F F F

3 V V V F V V V F F

Page 10: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• El algoritmo paralelo requiere de 6 pasos para concluir. Sí n es el número de datos a comparar

• Su complejidad asintótica temporal es T(n) = 6 = O(1).

• Se requieren n2 procesadores para ejecutarlo, por lo que su complejidad de hardware es H(n) = n2.

Page 11: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• Encontrar el número mayor del arreglo A, se analiza en una computadora PRAM-EREW.

Page 12: Algorítmica paralela

Modelo PRAM (Parallel Random Access Machine)

• El algoritmo paralelo requiere de 3 pasos

para su ejecución, esto es log28.

• Por tanto, el tiempo paralelo será T(n) =

3 = log28 = O(log2n).

• Con respecto al hardware, se requerirán

n/2 procesadores, por lo que H(n) = O(n).

Page 13: Algorítmica paralela

Modelo de circuitos

• n nodos de entrada con grado de entrada cero, los cuales contienen los datos de inicio x1, x2, ..., xn

• Nodos de operación con grado de entrada dos, etiquetados con alguno de los operadores aritméticos o booleanos.

• m nodos de salida con grado de salida cero.

Page 14: Algorítmica paralela

Modelo de circuitos

Page 15: Algorítmica paralela

Modelo de circuitos

• La profundidad d(n) de un circuito es la longitud del camino mas largo, en función del número de operaciones, de cualquier entrada a una salida de C(n).

• El ancho w(n) es el máximo número de operaciones realizadas en paralelo en cualquier paso:

iwndi

maxnw

1

Page 16: Algorítmica paralela

Modelo de circuitos

• El tamaño de un circuito s(n) es el número total de operaciones en los nodos:

H(n) w(n)= 2

T(n) d(n) = 2

nd

ii nwndwns

1

Page 17: Algorítmica paralela

Modelo de redes

• El algoritmo del problema queda definido

mediante Galg = {Nt, Ti, Cij, Zij}.

• Nt son las tareas concurrentes y se representan por

círculos

• Ti tiempo de ejecución de la tarea i

• Cij volumen de comunicación de la tarea i a la j

• Zij es el retraso y representa por una D en el grafo

Page 18: Algorítmica paralela

Modelo de redes

a(n) = 45b(n-1) + 10c(n) + u(n)

b(n) = 10a(n) + c(n)

c(n) = a(n-1) + c(n-1)

• Donde:

– u(n) es una entrada

– los datos son de 4 bytes

Page 19: Algorítmica paralela

Modelo de redes

100

001

100

,

444

004

440

,1,2,4,3 ,,lg jijiita ZCTNG

Page 20: Algorítmica paralela

Modelo de redes

• (H(n)) = 3 procesadoress unidades

• (T(n)) = 6 unidades (un período)

Page 21: Algorítmica paralela

Complejidad de los algoritmos paralelos

• Secuencial– Tamaño de la entrada (n)– La complejidad temporal del algoritmo O– La calidad del código generado – La velocidad de la máquina

• Clasificación– Polinomiales (P)– NP

Page 22: Algorítmica paralela

Complejidad de los algoritmos paralelos

• En los algoritmos paralelos, clase NC:

– Tiempo de ejecución polinomial en función del

logaritmo del tamaño de la entrada (log n)k

– Número de procesadores polinomial (nk).

• A estos algoritmos se les llama algoritmos

eficientemente paralelizables

• Los problemas NC están dentro de P

Page 23: Algorítmica paralela

Complejidad de los algoritmos paralelos

Page 24: Algorítmica paralela

Métricas para determinar su desempeño

• Ejecuciones paralelas (tiempo requerido)

• Trabajo

• Aceleración, asintótica: S() y S(p)

• Eficiencia E(p)

• Redundancia R(p)

• Utilización del sistema U(p)

• Calidad Q(p)

Page 25: Algorítmica paralela

Métricas para determinar su desempeño

• Tiempo de ejecución (Secuencial)– Se mide en segundos o en el número de operaciones

requeridos por el proceso de cálculo An para una entrada de datos n.

– Donde:– m: grado de paralelismo (número de tareas que se

ejecutan en un instante dado)

– ti: tiempo total en que hay exactamente i procesadores trabajando en paralelo

m

iinn itAWAT

11

Page 26: Algorítmica paralela

Métricas para determinar su desempeño

• Tiempo de ejecución en paralelo obtenido de los modelos descritos.

• No se tiene un límite en el número de procesadores; a éste se le denomina “tiempo asintótico” y se determina por:

m

iin tAT

1

Page 27: Algorítmica paralela

Métricas para determinar su desempeño

• Trabajo

• Se define como el número de operaciones que se ejecutan durante el proceso de cálculo y se determina por:

m

ii

AT

iin itWAW

n

11

Page 28: Algorítmica paralela

Métricas para determinar su desempeño

71111121

nAT

iin WAW

712511

m

iin itAW

Page 29: Algorítmica paralela

Métricas para determinar su desempeño

• Paradigma de trabajo-tiempo de Brent• Cuando se tiene disponible un número de

procesadores igual al requerido por los modelos descritos, Tp(An) = T(An).

• Pero cuando el número de procesadores es menor, el trabajo que se realiza se debe repartir entre los procesadores disponibles. El tiempo de ejecución se incrementa entonces, y está acotado por la relación siguiente:

Page 30: Algorítmica paralela

Métricas para determinar su desempeño

• Aceleraciones S() y S(p)– La aceleración asintótica S(), es la relación entre

el tiempo necesario para resolver un problema dado usando el mejor algoritmo secuencial conocido T1(An) y el tiempo necesario para resolver el mismo problema por un algoritmo paralelo usando el número de procesadores determinadas por el modelo ideal T(An).

n

n

AT

ATS

1

Page 31: Algorítmica paralela

Métricas para determinar su desempeño

– La aceleración S(p), es la relación entre el tiempo secuencial T1(An) y el tiempo necesario para resolver el mismo problema por un algoritmo paralelo usando p procesadores Tp(An):

np

n

ATAT

pS 1

Page 32: Algorítmica paralela

Métricas para determinar su desempeño

• Las operaciones que se deben de ejecutar secuencialmente limitan la aceleración de un algoritmo paralelo – Sea () la fracción secuencial, entre

01– (1- ) la fracción paralela– Se le conoce como la ley de Amdhal:

111 1

1

11

pp

pAT

AT

ATATAT

pSn

n

n

np

n

Page 33: Algorítmica paralela

Métricas para determinar su desempeño

• Eficiencia E(p)– La eficiencia se define como la relación

entre la aceleración S(p) y el número de procesadores p. Este factor indica qué tan bien son utilizados los procesadores.

ppS

pE

Page 34: Algorítmica paralela

Métricas para determinar su desempeño

• Redundancia R(p)– La redundancia se define como la relación

entre el número total de operaciones realizadas usando p procesadores O(p), y el número de operaciones realizadas usando un procesador O(1).

1OpO

pR

Page 35: Algorítmica paralela

Métricas para determinar su desempeño

• Utilización del sistema U(p)– Esta es una medida de desempeño

directamente proporcional a la eficiencia y a la redundancia. Indica el porcentaje de los recursos que estuvieron ocupados durante la ejecución del programa paralelo.

np ApTpO

pEpRpU

Page 36: Algorítmica paralela

Métricas para determinar su desempeño

• Calidad Q(p)– Medida de desempeño directamente

proporcional a la eficiencia y a la aceleración e inversamente proporcional a la redundancia. Evalúa el mérito de una aplicación paralela en un sistema de computadoras

p R

p E p Sp Q