l aboratorio de p aralelismo if - ehu. 4. t ipos de p roblemas p aralelos. m etodologÍa de d...
TRANSCRIPT
![Page 1: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/1.jpg)
Laboratorio de ParalelismoIF - EHU
. 4 .TIPOS DE PROBLEMAS
PARALELOS.
METODOLOGÍA DE DESARROLLO DE PROGRAMAS PARALELOS.
![Page 2: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/2.jpg)
Laboratorio de ParalelismoIF - EHU
Índice
1. Introducción.2. Análisis de algoritmos.3. Metodología de desarrollo de programas
paralelos.4. Esquemas de algoritmos paralelos.5. Problemas numéricos. Librerías.
![Page 3: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/3.jpg)
Laboratorio de ParalelismoIF - EHU
Introducción 34
Los problemas que pueden resolverse mediante un algoritmo paralelo son, obviamente, muy heterogéneos.
Suelen ser problemas de complejidad elevada, aún no perteneciendo al grupo de problemas intratables (el número de operaciones crece de forma rápida –p.e. exponencial– con el tamaño del problema).
![Page 4: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/4.jpg)
Laboratorio de ParalelismoIF - EHU
Introducción 44
Dentro del conjunto de problemas tratables (el número de operaciones crece polinómicamente con el tamaño del problema) se suelen dar dos situaciones que hacen necesaria la programación paralela:
- Problemas de gran dimensión
- Problemas de tiempo real
Otro tipo de problemas: problemas de gran desafío, por su relevancia social (genoma humano, meteorología, clima, fenómenos sísmicos…).
![Page 5: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/5.jpg)
Laboratorio de ParalelismoIF - EHU
Introducción 54
Diferentes modelos sobre distintos aspectos de la programación paralela:
- Modelo arquitectónico: arquitectura de la máquina -- multiprocesadores: memoria compartida
-- multicomputadores: paso de mensajes-- modelos mixtos
- Modelo de programación: herramientas de alto nivel (OpenMP, MPI).
- Modelo de coste: permite evaluar el coste del algoritmo.
![Page 6: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/6.jpg)
Laboratorio de ParalelismoIF - EHU
Índice
1. Introducción.
2. Análisis de algoritmos.3. Metodología de desarrollo de programas
paralelos.4. Esquemas de algoritmos paralelos.5. Problemas numéricos. Librerías.
![Page 7: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/7.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 74
En la programación paralela (al igual que en la secuencial) son necesarias herramientas que permitan estimar el tiempo de ejecución y la memoria consumidos por un algoritmo, para determinar si es adecuado o no para la resolución del problema.
El objetivo es desarrollar algoritmos eficientes (eficiencia: relación entre los recursos que consume y los resultados que obtiene).
![Page 8: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/8.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 84
Factores que influyen en el tiempo de ejecución de un programa:
- el lenguaje de programación (el programador)
- la máquina- el compilador (opciones)- los tipos de datos- los usuarios que estén trabajando
en el sistema
![Page 9: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/9.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 94
Factores que influyen en el tiempo de ejecución de un programa paralelo:
- la competencia por la memoria (bloques de cache)
- la fracción de código secuencial (Amdahl)
- la creación/asignación de procesos- la computación extra: variables de
control, identificación de procesos, cálculos adicionales…
- la comunicación (para memoria distribuida)
- la sincronización- los desequilibrios de carga
![Page 10: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/10.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 104
Estudio del algoritmo a priori
Antes de hacer el programa correspondiente.
Sirve para identificar si el algoritmo es adecuado para el problema, o para seleccionar entre varios algoritmos.
También sirve para determinar el tamaño de los problemas a resolver en función de las limitaciones de tiempo y memoria.
![Page 11: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/11.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 114
Estudio a posteriori
Tras haber hecho el programa.
Sirve para comparar entre dos programas según el tamaño de entrada.
También para encontrar fallos o posibles mejoras de un programa.
Estudio teórico (a priori o posteriori) y estudio experimental (a posteriori).
![Page 12: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/12.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 124
Tipos de estudios teóricos:
Tiempo de ejecución (ej. ordenación)- caso más favorable, cota inferior:
tm (n)
- caso más desfavorable, cota superior: tM (n)
- caso promedio:tp (n)
S
p pntnt
,
donde:
n es el tamaño de la entrada es una entrada de las S posibles
entradas
![Page 13: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/13.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 134
Tipos de estudios teóricos:
Ocupación de memoria
- caso más favorable, cota inferior: mm (n)
- caso más desfavorable, cota superior: mM (n)
- caso promedio:mp (n)
S
p pnmnm
,
donde:
n es el tamaño de la entrada es una entrada de las S posibles
entradas
![Page 14: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/14.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 144
Conteo de instrucciones
- decidir qué instrucciones/operaciones (flop) se quieren contar.- asignar costes a instrucciones de cada tipo.- una función: coste de las instrucciones que la componen.- bucles: mediante sumatorios o cotas superior e inferior si no se conoce el número de veces que se ejecutará.- bifurcaciones: contar el número de veces que pasa por cada rama, o establecer una cota superior (rama más costosa) o una inferior (rama menos costosa).
![Page 15: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/15.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 154
Conteo de instrucciones (caso promedio)
k número de instrucciones del programa
tp (n,i) número promedio de veces que la instrucción i se ejecuta para una entrada de tamaño n
k
i pp intnt1
,
1,,
jp jjipint
p (i,j) probabilidad de que la instrucción i se ejecute j veces
![Page 16: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/16.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 164
Notación asintótica
Dado que lo que interesa es saber cómo se comporta el algoritmo cuando crece el tamaño de la entrada (tamaños grandes), ya que es cuando podemos tener problemas de tiempo, se suelen utilizar notaciones asintóticas.
Acotan la forma en que crece el tiempo de ejecución cuando el tamaño de la entrada tiende a infinito, sin tener en cuenta las constantes que le afectan.
![Page 17: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/17.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 174
Acotar superiormente, orden de f:
nfkntennNnkNtefO :,,/: 00
Acotar inferiormente, omega de f:
nfkntennNnkNtef :,,/: 00
Acotar sup. e inferiormente, orden exacto de f: nflntenfknnNnlkNtef :,,,/: 00
![Page 18: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/18.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 184
A nivel práctico, a veces interesa no perder la información de las constantes del término de mayor orden:
1lim/:nf
nteNtefo
n
nnOnOnOnOO loglog1
nn nOnOOnOnOnnnO !2...loglog 32
Algunas relaciones entre órdenes:
![Page 19: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/19.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 194
Factores que afectan al tiempo de ejecución de un programa paralelo:
pntpntpntpntpnt goverlappinoverheadcomcalc ,,,,,
Estimación del tiempo de ejecución real
pntcom ,
pntcalc , Conteo de instrucciones
¿?
![Page 20: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/20.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 204
Tiempo de comunicación punto a punto entre dos procesadores:
nttt wscom
paqwspaq
menspaqwscom Ltt
L
LLttdt
1
Tiempo de comunicación de un mensaje dividido en paquetes a distancia d:
En general, conviene agrupar mensajes (full duplex?, red conmutada?, Ethernet…)
![Page 21: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/21.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 214
Ejemplo: suma de n números
s = a[0];for(i=1; i<n; i++) s = s + a[i];
Tiempos de la versión secuencial:
- conteo de instrucciones: t(n) = tcalc(n) = 2n - 1
- conteo de operaciones: t(n) = tcalc(n) = n - 1
![Page 22: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/22.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 224
Ejemplo: suma de n números (memoria compartida)- una versión paralela con n/2 procesos
doall pid = 0, n/2-1 {
ini = 2 * pid;des = 1;act = true;for (k=1; k++; k <= log n) {
if (act) {a[ini] = a[ini] + a[ini+des];des = des * 2;
}if ((i mod des)!=0) act = false;
}}
![Page 23: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/23.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 234
Ejemplo: suma de n números (memoria compartida)- una versión paralela con n/2 procesos (memoria compartida):
0 1 2 3 4 5 6 7 k = 1
0, 1 2, 3 4, 5 6, 7 k = 2
0, 1, 2, 3, 4, 5, 6, 7 k = log n
0, 1, 2, 3 4, 5, 6, 7 …
![Page 24: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/24.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 244
Ejemplo: suma de n números (memoria compartida)
Problemas:- distribución del trabajo entre procesos- overheads = variables auxiliares,
comprobaciones…- ley de Amdahl
Tiempos de la versión paralela (mem. compartida):
- conteo de instrucciones: tcalc(n, n/2) = 3 + 6 log n
- conteo de operaciones: tcalc(n, n/2) = log n
(+ sincronización tras cada iteración)
![Page 25: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/25.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 254
Ejemplo: suma de n números (memoria distribuida)- una versión paralela con n/2 procesos
doall Pi, i = 0, n/2-1 {des = 1;
act = true; for (k=1; k++; k <= log n -1) {
if (act) { a = a + b;
des = des * 2; if ((i mod des)!=0) {
act = false;Envia (a, Pi-des/2);
}else Recibe (b, Pi+des/2);
} } if (i = 0) a = a + b;}
![Page 26: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/26.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 264
Ejemplo: suma de n números (mem. distribuida)
Problemas:- añade la comunicación y su
gestión, cuyo coste puede influir más o menos
Tiempos de la versión paralela (mem. distribuida):
- instrucciones: tcalc(n, n/2) = 4+6 (log n -1)
- operaciones: tcalc(n, n/2) = log n
- comunicación: tcom(n, n/2) = (log n -1) (ts + tw)
(suponiendo comunicaciones directas y en paralelo)
![Page 27: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/27.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 274
Ejemplo: suma de n números (mem. distribuida)
speed-up para n=64 y p=32 según relación entre ts, tw y topsistema intrucciones flops
mem. compartida 4.70 10.50
mem. distribuida
ts = tw
tw = top
2.89 3.94
mem. distribuida
ts = 2 tw
tw = 2 top
1.98 1.75
mem. distribuida
ts = 10 tw
tw = 10 top
0.22 0.11
![Page 28: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/28.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 284
Algunas conclusiones:
- No tiene sentido suponer p ilimitado para una entrada constante (eliminar la restricción n = 2p), n y p deben ser independientes.
- No tiene sentido utilizar programación paralela para resolver problemas pequeños. Mejor resolverlos secuencialmente. En el ejemplo, el coste es lineal, y, por tanto, no es adecuado.
- Dependiendo de la plataforma, un programa derivado de un algoritmo puede proporcionar unas prestaciones muy diferentes.
![Page 29: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/29.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 294
Medidas de prestaciones:
- Speed-up pnt
ntpnS
,,
1log
1,
ppn
npnS
Ejemplo: suma de n números (instr./flops)- Memoria compartida
- Memoria distribuida
ws ttpp
pn
npnS
1log1log
1,
p
pn
npnS
log62
12,
ws ttpp
pn
npnS
1log4log62
12,
![Page 30: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/30.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 304
pppn
npnE
log
1,
Ejemplo: suma de n números (flops)- Memoria compartida
- Memoria distribuida ws ttpppppn
npnE
1loglog
1,
Medidas de prestaciones:
- Eficiencia pntp
nt
p
pnSpnE
,*
,,
![Page 31: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/31.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 314
Medidas de prestaciones:
- Coste
- Función overhead:
pntppnC ,*,
ntpntpntpnCpntover ,*,,
pppnpnC log,
Ejemplo: suma de n números (flops)- Memoria compartida
- Memoria distribuida
1log, ppppntover
ws ttpppppnpnC 1loglog, 1log, ppppntover
![Page 32: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/32.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 324
EscalabilidadQue se mantengan las prestaciones al aumentar p y el tamaño del problema.
Función de isoeficienciaIndica la forma en la que debe aumentar el tamaño de la entrada en función del tamaño del sistema para mantener las prestaciones (despejar n en función de p).
K
ntpnt
nt
pnC
nt
pntp
ntpnE
over
,,,*
,
pntKpntK
Knt overover ,',
1
![Page 33: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/33.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 334
Ejemplo: suma de n números (flops)Memoria compartida- manteniendo proporcional el coste del secuencial a la función overhead:
pntpppnnt over ,1log1
- comparando los términos de mayor orden: I(p) = p log pMemoria distribuida- manteniendo proporcional el coste del secuencial a la función overhead:
ws ttpppppn 1log1log1
- comparando los términos de mayor orden: I(p) = p log p
![Page 34: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/34.jpg)
Laboratorio de ParalelismoIF - EHU
Análisis de algoritmos 344
Ejemplo: suma de n números (flops)
- en ambos casos I(p) = p log p
Incremento de procesadores 4 a 16 16 a 64 64 a 256
Aumento de tamaño del problema necesario para mantener la eficiencia
8 6 5.33
11
22
log
log
pp
pp
![Page 35: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/35.jpg)
Laboratorio de ParalelismoIF - EHU
Índice
1. Introducción.2. Análisis de algoritmos.
3. Metodología de desarrollo de programas paralelos.
4. Esquemas de algoritmos paralelos.5. Problemas numéricos. Librerías.
![Page 36: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/36.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 364
Es diferente paralelizar un algoritmo o programa secuencial, que programar en paralelo una aplicación desde el comienzo.
En el primer caso, interesa detectar aquellas partes del código con un mayor coste computacional.
Lo más habitual es utilizar trazas, timers, profiling, etc., y ejecutar en paralelo aquellas partes que ofrecen un buen rendimiento (por ejemplo, paralelismo incremental de OpenMP).
![Page 37: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/37.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 374
En el segundo caso, se empieza analizando las carac-terísticas de la propia aplicación, para determinar el/los algoritmos paralelos más adecuados.OJO: conviene partir de un buen algoritmo ya optimizado (¡no hay que reinventar la rueda!).
Aunque no hay un “camino único”, se suele recomendar utilizar un determinado procedimiento o metodología.
![Page 38: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/38.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 384
La programación paralela añade, respecto a la programación secuencial, una serie de aspectos a tener en cuenta:
- Concurrencia (sincronización, comunicación).
- Asignación de datos y código a procesadores.
- Acceso simultáneo a datos compartidos (sincronización).
- Escalabilidad.
![Page 39: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/39.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 394
Otra diferencia entre la programación secuencial y la paralela es la forma en que los módulos que componen una aplicación se pueden ensamblar:
- Composición secuencial: los módulos se ejecutan secuencialmente.
- Composición paralela: diferentes módulos se ejecutan simultáneamente sobre conjuntos disjuntos de procesos (escalabilidad y localidad).
- Composición concurrente: diferentes módulos se ejecutan concurrentemente sobre los mismos procesos (solapamiento computación y comunicación).
![Page 40: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/40.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 404
PROBLEMAParticionado
Comunicación
Aglomerado
Mapeado
Modelo PCAM
![Page 41: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/41.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 414
PROBLEMAParticionado
Comunicación
Aglomerado
Mapeado
Descomposición (tareas+comunicación)
Asignación (tareas a procesos)
Modelo PCAM
![Page 42: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/42.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 424Descomposición
La descomposición consiste en dividir el cálculo en partes de menor tamaño que vamos a denominar tareas, con el objetivo de ejecutarlas en paralelo.
Según el tamaño (coste computacional) de las tareas se habla de:
- granularidad fina (muchas tareas pequeñas).- granularidad gruesa (pocas tareas grandes).
![Page 43: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/43.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 434Descomposición
En esta fase es fundamental tener en cuenta las dependencias entre las tareas y reflejarlas en un grafo de dependencias para poder estimar las necesidades de sincronización y estructura de comunicación que hay entre las tareas.
Es deseable obtener un número suficientemente alto de tareas (grano fino) para tener más flexibilidad en la fase de asignación.
![Page 44: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/44.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 444Descomposición
Ejemplo 1: Evaluación polinomialSe trata de evaluar, para un valor x = b, m funciones polinomiales de grado n f
i (x) con i=0,…,m-1; y obtener el valor mínimo.
Un posible reparto es asignar una tarea a la evaluación de cada polinomio (o conjunto de polinomios) y luego ir calculando el mínimo entre las tareas.
![Page 45: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/45.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 454Descomposición
Ejemplo 1: Evaluación polinomialVeamos dos grafos de dependencias entre las tareas (para el caso de 4 polinomios), con sus costes computacionales (cc=5 para evaluar y cc=1 para calcular el mínimo):
f1(b)5
f0(b)5
f2(b)5
f3(b)5
min1
min1
min1
(a)f1(b
)5f0(b
)5f2(b
)5f3(b
)5
min1
min1
min1
(b)
![Page 46: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/46.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 464Descomposición
Mediante el grafo de dependencias se puede establecer el máximo grado de concurrencia de un algoritmo.Para caracterizar el paralelismo potencial de un algoritmo se suele calcular el grado medio de concurrencia (gmc), es decir, el número medio de tareas que se podrían ejecutar en paralelo.gmc
N
iinodocc
Lgmc
1
)(1 gmc(grafo a) = 23/7 = 3,28
gmc(grafo b) = 23/8 = 2,875L: long. camino crítico
cc: coste computacional
![Page 47: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/47.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 474Descomposición
Para el ejemplo 1 (evaluación polinomial) el grafo con la estructura de comunicación necesaria para el caso de paso de mensajes sería:
f1(b)5
f0(b)5
f2(b)5
f3(b)5
min1
min1
min1
Lectura+reparto
44 4
4
1 1 1 1
1 1 Patrón de comunicación(recursiva)
![Page 48: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/48.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 484Descomposición
Algunas técnicas de descomposición
- Descomposición de dominio (salida/entrada/bloques)- Descomposición funcional (flujo de datos)- Descomposición recursiva
- Descomposición exploratoria- Descomposición especulativa
![Page 49: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/49.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 494Descomposición
Algunas técnicas de descomposición
- Descomposición de dominio- Centrada en los datos de salida
Ejemplo 2: diferencias finitas Jacobi
8
4 )(1,
)(1,
)(,1
)(,1
)(,)1(
,
tji
tji
tji
tji
tjit
ji
XXXXXX
Patrón de comunicación
![Page 50: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/50.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 504Descomposición
Algunas técnicas de descomposición
- Descomposición de dominio- Centrada en los datos de entrada
Ejemplo 3: Producto escalar de dos vectoresProducto escalar de vectores de longitud n con p tareas
1
0
p
pidpidpepe
1)1(
p
npid
p
npidj
jjpid yxpe
Suma final patrón recursivo (≈ ejemplo1)
![Page 51: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/51.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 514Descomposición
Algunas técnicas de descomposición
- Descomposición de dominio- Basada en bloques (algoritmos matriciales)
Ejemplo 4: Multiplicación matriz-vector (x=Ab)Producto matriz-vector con 2 tareas
A0
1
A0
0
A1
0
A1
1
b0
b1
x0
x1
× =tarea 0tarea 1
A0
1
A0
0
A1
0
A1
1
![Page 52: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/52.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 524Descomposición
Algunas técnicas de descomposición
- Descomposición funcionalDirigida por el flujo de datos, se identifican las partes funcionales del cálculo y se asocian con tareas. Luego se hace un análisis del solapamiento de datos y del flujo de datos entre tareas para validar o no la división planteada.
Ejemplo 5: Filtrar una lista de enterosSe desea encontrar aquellos números de una lista (longitud n) que sean múltiplos de todos los números primos pertenecientes a otra lista (longitud m, m<<n)
múltiplode 3?
múltiplode 5?
múltiplode 7?
listaentrada
listasalida
tarea 0 tarea 1 tarea 2
Otros diagramas de flujo
![Page 53: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/53.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 534Descomposición
Algunas técnicas de descomposición
- Descomposición recursiva
- aplicación de la técnica divide-y-vencerás.- se generan subproblemas que son instancias del original pero independientes entre sí.
- se sigue dividiendo hasta que no merezca la pena.
- al final, combinación de resultados.- esquema de planificación adecuado: granja de tareas (estructura de datos compartida).
![Page 54: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/54.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 544Descomposición
Algunas técnicas de descomposición
- Descomposición recursiva
Ejemplo 6: Integración numérica por cuadratura adaptativaSe desea aproximar numéricamente el valor de una integral, es decir, el área bajo la curva de una función.Objetivo: una precisión determinada. No se conocen a priori el número de iteraciones y hay que definir un criterio de parada.
![Page 55: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/55.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 554Descomposición
Algunas técnicas de descomposición
- Descomposición exploratoria- problemas de búsqueda de soluciones en un espacio de estados.- ir descomponiendo el espacio de búsqueda en partes de menor tamaño para irlas asignando a tareas diferentes.- normalmente se estructura el espacio de búsqueda en forma de árbol.- el criterio de parada puede ser cuando se encuentra la primera solución o cuando se han explorado todos los nodos del árbol.
![Page 56: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/56.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 564Descomposición
Algunas técnicas de descomposición
- Descomposición exploratoria
Ejemplo 7: Suma del subconjunto
Se trata de encontrar las posibles combinaciones de números pertenecientes a un conjunto determinado tales que la suma de los mismos valga un valor s concreto.
Se puede plantear como un algoritmo de búsqueda en el que se van seleccionando los diferentes elementos del conjunto determinando los subconjuntos cuya suma tiene un valor de s.
![Page 57: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/57.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 574Descomposición
Algunas técnicas de descomposición
- Descomposición exploratoria
Ejemplo 7: Suma del subconjunto
----
0---
00-- 01--
1---
tarea i tarea j
ojo, reparto de trabajo!
![Page 58: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/58.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 584Descomposición
Algunas técnicas de descomposición
- Descomposición especulativa- en este tipo de descomposición se
adelanta cálculo que hay que realizar selectivamente (todas las ramas o las estimadas más probables) para reducir el tiempo medio de respuesta.
Entrada
Cálculo selección
Cálculo tipo1
Cálculo tipo2
Cálculo tipoX
… Salida
![Page 59: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/59.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 594Descomposición
Algunas técnicas de descomposición
- Enfoques mixtos
En muchas ocasiones hay que aplicar diferentes esquemas de descomposición para extraer paralelismo en diferentes fases de procesamiento de una aplicación.
En el ejemplo 1 –evaluación polinomial– hemos aplicado descomposición de dominio para realizar la evaluación de los polinomios y descomposición recursiva para calcular el mínimo de las evaluaciones.
![Page 60: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/60.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 604Descomposición
Algunas técnicas de descomposición
- Enfoques mixtos
Caso meteorológico/climático
> Paralelismo de datos > Paralelismo de función
![Page 61: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/61.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 614Descomposición
Factores a considerar en la descomposición- Características de las tareas
-- Creación estática/dinámicaSegún se conozcan a priori las tareas a realizar (ejemplo 2 – jacobi) o se vayan generando durante la ejecución del programa (ejemplo 6 – integración numérica).
![Page 62: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/62.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 624Descomposición
Factores a considerar en la descomposición- Características de las tareas
-- Número de tareas obtenidasDebería de ser suficientemente grande para facilitar la fase de asignación de tareas.Aconsejable obtener un orden de magnitud más de tareas que de procesadores (si la aplicación lo permite).Es importante que el número de tareas escale con el tamaño del problema.
![Page 63: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/63.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 634Descomposición
Factores a considerar en la descomposición- Características de las tareas
-- Tamaño de las tareas
Interesa que el coste (computacional) de las diferentes tareas sea similar y se pueda estimar a priori (esto dependerá del problema), para evitar problemas de load-balancing durante el reparto a procesadores.
![Page 64: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/64.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 644Descomposición
Factores a considerar en la descomposición- Características de las tareas
-- Tamaño de las tareas
Esto es fácil en los ejemplos 1, 2 y 3 –evaluación polinomial, jacobi y producto escalar– pero no lo es para el ejemplo 7 –suma del subconjunto– si se aplican técnicas de poda.
![Page 65: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/65.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 654Descomposición
Factores a considerar en la descomposición- Características de las tareas
-- Replicación de datos/cálculoConviene evitar que las tareas compartan mucho cálculo o datos del problema.
-- Tamaño y localización de los datos asociados a cada tareaDeben ser accesibles por el proceso que ejecuta esa tarea (fase de asignación) y hay que evitar una sobrecarga por cálculo y/o comunicación.
![Page 66: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/66.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 664Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas
-- Patrones locales/globalesUn patrón de comunicación se dice que es local cuando cada tarea interacciona sólo con un subconjunto pequeño de tareas (vecinas).Se utiliza el grafo de dependencias para determinar las necesidades de comunicación o sincronización.
![Page 67: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/67.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 674Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas
-- Patrones locales/globalesEl ejemplo 2 –jacobi– es un caso de patrón local de comunicación.
![Page 68: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/68.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 684Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas
-- Patrones locales/globalesUn patrón de comunicación se dice que es global cuando múltiples tareas aportan datos para realizar un cálculo en paralelo. Ejemplo 3 – producto escalar.
Comunicación global (centralizado) Distribución de cálculo y comunicación
Descomp. recursiva
![Page 69: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/69.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 694Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas
-- Patrones estáticos/dinámicosEn los estáticos se conoce a priori qué tareas y cuándo se comunican.Los ejemplos 1, 2 y 3 –eval. polinomial, jacobi y producto escalar– tienen patrones de comunicación estáticos.Sin embargo, en el ejemplo 6 –integración numérica– no se sabe a priori cuándo se va a producir la actualización del área global, ya que depende de la función que se esté integrando.
![Page 70: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/70.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 704Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas
-- Patrones regulares/irregularesSe habla de patrón regular cuando la comunicación presenta una topología espacial. Los patrones regulares simplifican la etapa de asignación y programación en el modelo de paso de mensajes.En el ejemplo 2 –jacobi– la comunicación se realiza entre las cuatro tareas vecinas en la malla.El ejemplo 6 –integración numérica– presenta un patrón de comunicación irregular.
![Page 71: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/71.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 714Descomposición
Factores a considerar en la descomposición- Patrones de comunicación entre tareas-- Datos compartidos de lectura/lectura+escritura
-- Comunicación unilateral/bilateralEn la comunicación unilateral la comunicación de una tarea con otra tarea (productora) se hace sin interrumpirla; sin embargo, en la bilateral la comunicación se hace de forma explícita entre la tarea productora y la tarea que precisa de los datos.En el modelo de paso de mensajes la comunicación unilateral se convierte en bilateral, y con patrón irregular, la dificultad aumenta (ejemplo 9 –suma del subconjunto 9– con poda).
![Page 72: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/72.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 724Asignación
Tras la fase de descomposición se obtiene un algoritmo paralelo de grano fino, independiente de la plataforma paralela que se vaya a usar para su ejecución.La fase de asignación es en la que se decide qué tareas agrupar y en qué unidades de procesamiento se va a ejecutar cada tarea y en qué orden. Por ello, es en esta fase en la que se tienen en cuenta aspectos de la plataforma paralela como: número de unidades de procesamiento, modelo de memoria compartida o paso de mensajes, costes de sincronización y comunicación, etc.
![Page 73: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/73.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 734Asignación
Agrupamiento y replicación en la asignación
Mediante el agrupamiento de tareas se consigue minimizar el volumen de datos a transferir entre las tareas y se reduce el número de interacciones entre ellas (también se suelen agrupar mensajes).
La replicación de datos y de cómputo/comunicación también se utilizan para reducir el tiempo de ejecución. ¡Ojo! Limitan la escalabilidad de la aplicación.
![Page 74: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/74.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 744Asignación
En esta fase se asocian las tareas a los procesos (entidades abstractas capaz de ejecutar cálculo) y no a los procesadores (entidad física, hardware) para mantener un mayor nivel de abstracción que aumente la flexibilidad del diseño.
Será en las últimas fases de implementación del algoritmo cuando se asignen los procesos a procesadores (normalmente, uno a uno).
![Page 75: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/75.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 754Asignación
Objetivos de la asignación:
- Reducir el tiempo de computación.- Minimizar el tiempo de comunicación.- Evitar el tiempo de ocio (por mal reparto de carga o por esperas en sincronizaciones/comunicaciones).
Dos tipos generales de esquemas de asignación:- Asignación estática (técnicas de
planificación deterministas).- Asignación dinámica.
![Page 76: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/76.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 764Asignación
Asignación estática
Cuando se conoce o se puede estimar a priori el coste computacional de las tareas y las relaciones entre ellas, y, por tanto, se decide a priori qué unidad de proceso ejecutará cada tarea.
El problema de asignación estática óptima es NP-completo técnicas heurísticas.
La gran ventaja frente a los dinámicos es que no añaden ninguna sobrecarga en tiempo de ejecución.
![Page 77: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/77.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 774Asignación
Asignación dinámica
Se utiliza cuando las tareas se generan dinámicamente (ejemplo 6 –integración numérica–), o cuando no se conoce a priori el tamaño de las tareas (ejemplo 7 –suma del subconjunto– con poda).
Es más compleja que la estática: ¿cómo redistribuir el trabajo en tiempo de ejecución?
![Page 78: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/78.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 784Asignación
Esquemas de asignación estática
Algunos se centran en métodos para descomposición de dominio (distribuciones de matrices por bloques, diferencias finitas en una malla bidimensional…).
Otros se centran en métodos sobre grafos de dependencias estáticas (normalmente obtenidas mediante descomposición funcional o recursiva).
![Page 79: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/79.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 794Asignación
Esquemas de asignación dinámica
Cuando se aplican descomposiciones recursivas o exploratorias suele ser más adecuado utilizar esquemas de asignación dinámica.
Uno de los problemas a afrontar es la necesidad de un mecanismo de detección de fin de trabajo.
![Page 80: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/80.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 804Asignación
Esquemas de asignación dinámica
- Esquemas centralizados: maestro – esclavos
MaestroColección de subproblemas
Esclavo 0
Subproblemas
Petición de subproblemas / Resultados
Esclavo 1 Esclavo p-1…
![Page 81: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/81.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 814Asignación
Esquemas de asignación dinámica
- Esquemas centralizados: maestro – esclavos
Adecuado con un número moderado de esclavos y cuando el coste de ejecutar los subproblemas es alto comparado con el coste de obtenerlos.Algunas estrategias para mejorar la eficiencia (reduciendo la interacción entre maestro y esclavos):
- Planificación por bloques.- Colecciones locales de subproblemas.- Captación anticipada (solapar cálculo y
comunic.).Fácil determinación de fin (en el maestro).
![Page 82: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/82.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 824Asignación
Esquemas de asignación dinámica
- Esquemas completamente descentralizadosNo existe un proceso maestro; los subproblemas se encuentran distribuidos por todos los procesos.
Proceso iColección de subproblemas
Proceso jColección de subproblemas
Proceso kColección de subproblemas
![Page 83: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/83.jpg)
Laboratorio de ParalelismoIF - EHU
Metodología 834Asignación
Esquemas de asignación dinámica
- Esquemas completamente descentralizados
El equilibrio de carga es más difícil y requiere poder transferir subproblemas a procesos ociosos (cuántos?): - Transferencia iniciada por el receptor (sondeo aleatorio, sondeo cíclico…) - Transferencia iniciada por el emisor (cargas bajas)
La detección de fin es más compleja (algoritmo de terminación de Dijkstra…)
![Page 84: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/84.jpg)
Laboratorio de ParalelismoIF - EHU
Índice
1. Introducción.2. Análisis de algoritmos.3. Metodología de desarrollo de programas
paralelos.
4. Esquemas de algoritmos paralelos.
5. Problemas numéricos. Librerías..
![Page 85: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/85.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 854
Un esquema algorítmico es un patrón común a la resolución de distintos problemas.
En el caso paralelo se encuentran versiones paralelas de esquemas secuenciales, esquemas que son propiamente paralelos (maestro-esclavo, granja de procesos…) o esquemas que son adecuados para ciertos sistemas o topologías paralelas o para esquemas concretos de descomposición/asignación vistos en el apartado anterior.
![Page 86: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/86.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 864
Paralelismo de datos (bucles)Normalmente en memoria compartida trabajando distintos threads o procesos sobre una estructura de datos común pero en zonas diferentes.
Algunos ejemplos:- Suma de n números- Ordenación por rango- Evaluación polinomial (ejemplo 1)- Multiplicación matriz-vector (ejemplo 4)- Integración numérica (ejemplo 6)
![Page 87: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/87.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 874
Particionado de datosEs una especie de paralelismo de datos con paso de mensajes.La diferencia está en que no sólo se reparte el trabajo sino que hay que distribuir los datos entre los procesos. Por tanto, hay que tener en cuenta las necesidades de comunicación entre procesos (y la topología sobre la que se trabaja).
Los mismos ejemplos que en el paralelismo de datos se pueden programar mediante el particionado de datos.
![Page 88: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/88.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 884
Esquemas en árbol y grafo
Muchos problemas tienen una representación en forma de árbol (por ejemplo, la suma de n números).Este tipo de problemas se resuelven asignando el trabajo de diferentes nodos a distintos procesos, de manera que la carga esté equilibrada.Para minimizar sincronizaciones/comunicaciones la asignación habrá que hacerla de manera que se minimice el número de arcos entre nodos asignados a procesos distintos.Algunos ejemplos: barreras en árbol, mergesort…
![Page 89: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/89.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 894
Esquemas en árbol y grafo
Algoritmos de ordenación, de cálculo de máximos...(en general, “búsquedas” de algún tipo en grandes cantidades de datos)-- reparto de las tareas entre los procesadores, que procesarán localmente un subconjunto de los datos.-- puede haber algo de comunicación, durante el proceso de los datos o al final del mismo.
![Page 90: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/90.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 904
Esquemas en árbol y grafo
Interacciones entre N cuerpos (the N-body problem)
Cálculo de la posición y velocidad de cuerpos en el espacio (o de partículas cargadas...).
F = G (M1M2/R2) → F = m Δv/Δt → Δx = v Δt
Cálculo de orden O(N3) → en paralelo, muchos mensajes, ya que todos los cuerpos interaccionan con todos en cada iteración de la simulación.
![Page 91: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/91.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 914
Esquemas en árbol y grafo
Interacciones entre N cuerpos (the N-body problem)
Reducir la comunicación mediante técnicas de clustering.
Un grupo de cuerpos se considera como uno solo situado en el centro de masas si se cumple, por ejemplo, que r > d / .
dr
![Page 92: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/92.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 924
Algoritmos relajados o paralelismo “obvio” (embarrassingly parallel)
El cálculo de cada proceso es independiente por lo que no hay sincronización ni comunicación, excepto, quizás, al comienzo y al final.Algunos ejemplos: suma de n números, ordenación por rango, multiplicación matrices, el ejemplo 6 de integración numérica (si se determina el número de subintervalos y el reparto entre los procesos).
Otros ejemplos
![Page 93: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/93.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 934
Algoritmos relajados o paralelismo “obvio”
Procesado de imagen> desplazamiento: (x, y) → (x+Δx, y+Δy)> escalado: (x, y) → (x*Sx, y*Sy)> rotación: x → x cos + y sen
y → -x sen + y cos > recorte (clipping): borrar fuera de un área
Reparto de tareas: por filas, columnas, bloques...
![Page 94: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/94.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 944
Algoritmos relajados o paralelismo “obvio”
Cálculo de funciones tipo “Mandelbrot”
> Iteración de una función con los puntos de una determinada área hasta que se cumpla cierta condición.
Por ejemplo: Zk+1 = Zk2 + C
(complejos)
hasta que |Zk| > 2
Reparto de puntos independientes; la asignación de tareas podría ser dinámica.
![Page 95: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/95.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 954
Algoritmos relajados o paralelismo “obvio”
Procesos tipo “Montecarlo” (aleatoriedad)
Selección aleatoria de puntos para procesar una determinada función.
xx
x x
x
xPor ejemplo, cálculo de pi como la relación de áreas entre un cuadrado y un círculo.
Problemas con la generación de números aleatorios.
![Page 96: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/96.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 964
Computación pipeline o segmentada
El problema se divide en una serie de etapas.Cada etapa se ejecuta, por ejemplo, en un procesador, y pasa resultados a la siguiente.
Es un tipo de descomposición funcional, relacionado con la repetición del mismo proceso sobre una serie larga de datos (p.e., en tiempo real: procesado de vídeo).
f1 f2 f3 f4
![Page 97: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/97.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 974
Computación pipeline o segmentada
Condiciones:-- que se ejecute más de una vez el mismo problema.-- que se procese una serie larga de datos.-- que se pueda pasar datos a la siguiente fase mucho antes del final del cálculo de cada fase.-- que el tiempo de proceso asociado a cada fase sea similar (load balancing).
Topología ideal: cadena / anillo.
![Page 98: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/98.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 984
Computación pipeline o segmentada
Normalmente no se genera un número muy elevado de procesos.
Algunos ejemplos:-- procesado de señal (sonido, vídeo...)-- simulaciones de procesos segmentados (computación)
![Page 99: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/99.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 994
Paralelismo síncrono
Es el caso más habitual. Dos tipos: -- paralelismo de datos-- procesos iterativos
Hay que sincronizar los procesos, bien al final de una operación o bien al final de una iteración.
Lo más habitual es que la sincronización sea global (p.e., al final de cada iteración, para decidir si seguir o parar). La implementación de la barrera debe ser eficiente.
![Page 100: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/100.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1004
Paralelismo síncrono
La sincronización / comunicación entre procesos añade problemas:
-- carga añadida al tiempo de cálculo → reducción del speed-up.
-- posibles problemas con el reparto equilibrado de tareas (load balancing).
-- posibles deadlocks.
![Page 101: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/101.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1014
Paralelismo síncrono
Como siempre, hay que intentar reducir las necesidades de comunicación.
Un ejemplo: una determinada aplicación procesa una matriz de N×N elementos entre P procesadores. Durante la ejecución, los procesos necesitan intercambiarse los datos de “la frontera”. ¿Cuál es el reparto más adecuado de los datos de la matriz, por filas/columnas o por bloques?
![Page 102: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/102.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1024
Paralelismo síncrono
Total de comunicación:
2 veces N elementos 4 veces N / P1/2 elementosTiempo de comunicación (send + receive):
Tcol = 4 × (ti + te × N) Tblo = 8 × (ti + te × N/P1/2)
N/P1/2
N/P1/2N
N/P
![Page 103: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/103.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1034
Paralelismo síncrono
Tcol > Tblo → ti / te < N × (1 - 2/P1/2)
0
50
100
150
1 10 100 1000
ti / te
P
N = 32
N = 64
N = 128
ti grande, mejor por columnas
ti pequeño, mejor por bloques
![Page 104: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/104.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1044
Paralelismo síncrono
Otros ejemplos:
-- Resolución de un sistema de ecuaciones por el método iterativo de Jacobi (ejemplo 2).-- Difusión de calor en un determinado medio físico.-- Autómatas celulares.-- Multiplicación de matrices por el método Cannon.-- Resolución de sistemas de ecuaciones lineales por métodos iterativos.-- El juego de la vida (problemas de simulación).
![Page 105: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/105.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1054
Paralelismo síncrono
-- Resolución de un sistema de ecuaciones por el método iterativo de Jacobi
8
4 )(1,
)(1,
)(,1
)(,1
)(,)1(
,
tji
tji
tji
tji
tjit
ji
XXXXXX
> Diferencias finitas: Jacobifácil de paralelizar
8
4 )(1,
)1(1,
)(,1
)1(,1
)(,)1(
,
tji
tji
tji
tji
tjit
ji
XXXXXX
Gauss-Seidel: más eficiente, más complejo
“Red/black” una alternativa
![Page 106: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/106.jpg)
Laboratorio de ParalelismoIF - EHU
Esquemas de algoritmos paralelos 1064
Paradigma maestro-esclavoThread/proceso maestro que se encarga de poner en marcha los esclavos dándoles trabajo y recopilando las soluciones que van calculando.
Granja de procesosConjunto de procesos que trabaja de manera conjunta pero independiente en la resolución de un problema (similar al de los algoritmos relajados). Similar a maestro-esclavo, pero los procesos hacen un trabajo idéntico.
Trabajadores replicadosLos workers son capaces de generar nuevas tareas que pueden ejecutarlas ellos mismos y otros workers. Es una versión descentralizada (control de finalización!).
![Page 107: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/107.jpg)
Laboratorio de ParalelismoIF - EHU
Índice
1. Introducción.2. Análisis de algoritmos.3. Metodología de desarrollo de programas
paralelos.4. Esquemas de algoritmos paralelos.
5. Problemas numéricos. Librerías.
![Page 108: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/108.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1084
La computación paralela está ligada al desarrollo e implementación de algoritmos numéricos, principalmente los matriciales.
Por ello, el estudio de la implementación paralela de algoritmos numéricos paralelos y de las librerías numéricas matriciales paralelas es necesario para el aprendizaje de la programación paralela.
![Page 109: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/109.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1094
Las primeras aplicaciones de la computación paralela fueron la aceleración de todo tipo de algoritmos numéricos, especialmente los matriciales.
La regularidad de las estructuras matriciales las hace especialmente adecuadas para su procesamiento paralelo.
Los problemas que se tratan suelen ser de gran dimensión o problemas cuya respuesta debe obtenerse en tiempo real.
![Page 110: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/110.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1104
Se han desarrollado numerosas librerías orientadas a conseguir altas prestaciones (speed-up, eficiencia, escalabilidad…).
Su legibilidad, portabilidad y eficiencia ha permitido no tener que reescribir gran cantidad de código.
Sin embargo, desarrollar algoritmos matriciales paralelos eficientes y precisos no suele ser una tarea trivial (p.e., eficiencia versus estabilidad numérica).
![Page 111: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/111.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1114
Dos problemas tipo (muchos de los problemas se reducen a éstos):
- Resolución de sistemas de ecuaciones lineales
Ax = b
- Cálculo de valores y vectores propios
Ax = λx
![Page 112: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/112.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1124
A su vez, estos problemas suelen utilizar en sus cálculos productos escalares de vectores, productos matriz-matriz, producto vector-matriz, etc.
Por ello se puede abordar el análisis computacional con una visión de niveles, diseñando rutinas sencillas pero eficientes que resuelvan estos cálculos matriciales (nivel de núcleo) para utilizarlas en un nivel más alto (nivel de librería).
![Page 113: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/113.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1134
Los problemas matriciales que se suelen resolver mediante técnicas paralelas, normalmente, tienen una característica clave para poderlos afrontar de una manera eficiente:
Matrices de gran tamaño y con algún tipo de estructura.
El tamaño de las matrices (104x104, 105x105) plantea problemas en cuanto al coste de computación –suelen ser algoritmos de O(n3)–, y en cuanto a la cantidad de memoria necesaria –normalmente datos de doble precisión, una matriz de 105x105 son 74 GB–.
![Page 114: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/114.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1144
En cuanto a la estructura, se pueden clasificar en:
- Matrices densascon un patrón aleatorio en cuanto a
valores y posiciones en la matriz
- Matrices dispersascon un número elevado de
elementos con valor cero- Matrices estructuradas
la posición de los elementos no nulos de la matriz sigue un patrón concreto
![Page 115: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/115.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1154
En cuanto a la estructura, se pueden clasificar en:
- Matrices estructuradasAlgunos ejemplos: matriz banda
c
f0’s
0’s
cijsifjisijiAA 0,:
![Page 116: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/116.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1164
En cuanto a la estructura, se pueden clasificar en:
- Matrices estructuradasOtros ejemplos:
Matriz de tipo Toeplitz
gfjisigfTjiT ,,
3 4 5 18 3 4 56 8 3 49 6 8 3
Matriz de tipo Hankel
gfjisigfHjiH ,,
3 4 5 14 5 1 25 1 2 71 2 7 8
![Page 117: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/117.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1174
Núcleos computacionales y librerías
Los núcleos computacionales son un conjunto de funciones o subprogramas que resuelven operaciones vectoriales y/o matriciales sencillas: producto escalar, suma vectores, producto matriz-vector…
Las librerías están constituidas por un conjunto de rutinas que resuelven problemas de más alto nivel utilizando los núcleos computacionales.
![Page 118: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/118.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1184
Núcleos computacionales: BLAS
Basic Linear Algebra Subprograms http://www.netlib.org/blas/
BLAS 1 (1973)Programada en Fortran77, sólo cubría operaciones elementales de complejidad O(n), p.e.: producto escalar de vectores, suma de vectores con escalado: y = ax + yEn la optimización de código para arquitecturas vectoriales BLAS 1 puede ser un problema ya que oculta al compilador la naturaleza de las operaciones matriz-vector impidiendo su optimización.
![Page 119: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/119.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1194
Núcleos computacionales: BLAS
BLAS 2Cubre un conjunto de operaciones sencillas de tipo matriz-vector. Son operaciones de O(n2) del estilo:
y = aAx + by (A matriz, x e y vectores, a escalar)
A = axyT + A, × = A-1x (con A triangular superior)
![Page 120: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/120.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1204
Núcleos computacionales: BLAS
BLAS 3Para computadores con jerarquía de memoria, la descomposición por bloques manteniendo el cálculo matricial es mejor que la descomposición matriz-vector, ya que se consigue una mayor reutilización de los datos en la memoria cache (o memoria local).BLAS 3 cubre estas necesidades implementando operaciones tales como:
C = aAB + bC, C = aAAT + bC, B = aT-1B (con T triangular)
![Page 121: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/121.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1214
Librería LAPACK
http://www.netlib.org/lapack/
Escrita inicialmente en Fortran77; también puede invocarse desde C.
Surge como una fusión mejorada de las librerías LINPACK (resolución de ecuaciones lineales) y EISPACK (cálculo de valores propios).
![Page 122: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/122.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1224
Librería LAPACK
Está compuesta de subrutinas para resolver sistemas de ecuaciones lineales, problemas de mínimos cuadrados lineales, y problemas de valores propios y valores singulares.
También contiene las descomposiciones que permiten resolver los problemas anteriores: LU, Cholesky, QR, SVD,…).
![Page 123: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/123.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1234
Librería LAPACK
Utiliza sobre todo el núcleo BLAS 3. De este modo los fabricantes pueden proporcionar versiones nativas de BLAS y conseguir muy buenas prestaciones para LAPACK.
Sirve para matrices densas y banda, pero no para dispersas. Para datos reales y complejos de simple y doble precisión.
![Page 124: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/124.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1244
Librería LAPACK
Contiene tres tipos de rutinas:
> Rutinas driver: resuelven un problema completo (cálculo de valores propios de una matriz simétrica, resolución de un sistema de ecuaciones lineales…).
> Rutinas computacionales: resuelven cálculos como las factorizaciones matriciales (descomposición QR, descomposición LDLT…), reducción de una matriz a la forma diagonal, etc.
![Page 125: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/125.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1254
Librería LAPACK
Contiene tres tipos de rutinas:
> Rutinas auxiliares: realizan subtareas de los algoritmos orientados a bloques; se pueden considerar como extensiones de BLAS.
Documentación en working notes (buena fuente de aprendizaje de diseño de algoritmos numéricos matriciales eficientes.http://www.netlib.org/lapack/lawns/downloads/
![Page 126: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/126.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1264
Librería ScaLAPACK
http://www.netlib.org/scalapack/
Es la versión para memoria distribuida de la librería LAPACK. Aparece a finales de los 90 y contempla redes de computadores y paralelos heterogéneos.
Resuelve problemas de álgebra lineal numérica: sistemas de ecuaciones lineales, problemas de mínimos cuadrados y problemas de valores propios.
![Page 127: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/127.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1274
Librería ScaLAPACK
Portable a cualquier computador en el que esté instalado MPI, y está escrito siguiendo el modelo SPMD.
Trabaja con matrices que están distribuidas por los procesadores mediante una distribución cíclica por bloques, y sirve para matrices densas y banda, no para dispersas.
Los tipos de datos que contempla son reales y complejos de simple y doble precisión.
![Page 128: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/128.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1284
Librería ScaLAPACK
Se basa en el núcleo PBLAS (Parallel Basic Linear Algebra Subroutines), que es una extensión de BLAS para el modelo de paso de mensajes. Al igual que BLAS, está organizada por niveles (PBLAS 1, PBLAS 2 y PBLAS 3).
Para el diseño de PBLAS se diseñó otro paquete núcleo computacional especializado en las comunicaciones denominado BLACS (Basic Linear Algebra Communications Subroutines), que a su vez utiliza MPI.
![Page 129: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/129.jpg)
Laboratorio de ParalelismoIF - EHU
Problemas numéricos. Librerías 1294
Librería ScaLAPACK
Global
LocalLAPACK
BLAS
BLACS
Primitivas de paso de mensajes(MPI, PVM…)
PBLASScaLAPACK
http://www.netlib.org/
![Page 130: L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS](https://reader035.vdocuments.site/reader035/viewer/2022081518/54dd069b497959a82a8b45e0/html5/thumbnails/130.jpg)
Laboratorio de ParalelismoIF - EHU
Programación Paralela
• F. Almeida et al: Introducción a la programación paralela.Paraninfo, 2008.
• I. Foster: Designing and Building Parallel Programs.Addison Wesley (version on-line).
• B. Wilkinson, M. Allen: Parallel Programming Techniques and Applications… Pearson, 2005 (2. ed.).
• M.J. Quinn: Parallel Programming in C with MPI and OpenMP.McGraw Hill, 2003.
• A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing (2. ed.). Pearson, 2003.
Referencias