Algorítmica paralela

36
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

description

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. Modelos ideales de una implantación paralela. Se consideran a las computadoras sin restricción - PowerPoint PPT Presentation

Transcript of Algorítmica paralela

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