Title: Algor
1AlgorÃ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
2Modelos 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
3Modelos 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.
4Modelo 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.
5Modelo 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)
6Modelo 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)
7Modelo 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.
8Modelo PRAM (Parallel Random Access Machine)
- Encontrar el número mayor del arreglo A5, 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
- mi V (1)
- en paralelo i, j 0 ... n-1 hacer
- sà Ai lt Aj entonces mi F (2)
- en paralelo i 0 ... n 1 hacer
- sà mi V entonces (1)
- max Ai (1)
9Modelo 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
10Modelo 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.
11Modelo PRAM (Parallel Random Access Machine)
- Encontrar el número mayor del arreglo A, se
analiza en una computadora PRAM-EREW.
12Modelo 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).
13Modelo 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.
14Modelo de circuitos
15Modelo 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
16Modelo 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
17Modelo 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
18Modelo 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
19Modelo de redes
20Modelo de redes
- (H(n)) 3 procesadoress unidades
- (T?(n)) 6 unidades (un perÃodo)
21Complejidad 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
22Complejidad 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
23Complejidad de los algoritmos paralelos
24Mé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)
25Mé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
26Mé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
27Mé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
28Métricas para determinar su desempeño
29Mé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
30Mé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).
31Mé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)
32Mé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 0???1
- (1- ?) la fracción paralela
- Se le conoce como la ley de Amdhal
33Mé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.
34Mé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).
35Mé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.
36Mé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