Download - 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
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
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.
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.
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)
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)
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.
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)
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
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.
Modelo PRAM (Parallel Random Access Machine)
• Encontrar el número mayor del arreglo A, se analiza en una computadora PRAM-EREW.
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).
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.
Modelo de circuitos
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
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
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
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
Modelo de redes
100
001
100
,
444
004
440
,1,2,4,3 ,,lg jijiita ZCTNG
Modelo de redes
• (H(n)) = 3 procesadoress unidades
• (T(n)) = 6 unidades (un período)
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
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
Complejidad de los algoritmos paralelos
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)
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
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
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
Métricas para determinar su desempeño
71111121
nAT
iin WAW
712511
m
iin itAW
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:
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
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
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
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
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
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
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