+ All Categories
Home > Documents > Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de...

Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de...

Date post: 29-May-2018
Category:
Upload: dinhnhi
View: 213 times
Download: 0 times
Share this document with a friend
175
Algoritmos Secuenciales y Paralelos para la Resoluci´ on del Problema Inverso de Valores Singulares Trabajo de Tesis Doctoral Presentado por Georgina Flores Becerra Dirigido por Dr. Antonio M. Vidal Maci´ a Valencia, Espa˜ na Noviembre 2005
Transcript
Page 1: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmos Secuenciales y Paralelos para la

Resolucion del Problema Inverso de Valores

Singulares

Trabajo de Tesis Doctoral

Presentado por Georgina Flores Becerra

Dirigido por Dr. Antonio M. Vidal Macia

Valencia, Espana

Noviembre 2005

Page 2: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Indice general

1. Introduccion 6

1.1. Definicion del Problema Inverso de

Valores Singulares . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.1. Los Problemas Inversos de Valores Propios . . . . . . . . 8

1.1.2. Los Problemas Inversos de Valores Singulares . . . . . . . 10

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . 13

1.5. Resolucion y Casos de Prueba . . . . . . . . . . . . . . . . . . . . 15

1.6. Herramientas Hardware y Software de Entornos Paralelos . . . . 17

1.7. Evaluacion de Algoritmos Paralelos . . . . . . . . . . . . . . . . . 21

1.8. Estructura del trabajo . . . . . . . . . . . . . . . . . . . . . . . . 23

2. Metodos y Algoritmos Secuenciales para la Resolucion del PI-

AVS 24

2.1. Metodo Fuerza Bruta (FB) . . . . . . . . . . . . . . . . . . . . . 26

2.1.1. Algoritmo Fuerza Bruta . . . . . . . . . . . . . . . . . . . 28

2.1.2. Probando Fuerza Bruta . . . . . . . . . . . . . . . . . . . 29

2.2. Metodo I (MI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2.1. Automatizacion del Metodo I . . . . . . . . . . . . . . . . 35

2.2.2. Pruebas Numericas del Metodo I . . . . . . . . . . . . . . 36

2.3. Metodo Elevacion-Proyeccion (EP) . . . . . . . . . . . . . . . . . 40

2.3.1. Algoritmo secuencial Elevacion-Proyeccion . . . . . . . . . 43

2.3.2. Pruebas Numericas de Elevacion-Proyeccion . . . . . . . . 44

2.4. Metodo III (MIII) . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.4.1. Algoritmo Secuencial del Metodo III . . . . . . . . . . . . 53

2.4.2. Pruebas Numericas del Metodo III . . . . . . . . . . . . . 54

3. Implementacion, Analisis y Evaluacion de los Algoritmos del

PIAVS 59

3.1. Detalle de Operaciones de Algoritmos del PIAVS . . . . . . . . . 60

3.2. Algoritmos del PIAVS y Tiempos de Ejecucion Teoricos . . . . . 68

1

Page 3: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

3.3. Analisis y Evaluacion de los Algoritmos Secuenciales del PIAVS . 72

3.3.1. Requerimientos de Memoria . . . . . . . . . . . . . . . . . 72

3.3.2. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.3.3. Exactitud de la solucion . . . . . . . . . . . . . . . . . . . 73

3.3.4. Estimacion de la complejidad de tiempo y tiempos de eje-

cucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.3.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . 75

4. Algoritmos Paralelos para la Resolucion del PIAVS 77

4.1. Paralelizacion de Operaciones de Algoritmos del PIAVS . . . . . 78

4.1.1. Paralelizacion de rutinas necesarias para FB . . . . . . . . 79

4.1.2. Paralelizacion de rutinas necesarias para MI . . . . . . . . 81

4.1.3. Paralelizacion de rutinas necesarias para EP . . . . . . . . 82

4.1.4. Paralelizacion de rutinas necesarias para MIII . . . . . . . 83

4.2. Algoritmos Paralelos para el PIAVS y Tiempos de Ejecucion

Teoricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.3. Prestaciones Experimentales de los Algoritmos Paralelos del PIAVS 98

4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5. Resolucion Paralela del PIEVS 109

5.1. Resoluciones Generales del PIEVS . . . . . . . . . . . . . . . . . 110

5.2. Propuestas de Resoluciones Especıficas del PIEVS . . . . . . . . 115

5.3. Paralelizacion de Resoluciones Especıficas del PIEVS . . . . . . . 123

5.4. Prestaciones de Resoluciones Paralelas del PIEVS . . . . . . . . . 132

5.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

6. Algoritmos para la Resolucion del PIVSVP 139

6.1. Metodo MTriIU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

6.1.1. Algoritmo Secuencial del Metodo MTriIU . . . . . . . . . 143

6.1.2. Paralelizacion del Algoritmo MTriIU . . . . . . . . . . . . 145

6.1.3. Analisis de Prestaciones e Implementaciones del Algorit-

mo Paralelo MTriIU . . . . . . . . . . . . . . . . . . . . . 149

6.2. Metodo MBidiag . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

6.2.1. Algoritmo MBidiag y Experimentos Numericos . . . . . . 158

6.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

7. Conclusiones y Perspectivas 165

2

Page 4: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Indice de tablas

2.1. Puntos iniciales del caso ChuBai . . . . . . . . . . . . . . . . . . 25

2.2. Resultados esperados del caso ChuBai . . . . . . . . . . . . . . . 25

2.3. Dimensiones de F y J del algoritmo FB . . . . . . . . . . . . . . 29

2.4. Requerimiento de memoria del algoritmo FB . . . . . . . . . . . 29

2.5. Resultados y convergencia del caso ChuBai con FB . . . . . . . . 30

2.6. Errores del caso ChuBai con FB . . . . . . . . . . . . . . . . . . 31

2.7. Resultados del caso Gral con FB . . . . . . . . . . . . . . . . . . 32

2.8. Requerimiento de memoria de algoritmo MI . . . . . . . . . . . . 36

2.9. Resultados del caso ChuBai con MI . . . . . . . . . . . . . . . . . 37

2.10. Errores del caso ChuBai con MI . . . . . . . . . . . . . . . . . . . 37

2.11. Resultados y convergencia del caso Gral con MI . . . . . . . . . . 39

2.12. Requerimiento de memoria de EP . . . . . . . . . . . . . . . . . . 44

2.13. Resultados del caso ChuBai con EP . . . . . . . . . . . . . . . . 45

2.14. Errores del caso ChuBai con EP . . . . . . . . . . . . . . . . . . 45

2.15. Resultados del caso Gral con EP . . . . . . . . . . . . . . . . . . 47

2.16. Convergencia de EP para el caso Gral . . . . . . . . . . . . . . . 48

2.17. Requerimiento de memoria de MIII . . . . . . . . . . . . . . . . . 54

2.18. Resultados del caso ChuBai con MIII . . . . . . . . . . . . . . . . 55

2.19. Errores de ChuBai con MIII . . . . . . . . . . . . . . . . . . . . . 55

2.20. Resultados del caso Gral con MIII . . . . . . . . . . . . . . . . . 57

2.21. Convergencia de MIII para el caso Gral . . . . . . . . . . . . . . 58

4.1. Tiempos de Ejecucion Teoricos de FB en Kefren . . . . . . . . . 97

4.2. Tiempos de Ejecucion Teoricos de MI en Kefren . . . . . . . . . . 97

4.3. Tiempos de Ejecucion Teoricos de EP en Kefren . . . . . . . . . 97

4.4. Tiempos de Ejecucion Teoricos de MIII en Kefren . . . . . . . . . 98

4.5. Tiempos de Ejecucion Experimentales de FB . . . . . . . . . . . 99

4.6. Tiempos de Ejecucion Experimentales de MI . . . . . . . . . . . 99

4.7. Tiempos de Ejecucion Experimentales de EP . . . . . . . . . . . 100

4.8. Tiempos de Ejecucion Experimentales de MIII . . . . . . . . . . 100

4.9. Eficiencia Experimental de FB . . . . . . . . . . . . . . . . . . . 103

4.10. Eficiencia Experimental de MI . . . . . . . . . . . . . . . . . . . 104

3

Page 5: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

4.11. Eficiencia Experimental de EP . . . . . . . . . . . . . . . . . . . 104

4.12. Eficiencia Experimental de MIII . . . . . . . . . . . . . . . . . . 104

5.1. Tiempos de ejecucion experimentales de MI y EP para el PIEVS 114

5.2. Tiempos de ejecucion experimentales de MIE y EPE para el PIEVS121

5.3. Tiempos de ejecucion experimentales de dos implementaciones

paralelas de la svd . . . . . . . . . . . . . . . . . . . . . . . . . . 127

5.4. Tiempos de ejecucion y Speedup experimentales de MIE paralelo 134

5.5. Tiempos de ejecucion y Speedup experimentales de EPE paralelo 135

5.6. Eficiencia Experimental de MIE . . . . . . . . . . . . . . . . . . . 136

5.7. Eficiencia Experimental de EPE . . . . . . . . . . . . . . . . . . 136

6.1. Resultados del caso Triu con MTriIU . . . . . . . . . . . . . . . . 145

6.2. Tiempos de Ejecucion Experimentales de MTriIU en Kefren, con-

struyendo A en Proc0 . . . . . . . . . . . . . . . . . . . . . . . . 150

6.3. Tiempos de Ejecucion Experimentales de MTriIU en Kefren, SIN

construır A en Proc0 . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.4. Speedup experimental de MTriIU en Kefren, sin construir A en

Proc0, multiplicando el numero de procesadores por 2 y por 4 . . 151

6.5. Tiempos de Ejecucion Experimentales de MTriIU en Aldebaran,

bajo el modelo de Memoria Compartida . . . . . . . . . . . . . . 154

6.6. Eficiencia Experimental de MTriIU en Aldebaran. Modelo de

Memoria Compartida . . . . . . . . . . . . . . . . . . . . . . . . 155

6.7. Resultados del caso Bidiag con MBidiag, para n = {4, 10, 25, 50, 100},con c

(0)i = c∗i + δ (i = 1, n) . . . . . . . . . . . . . . . . . . . . . 160

6.8. Resultados del caso Bidiag con MBidiag, para n = {150, 200, 400, 500, 1000},con c

(0)i = c∗i + δ (i = 1, n) . . . . . . . . . . . . . . . . . . . . . 161

6.9. Metodos de Chu v.s. Li-Mathias v.s. MBidiag . . . . . . . . . . 162

4

Page 6: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Indice de figuras

4.1. Tiempos de ejecucion teoricos vs. experimentales de FB . . . . . 101

4.2. Tiempos de ejecucion teoricos vs. experimentales de MI . . . . . 101

4.3. Tiempos de ejecucion teoricos vs. experimentales de EP . . . . . 101

4.4. Tiempos de ejecucion teoricos vs. experimentales de MIII . . . . 102

4.5. Speedup experimental de FB y MI para m = {1000, 2000, 3000} . 102

4.6. Speedup experimental de EP y MIII para m = {1000, 2000, 3000} 103

4.7. SpeedUp Escalado de los algoritmos paralelos del PIAVS . . . . . 105

5.1. Tiempos de ejecucion experimentales con algoritmos PIAVS vs

PIEVS sobre los mismos casis de prueba . . . . . . . . . . . . . . 122

5.2. Speedup experimentales de MIE y EPE en el cluster Kefren . . . 136

5.3. Speedup Escalado de los algoritmos paralelos del PIEVS . . . . . 137

6.1. Speedup experimental de MTriIU en Kefren, SIN construir A en

Proc0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.2. Speedup experimentales de MTriIU en Aldebaran. Modelo de

Memoria Compartida . . . . . . . . . . . . . . . . . . . . . . . . 154

6.3. Speedup Escalado de MTriIU en Aldebaran. Memoria Compartida155

5

Page 7: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 1

Introduccion

El proposito de coleccionar datos es obtener informacion significativa acerca

de un sistema o fenomeno fısico. Si dada cierta informacion sobre los valores

de un conjunto de parametros, tratamos de utilizar relaciones teoricas para

obtener informacion sobre los valores de algunas cantidades que pueden medirse,

se estara resolviendo, por definicion, un problema directo. En cambio, si dada

cierta informacion sobre los valores de algunas cantidades medidas, se utilizan

relaciones teoricas para obtener informacion de los valores del conjunto de pa-

rametros, entonces se estara resolviendo un problema inverso [TV82].

En un problema directo los valores de los parametros son los datos y los

valores de algunas cantidades observables son las incognitas. Mientras que en un

problema inverso los datos son el resultado de algunas medidas y las incognitas

son los valores de los parametros. En otras palabras, se puede decir que un

problema inverso es aquel en el que se mide un efecto y se quiere determinar la

causa [TF03].

Los problemas directos pueden describirse como sigue [Gro99]

Entrada→ Proceso→ Salida

o bien como

Causa→Modelo→ Efecto

Si x simboliza la entrada y K el proceso, entonces el problema directo es encon-

trar Kx:

Entrada Proceso Salida

x → K → ?

Causa Modelo Efecto

6

Page 8: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Bajo este esquema, cada problema directo sugiere dos problemas inversos in-

mediatos: uno denominado problema de causalidad y otro denominado problema

de identificacion de modelo.

En el problema de causalidad, dado un modelo K y un efecto y, hay que

encontrar la causa del efecto:

Entrada Proceso Salida

? → K → y

Causa Modelo Efecto

mientras que en el problema de identificacion del modelo, dada informacion de

causas-efectos, hay que identificar el modelo [Gro99]:

Entrada Proceso Salida

x → ? → y

Causa Modelo Efecto

Los problemas directos se caracterizan por tener solucion unica y estable,

no ası los problemas inversos cuya solucion puede no existir, puede ser unica o

pueden ser multiples.

De acuerdo a [Gro99] los diferentes tipos de problemas inversos y sus apli-

caciones son:

Problemas Inversos en Calculo. El calculo es particularmente

una fuente rica en problemas inversos. No es de sorprender si pen-

samos en la relacion inversa que existe entre la diferenciacion y la

integracion. Problemas como calculo de trayectorias, determinacion

de la deformacion y distribucion de masas, distribucion y balanceo de

fuerzas, la mecanica orbital y la mecanica celeste son buenos repre-

sentantes de los Problemas Inversos en Calculo. Para su resolucion

se emplean metodos de aproximacion basados en la discretizacion de

derivadas e integrales, ademas de herramientas como la geometrıa

analıtica.

Problemas Inversos en Ecuaciones Diferenciales. Muchos de

los problemas en ciencia y tecnologıa estan vinculados con ecuaciones

diferenciales. Ejemplares de este tipo de problemas son los relaciona-

dos con: hidraulica, teorıa de irrigacion, conduccion de calor y sis-

temas dinamicos. Para atacar este tipo de problemas se emplean he-

rramientas matematicas como metodos de resolucion de ecuaciones

7

Page 9: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

diferenciales, transformada de Laplace, metodos de diferencias fini-

tas y elementos finitos.

Problemas Inversos en Algebra Lineal. El problema basico

del algebra lineal, la resolucion de un sistema de ecuaciones linea-

les, es un problema inverso. Ademas de los problemas basicos, se

cuentan los relacionados con: tomografıa, gravimetrıa, estereografıa,

geofısica, astronomıa. Los topicos matematicos empleados incluyen

proyecciones en hiperplanos, integracion multiple, transformada de

Laplace, matrices inversas, resolucion de mınimos cuadrados y anali-

sis de valores y vectores propios.

De acuerdo a que elementos se identifican como incognitas de un problema

inverso, estos se clasifican en dos grandes bloques [Gra98]:

Problemas inversos para estimar parametros. Tratan de la

determinacion de los valores de los parametros de un modelo que

permitan el mejor ajuste entre los resultados del modelo y los datos

medidos [Giu02].

Problemas inversos para estimar funciones. Involucran la de-

terminacion de una funcion desconocida.

Dentro de los problemas inversos para la estimacion de parametros, se en-

cuentran clasificados, entre otros: los Problemas Inversos de Valores Propios

(PIVP) y los Problemas Inversos de Valores Singulares (PIVS).

1.1. Definicion del Problema Inverso de

Valores Singulares

Antes de definir el Problema Inverso de Valores Singulares, se define el Pro-

blema Inverso de Valores Propios, como importante y principal antecedente.

1.1.1. Los Problemas Inversos de Valores Propios

Este tipo de problemas tiene como proposito la construccion de una matriz

con una determinada estructura que posea cierto espectro predefinido. Se definen

como sigue [Chu98]:

Dada una familia de matrices A(c) ∈ Ψ, con c = [c1, c2, · · · , cl]t ∈ F l

y escalares {λ∗1, λ

∗2, · · · , λ∗

n} ⊂ F , encontrar un parametro c tal que

σ(A(c)) = {λ∗1, λ

∗2, · · · , λ∗

n} donde:

8

Page 10: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

F representa el campo escalar de los reales < o de los com-

plejos C

σ(A) denota el espectro de la matriz A

Ψ denota cierto conjunto de matrices cuadradas, que entre

otras, pueden ser:

S(n) el conjunto de todas las matrices simetricas

en <n×n

O(n) el conjunto de todas las matrices ortogo-

nales en <n×n

DR(n) el conjunto de todas las matrices diagonales

en <n×n

H(n) el conjunto de todas las matrices Hermi-

tianas en Cn×n

DC(n) el conjunto de todas las matrices diagonales

en Cn×n

En [Chu98] se puede encontrar una clasificacion de estos problemas inversos,

entre ellos se especifican:

MVIEP. Problema Inverso Multivariable de Valores Propios

LSIEP. Problema Inverso de Mınimos Cuadrados de Valores Propios

PIEP. Problema Inverso Parametrizado de Valores Propios

SIEP. Problema Inverso Estructurado de Valores Propios

PDIEP. Problema Inverso Parametrizado de Valores Propios

AIEP. Problema Inverso Aditivo de Valores Propios

MIEP. Problema Inverso Multiplicativo de Valores Propios

de los cuales son de particular interes en este trabajo el LSIEP o caso simetrico

aditivo [VA01] [VA02] y el MIEP o caso simetrico multiplicativo [FVA02], que

se definen como:

LSIEP. Caso Aditivo Simetrico.

Dado un conjunto de escalares λ∗1, λ

∗2, ..., λ

∗m ⊂ < encon-

trar una matriz

X ∈{

A(c) = A0 +

l∑

i=1

ciAi|Ai ∈ S(n), i = 0, l

}

y un conjunto τ = {τ1, τ2, ..., τm}de ındices, con 1 ≤ τ1 <

τ2 < · · · < τm ≤ n, tales que la funcion

F (X, τ) =1

2

m∑

i=1

(λτi(X)− λ∗

i )2

donde λi(X), i = 1, n, son valores propios de la matriz X ,

sea minimizada.

9

Page 11: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

MIEP. Caso Multiplicativo Simetrico.

Dada una matriz simetrica y definida positiva A ∈ <n×n y

escalares reales λ∗1 ≤ λ∗

2 ≤ · · · ≤ λ∗n, encontrar c ∈ <n tal

que los valores propios reales λ1(c) ≤ λ2(c) ≤ · · · ≤ λn(c)

de la matriz DA, con D = diag(d1, d2, · · · , dn), satisfagan

λi(d) = λ∗i , para i = 1, n

1.1.2. Los Problemas Inversos de Valores Singulares

Al igual que los problemas inversos de valores propios, los de valores sin-

gulares consisten en construir una matriz que mantenga ciertas caracterısticas

especıficas de estructura, ası como un subconjunto de valores singulares dados.

Una definicion general de este tipo de problemas es:

Dada una familia de matrices A(c) ∈ <m×n (m ≥ n), con c =

[c1, c2, ..., cl]t ∈ <l y escalares {S∗

1 , S∗2 , · · · , S∗

n} ⊂ <, encontrar un

parametro c tal que los valores singulares de (A(c)) sean S∗1 , S∗

2 , ..., S∗n.

Esta definicion tambien puede particulalizarse para los casos aditivo y mul-

tiplicativo como sigue:

Definicion del Problema Inverso de Valores Singulares: Caso Aditi-

vo [Chu92a].

Dado un conjunto de matrices A0, A1, ..., Al ∈ <m×n (m ≥n) y un conjunto de numeros reales Σ∗ = {S∗

1 , S∗2 , ..., S∗

n},con S∗

1 > S∗2 > · · · > S∗

n, encontrar el conjunto de numeros

reales c = {c1, c2, ..., cl}, tal que los valores singulares de

A(c) = A0 + c1A1 + · · ·+ clAl sean los elementos de Σ∗.

Definicion del Problema Inverso de Valores Singulares: Caso Multi-

plicativo.

Dada una matriz A ∈ <m×n (m ≥ n), y un conjunto de

numeros reales Σ∗ = {S∗1 , S∗

2 , ..., S∗n}, con S∗

1 > S∗2 > · · · >

S∗n, encontrar una matriz M tal que los valores singulares

de MA sean los elementos de Σ∗.

Este problema se considera resuelto en el caso en que A

es cuadrada e invertible si se toma

M = diag(S∗1 , S∗

2 , ..., S∗n)QAS−1

A P tA,

donde A = PASAQtA es la descomposicion en valores sin-

gulares de A.

10

Page 12: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

1.2. Objetivos

En este trabajo se tiene por objetivo general disenar, implementar y evaluar

algoritmos secuenciales y paralelos para resolver eficientemente el Problema In-

verso de Valores Singulares. Para alcanzar este objetivo, se definen los siguientes

objetivos particulares:

F Disenar algoritmos secuenciales que implementen los metodos

que resuelven el PIVS reportados en la literatura.

F De los metodos que resuelven el PIVP, seleccionar aquellos

adaptables a la resolucion del PIVS, disenando los correspon-

dientes algoritmos secuenciales.

F Analizar y evaluar los diversos algoritmos que resuelven el PIVS,

de acuerdo a diversos parametros como: tiempos de ejecucion,

requerimientos de almacenamiento, convergencia y exactitud,

con el fin de determinar el o los algoritmos que reunan las ca-

racterısticas deseables de eficiencia, robustez y exactitud.

F Paralelizar los algoritmos secuenciales coleccionados para re-

solver casos del PIVS de tamanos equiparables a los requeridos

en aplicaciones de la ciencia y la ingenierıa.

F Analizar y evaluar las prestaciones y escalabilidad de los algo-

ritmos paralelos implementados para seleccionar el o los algo-

ritmos con mejores caracterısticas para la resolucion del PIVS.

F Optimizar los algoritmos secuenciales y paralelos para resolver

particularizaciones del PIVS, a traves de la explotacion de ca-

racterısticas estructurales de las matrices.

F Estudiar y analizar metodos para la resolucion simultanea del

PIVS y del PIVP.

1.3. Estado del Arte

Gran parte de los resultados existentes hasta ahora para la resolucion del

PIVS se deben a Moody T. Chu. En 1992 propone e implementa un par de meto-

dos numericos, uno discreto y otro continuo, para la resolucion de PIVS [Chu92a].

En el metodo continuo Chu trata al PIVS como un problema de optimizacion

para minimizar distancias y plantea que puede derivarse una ecuacion diferen-

cial ordinaria para caracterizar un paso de flujo descendente para la funcion de

distancia. El metodo discreto se basa en el denominado Method III que Friedland

et. al. [FNO87] proponen para el PIVP y que Chu adapta para la resolucion del

PIVS.

11

Page 13: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

En 1996 Chu y Chen formulan dos tipos de problemas de mınimos cuadra-

dos equivalentes entre sı y proponen una resolucion para el PIVP llamada

Lift&Project [CC96], que se basa en el Metodo de Proyeccion Alternativa.

Nuevamente Chu, en 1999, introduce un metodo para la construccion de

matrices con valores singulares y elementos de la diagonal prescritos [Chu99].

Considera que el teorema de Schur-Horn caracteriza la relacion entre entradas

diagonales y valores propios de matrices Hermitianas; de la misma forma el

teorema de Sing-Thompson caracteriza la relacion entre entradas diagonales y

valores singulares de matrices arbitrarias. Basado en el principio de induccion

construye numericamente esta matriz con un algoritmo recursivo, siempre que

los valores singulares dados y elementos diagonales satisfagan las condiciones

Sing-Thompson.

Posteriormente, en 2000, Chu propone un algoritmo recursivo que no solo

considera la construccion de matrices con valores singulares prescritos, sino tam-

bien con valores propios prescritos [Chu00]. Para ello utiliza el teorema Weyl-

Horn que caracteriza la relacion entre valores propios y valores singulares de

una matriz arbitraria. Basado en esta caracterizacion desarrolla un algoritmo

recursivo para construir numericamente una matriz con los valores propios y

singulares deseados.

En el mismo tenor, se puede encontrar un metodo planteado por Kosowski

y Smoktunowicz [KA00] en 2000, para construir una matriz triangular inferior

unidad con valores singulares prestablecidos. Tambien Li y Mathias [LM01], en

2001, establecen condiciones para la existencia de una matriz compleja n × n,

con n valores singulares deseados y m ≤ n valores propios deseados y disenan

un algoritmo para generar tal matriz, pudiendo elegir el orden en que los valores

propios aparezcan en la diagonal.

Un trabajo reciente es el de Politi [Pol03] en 2003, quien considera la resolu-

cion de un problema inverso de valores singulares introduciendo la descomposi-

cion de una matriz cuadrada real A = PSQt, con P , Q matrices cuadradas reales

ortogonales, con respecto a un producto interno particular definido a traves

de una matriz real diagonal G, de orden n, que tiene sus elementos iguales

a +1,−1, y S es matriz diagonal real con elementos no negativos llamados

valores G − singulares. Cuando G es la identidad, esta descomposicion es la

descomposicion en valores singulares usual y S es la matriz diagonal de valores

singulares. Ası, dado un conjunto S1, S2, · · · , Sn de n numeros reales positivos

se considera el problema de encontrar una matriz real A que los tenga como

valores G− singulares.

En la mayorıa de los trabajos de investigacion mencionados se reportan

experimentos numericos con problemas de tamano paqueno, por ejemplo, m = 5

y n = 4 en [Chu92a] y [BMX03], m = n = 50 en [KA00], por lo tanto

es necesario observar el comportamiento de los algoritmos para problemas de

12

Page 14: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

mayor tamano. Por otra parte, no se reportan en la literatura aproximaciones

paralelas a la resolucion del Problema Inverso de Valores Singulares, teniendo

en este rubro un campo abierto de investigacion.

1.4. Planteamiento del Problema

De acuerdo a los objetivos planteados en este trabajo, los problemas inversos

de valores singulares que se abordan son:

Problema Inverso Aditivo de Valores Singulares (PIAVS).

Dado un conjunto de matrices A0, A1, ..., An ∈ <m×n (m ≥ n) y un

conjunto de numeros reales Σ∗ = {S∗1 , S∗

2 , ..., S∗n}, tales que S∗

1 >

S∗2 > ... > S∗

n > 0, este problema consiste en encontrar un vector de

numeros reales c = [c1, c2, ..., cn]t, tal que los valores singulares de

A(c) = A0 + c1A1 + · · ·+ cnAn sean los elementos de Σ∗.

El PIAVS se caracteriza por tener mas de una solucion, es decir,

pueden existir cX y cY tales que los valores singulares de A(cX ) y

A(cY ) sean Σ∗. Por ejemplo, suponer m = n = 3, con

A0 A1 = e1et1 A2 = e2e

t2 A3 = e3e

t3

2

6

4

1 3 5

2 1 3

4 2 1

3

7

5

2

6

4

1 0 0

0 0 0

0 0 0

3

7

5

2

6

4

0 0 0

0 1 0

0 0 0

3

7

5

2

6

4

0 0 0

0 0 0

0 0 1

3

7

5,

existen cX = [3, 2, 1]t y cY = [1, 2, 3]t tales que los valores singulares

de A(cX) y A(cY ) son Σ∗ ={9.5, 1.8, 0.9}. Denotaremos con c∗ a

una de las soluciones del PIAVS, es decir al vector de numeros reales

c∗ = [c∗1, c∗2, ..., c

∗n]t, tal que los valores singulares de A(c∗) son Σ∗.

Tıpicamente el PIAVS se resuelve con aproximaciones calculadas por

metodos iterativos, por lo que se denota con c(0) la aproximacion ini-

cial.

Problema Inverso Estructurado de Valores Singulares (PIEVS).

Dado un conjunto de numeros reales Σ∗ = {S∗1 , S∗

2 , ..., S∗n}, tales que

S∗1 > S∗

2 > ... > S∗n > 0, el problema es construir una matriz tipo

Toeplitz T ∈ <n×n cuyos valores singulares sean Σ∗, es decir:

T =

t0 t−1 ... t−(n−2) t−(n−1)

t1 t0 ... t−(n−3) t−(n−2)

......

. . ....

...

t(n−2) t(n−1) ... t0 t−1

t(n−1) t(n−2) ... t1 t0

= Udiag(S∗1 , S∗

2 , ..., S∗n)V t,

13

Page 15: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

donde U y V son vectores singulares de T correspondientes a Σ∗.

Una matriz tipo Toeplitz puede representarse unicamente con su

primera columna y su primer renglon; ası, la matriz T anterior se

puede expresar en una notacion simplificada como:

T = toep(primer vector columna de T, primer vector renglon de T ) =

= toep([t0, t1, ..., t(n−2), t(n−1)], [t0, t−1, ..., t−(n−2), t−(n−1)]) =

= Udiag(S∗1 , S∗

2 , ..., S∗n)V t.

Si a partir de T se define T como

T = toep([1, t1, ..., t(n−2), t(n−1)], [1, t−1, t−2, ..., t−(n−2), t−(n−1)]) =

= Udiag([S∗1 , S∗

1 , ..., S∗n])V t,

donde

ti = ti/t0, para i = −(n− 1), ..., 0, ..., n− 1

y

S∗i = S∗

i /t0, para i = 1, n,

T se puede reescribir como

T = In+t1toep(e2, 0tn)+...+t(n−2)toep(en−1, 0

tn)+t(n−1)toep(en, 0t

n)+

+ t−1toep(0n, et2) + t−2toep(0n, et

3) + ...+

+ t−(n−2)toep(0n, etn−1) + t−(n−1)toep(0n, et

n),

donde ei es el i-esimo vector canonico y 0n es un vector columna

de n ceros. El problema de calcular los 2n − 1 elementos de T , de

modo que T tenga los n valores singulares deseados S∗i (i = 1, n),

implica asignar libremente valores a n − 1 elementos, tomando los

n elementos restantes como las incognitas de un PIAVS. Si las n

incognitas representan las n diagonales de T , el Problema Inverso

Estructurado de Valores Singulares siguiente:

toep([1, 0, ..., t(n/2)+1, ..., t(n−1)], [1, 0, ..., t−((n/2)+1), ..., t−(n−1)])+

t1toep(e2, 0tn) + ... + tn/2toep(e(n/2)+1, 0

tn)+

t−1toep(0n, et2) + ... + t−(n/2)toep(0n, et

(n/2)+1) =

= Udiag(S∗1 , S∗

2 , ..., S∗n)V t

queda representado como un Problema Inverso Aditivo de Valores

Singulares donde A0 = toep([1, 0, ..., t(n−1)], [1, 0, ..., t−(n−1)]), A1 =

toep(e2, 0tn),..., An/2 = toep(e(n/2)+1, 0

tn), A(n/2)+1 = toep(0n, et

2),...,

An = toep(0n, et(n/2)+1) y c = [t1, ..., tn/2, t−1, ..., t−(n/2)]. Al poder

14

Page 16: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

expresar al PIEVS como un PIAVS, el PIEVS puede tener mas de

una solucion y c∗ denota una de ellas.

Problema Inverso de Valores Singulares y Valores Propios

(PIVSVP). Dados el conjunto de numeros reales positivos Σ∗ =

{S∗1 , S∗

2 , ..., S∗n} y el conjunto de numeros reales Λ∗ = {L∗

1, L∗2, ..., L

∗n},

tales que S∗1 > S∗

2 > ... > S∗n, |L∗

1| > |L∗2| > ... > |L∗

n| y que cumplen

las condiciones Weyl-Horn:

k∏

j=1

|L∗j | ≤

k∏

j=1

S∗j para k = 1, n− 1

n∏

j=1

|L∗j | =

n∏

j=1

S∗j ,

el PIVSVP consiste en construir una matriz de tamano n × n que

posea tanto los valores singulares Σ∗ como los valores propios Λ∗.

1.5. Resolucion y Casos de Prueba

Habiendo definido los problemas a abordar, a continuacion se hace una breve

mencion de los metodos que los resuelven, los cuales se analizan, disenan e im-

plementan secuencial y paralelamente en este trabajo y cuyo estudio se reporta

a lo largo de este documento.

Fuerza Bruta (FB). La forma mas simple de expresar el PIAVS

es como un sistema de ecuaciones no lineales de la forma F (z) = 0

que se construye directamente de la definicion del PIAVS y que se

resuelve con el metodo de Newton. Esta forma de abordar el PIAVS

es una aportacion de este trabajo [FBGV05].

Metodo I (MI). Del conjunto de cuatro metodos llamados Method

I, Method II, Method III, Method IV para la resolucion del PIVP [FNO87],

en este trabajo se adapta el Method I para la resolucion del PI-

AVS [CCFV05], que es un metodo tipo Newton.

Metodo III (MIII). Este es el metodo discreto dado por Chu en

[Chu92a], adaptacion del Method III [FNO87]. Tambien es un meto-

do tipo Newton para la resolucion del PIAVS.

Elevacion-Proyeccion (EP). Este metodo [FBVM03] es una adaptacion

del metodo Lift&Project [CC96]. Se basa en el planteamiento del PI-

AVS como un problema de mınimos cuadrados. Esta adaptacion es

15

Page 17: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

un aporte de este trabajo.

Metodo para la construccion de una matriz triangular in-

ferior unidad (MTriIU). Tambien se estudia este metodo presen-

tado en [KA00] que construye una matriz triangular inferior unidad

con valores singulares prestablecidos que cumplen las condiciones de

Weyl, resolviendo ası un caso particular del PIVSVP.

Metodo para la construccion de una matriz bidiagonal (MBi-

diag). Este metodo es un aporte de este trabajo de tesis, consiste

en la construccion de una matriz bidiagonal, con valores singulares

y valores propios prestablecidos que satisfacen las condiciones de

Weyl-Horn. Este es un metodo alternativo a los presentados por

Chu en [Chu00] y Li y Mathias en [LM01], que construyen matrices

cuasitriangular superior y triangular inferior, respectivamente.

Todos los metodos planteados para la resolucion del PIAVS tambien resuel-

ven el PIEVS.

La experimentacion con estos metodos se realiza utilizando los siguientes

casos de prueba:

Casos

No estructurados

Chu y Bai (ChuBai)

General (Gral)

Diagonal (Diag)

Estructurados

Toeplitz Triangular Inferior (ToepTril)

Toeplitz General (ToepGral)

Triangular Inferior Unidad (TrilU)

Bidiagonal (Bidiag)

Caso ChuBai. El caso Chu es un conjunto de pruebas del PIAVS

dadas en [Chu92a] que consideran 6 matrices, A0, A1, ..., A5, de

tamano 5 × 4 (m = 5, n = 4), tres conjuntos de valores singulares

prescritos Σ∗A, Σ∗

B , Σ∗C , con sus correspondientes soluciones c∗A, c∗B ,

c∗C y puntos iniciales c(o)A , c

(o)B y c

(o)C . El caso Bai tambien es un con-

junto de tres pruebas del PIAVS (A, B, C), con m = 5 matrices de

tamano m× n = 5× 4, que se pueden encontrar en [BMX03].

Caso Gral. Con el fin de probar los metodos del PIAVS para casos

aleatorios, se considera que las matrices A0, A1, ..., An no tienen es-

tructura ni valores particulares.

16

Page 18: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Caso Diag. Para probar los metodos del PIAVS con tamanos su-

ficientemente grandes, se utilizan las matrices A0 aleatoria sin es-

tructura y Ai = eieti (i = 1, n); en este caso basta con almacenar

explıcitamente solo la matriz A0, disminuyendo sustancialmente el

almacenamiento requerido, pudiendo incrementar los valores de m y

n.

Caso ToepGral. De una matriz aleatoria tipo Toeplitz se generan

las matrices Ai (i = 0, n) para las pruebas de los metodos del PIEVS.

Caso ToepTril. Para probar los metodos en un caso particular del

PIEVS, a partir de una matriz aleatoria tipo Toeplitz triangular in-

ferior, se determinan las matrices Ai (i = 0, n).

Caso TrilU. Este es un caso de prueba del PIVSVP donde no es

necesario determinar las matrices Ai (i = 0, n), basta con especificar

los valores singulares deseados Σ∗, que satisfagan las condiciones de

Weyl, para probar la construccion de una matriz triangular inferior

unidad que posea tales valores.

Caso Bidiag. Otro caso de prueba del PIVSVP es el que requiere

de la especificacion de valores singulares y valores propios prestable-

cidos que satisfagan las condiciones de Weyl y Horn, con los cuales

probar el algoritmo que construye una matriz bidiagonal que posea

tales valores singulares y valores propios.

1.6. Herramientas Hardware y Software de En-

tornos Paralelos

La implementacion secuencial y paralela de los algoritmos para el estudio y

observacion experimental de los metodos que resuelven en PIVS se ha llevado a

cabo dentro del entorno de programacion que se describe en esta seccion.

Los problemas que requieren un alto grado de computo para su resolucion,

como es el caso del PIVS (lo que se constatara en a lo largo de este traba-

jo), requieren ası mismo de potentes entornos de programacion que garanticen

una resolucion eficiente. Entornos de programacion secuencial pueden ofrecer

estas garantıas siempre que se cuente con los recursos suficientes para acceder

a computadores de alta productividad que incorporen los ultimos avances tec-

nologicos. Sin embargo, siempre se encontrara una limitacion fısica que impida

obtener mayor beneficio.

17

Page 19: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

El entorno de programacion alternativo es el que integra computadoras de

bajo costo unidos en un multicomprocesador. Con este tipo de entornos se logran

resoluciones eficientes sin el problema de las limitaciones fısicas ni de los altos

costos de un supercomputador secuencial, al tener la posibilidad de aumentar

el numero de procesadores que se integran en el multicomprocesador.

En este trabajo se han utilizado esencialmente multiprocesadores de memoria

distribuida, cuyos componentes son PCs o estaciones de trabajo conectadas

mediante una red de interconexion de paso de mensajes. Tambien se ha podido

contar con el uso de una multicomputadora de memoria compartida distribuida.

El uso de ambos tipos de sistemas ha dado la posibilidad de disenar algoritmos

donde el control de la distribucion y manipulacion de los datos es manejada

por el programador, utilizando mecanismos de paso de mensajes; y tambien se

han podido disenar algoritmos donde este control se realiza mediante el uso

de directivas, como las ofrecidas por OpenMP. Una breve descripicion de los

clusters utilizados se da enseguida.

Cluster Kubrick. Este cluster de memoria distribuida esta consti-

tuido de 2 nodos biprocesadores Intel Xeon, a 2.2 GHz y 4 Gbytes

de RAM. Los nodos estan interconectados con una red Ethexpress.

Trabaja bajo plataforma LINUX (Red Hat 8).

Cluster Kefren. Kefren es otro cluster de memoria distribuida que

trabaja bajo el ambiente LINUX (Red Hat 8), consta de 20 nodos

biprocesadores Pentium Xeon, a 2 GHz y 1 Gbyte de RAM. Los

nodos estan interconectados mediante una red SCI con una topologıa

de Toro 2D en una malla de 4 × 51.

Cluster Aldebaran. Aldebaran es un sistema SGI Altix 3700 de

48 procesadores Intel Itanium 2, a 1.5 GHz y 16 Gbytes de RAM.

Los nodos estan conectados mediante una red de interconexion SGI

NumaLink en una topologıa de hipercubo. Funciona bajo el sistema

operativo LINUX (Ren Hat 7.2) y es considerado un sistema de

memoria compartida distribuida2.

Cluster MareNostrum. Es un cluster JS20, PPC 970 a 2.2 GHz,

dispone de 4564 procesadores POWER y 9 Terabytes de RAM.

Esta basado en una red de interconexion de procesadores Myrinet

y trabaja bajo el sistema operativo LINUX (Suse). MareNostrum

representa el computador mas potente de Europa y esta dentro de

los diez primeros lugares en el Top 500. Al momento de redactar

1http://www.grycap.upv.es2http://www.asic.upv.es

18

Page 20: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

este documento, los algoritmos desarrollados en esta tesis se estan

poniendo a punto para la experimentacion en este cluster3.

Para el tipo de hardware utilizado existe software adecuado que explota las

caracterısticas de la arquitectura y permite obtener el maximo rendimiento; por

eso se ha empleado, para los programas codificados en lenguaje de programacion

Fortran90, las siguientes bibliotecas secuenciales:

BLAS (Basic Linear Algebra Subprograms). Coleccion de rutinas

para realizar operaciones basicas a bloques de matrices y vectores

[HDDCH88].

LAPACK (Linear Algebra PACKage). Biblioteca que contiene ruti-

nas para resolver sistemas de ecuaciones lineales, problemas de mıni-

mos cuadrados lineales, problemas de valores propios y problemas de

valores singulares, problemas comunes del algebra lineal [ABB+95].

Tambien se han utilizado las bibliotecas paralelas:

MPI (Message Passing Interface). Es una biblioteca de comunica-

ciones que implementa el mecanismo de paso de mensajes entre

nodos de computo que se comunican mediante una red de inter-

conexion [GLS94] [VP00].

BLACS (Basic Linear Algebra Communication Subprograms). Es

una biblioteca que ofrece rutinas de comunicacion de paso de men-

sajes que aparecen con frecuencia en computos paralelos del algebra

lineal.

PBLAS (Parallel Basic Linear Algebra Subprograms). Es una ver-

sion de BLAS para computadoras de memoria distribuida [CDO+95].

Tanto PBLAS como BLACS proporcionan rutinas necesarias para

el funcionamiento de ScaLAPACK.

ScaLAPACK (Scalable LAPACK). Librerıa disenada para resolver

un conjunto de rutinas LAPACK en multicomputadoras de memoria

distribuida con mecanismos de comunicacion de paso de mensajes.

Asume que las matrices que maneja se descomponen en bloques cıcli-

cos bidimensionales sobre una malla logica de Prc = Pr × Pc proce-

sadores (Pr numero de procesadores renglon, Pc numero de proce-

sadores columna). Por ejemplo, si la malla de procesadores consta

3http://www.bsc.org.es

19

Page 21: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

de 2 renglones y 3 columnas (Pr = 2, Pc = 3, Prc = 6), se espera

que una matriz de tamano 9 × 9 y un vector de tamano 9, que se

descomponen en bloques de tamano 2 × 2, queden distribuidos en

la malla de procesadores como sigue [BCC97]:

Pc

0 1 2

a11 a12 a17 a18 a13 a14 a19 a15 a16

a21 a22 a27 a28 a23 a24 a29 a25 a26

0 a51 a52 a57 a58 a53 a54 a59 a55 a56

a61 a62 a67 a68 a63 a64 a69 a65 a66

Pr a91 a92 a97 a98 a93 a94 a99 a95 a96

a31 a32 a37 a38 a33 a34 a39 a35 a36

1 a41 a42 a47 a48 a43 a44 a49 a45 a46

a71 a72 a77 a78 a73 a74 a79 a75 a76

a81 a82 a87 a88 a83 a84 a89 a85 a86

La jerarquıa de software de ScaLAPACK es la siguiente:

ScaLAPACK

↑ ↑LAPACK PBLAS

↑ ↗ ↑BLAS BLACS

↑MPI

Se han utilizado las versiones optimizadas del lenguaje Fortran90 y de las

bibliotecas de algebra lineal numerica siguientes:

Compilador Fortran del sistema de compiladores de Intel [Cor03]

y del sistema de compiladores IBM4. Para la codificacion de los al-

goritmos disenados bajo el modelo de memoria compartida, se han

utilizado directivas OpenMP de este compilador.

MKL (Math Kernel Library). Es la biblioteca que contiene funciones

matematicas optimizadas para aplicaciones cientıficas e ingenieriles.

4http://publib.boulder.ibm.com/infocenter/lnxpcomp/index.jsp

20

Page 22: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Incluye: BLAS, LAPACK, PARDISO, biblioteca matematica vecto-

rial y biblioteca estadıstica vectorial optimizadas para procesadores

Intel [Cor04].

SCSL (Silicon Computing Scientific Libraries). Es la biblioteca que

contiene las versiones optimizadas de BLAS, LAPACK y ScaLA-

PACK para los sistemas SGI [SG03].

ESSL (Engineering and Scientific Subroutine Library) y PESSL

(Parallel ESSL). Estas bibliotecas proporcionan un conjunto de fun-

ciones matematicas para aplicaciones cientıficas e ingenieriles, opti-

mizadas para sistemas Linux en sistemas POWER de IBM5.

Todas estas bibliotecas garantizan eficienca, portabilidad y robustez de los

programas secuenciales y paralelos implementados en los cluster descritos.

1.7. Evaluacion de Algoritmos Paralelos

La evaluacion de los algoritmos paralelos requiere de metricas de presta-

ciones que consideren el tamano del problema a resolver (m) y el numero de

procesadores empleados para ello (Prc). Las metricas que se utilizan tıpica-

mente son [KGGKrp94]:

Tiempo de Ejecucion, que se denota con la funcion

T (m, Prc) = TA(m, Prc)tf + TC(m, Prc)

donde

TA(m, Prc) es el tiempo empleado por el algoritmo para realizar o-

peraciones aritmeticas

tf es el tiempo de ejecucion de una operacion en punto flotante

TC(m, Prc) es el tiempo empleado por el algoritmo para realizar

comunicaciones entre procesadores

En el modelo de paso de mensajes, el tiempo de comunicacion de un men-

saje de longitud m de un nodo a otro en una red de procesadores se expresa

como [DD95]:

TC(m, Prc) = tm + mtv

5http://publib.boulder.ibm.com/infocenter/clresctr/index.jsp

21

Page 23: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

donde

tm es el tiempo de establecimiento de comunicacion entre los nodos

(latencia)

tv es el tiempo de transferencia de un mensaje de longitud 1 (inverso

del ancho de banda)

Aceleracion de ejecucion (Speedup), que mide la ganancia de velocidad de

ejecucion del algoritmo paralelo con respecto al mejor algoritmo secuencial que

resuelve el mismo problema. El Speedup esta dado por:

S(m, Prc) =T (m, 1)

T (m, Prc),

idealmente se espera que el Speedup sea igual al numero de procesadores em-

pleados [KGGKrp94].

Eficiencia, que mide el porcentaje del tiempo de ejecucion que los procesadores

se mantienen utilmente empleados. La Eficiencia se define como:

E(m, Prc) =S(m, Prc)

Prc,

donde la eficiencia ideal es igual a 1 [KGGKrp94].

Escalabilidad, que puede, a su vez, evaluarse mediante diferentes metricas que

pueden encontrarse en la literatura especializada [KGGKrp94]. Es conveniente

tener en cuenta las caracterısticas de los problemas con los que se esta tratando

para elegir la metrica adecuada de escalabilidad [MT97]. En este trabajo se

ha utilizado el Speedup escalado como se ha definido en [KGGKrp94] por su

facilidad de uso cuando resultados experimentales estan disponibles. El Speedup

escalado mide la capacidad que tiene el algoritmo paralelo de mantener sus

prestaciones cuando crecen en la misma proporcion los recursos del sistema y

el tamano del problema. Considerando que el costo teorico computacional de

un algoritmo secuencial es W , entonces, escalar el numero de procesadores Prc

y el tamano del problema en la misma proporcion, implica que si se escala el

numero de procesadores con kPrc, entonces W debe escalarse con kW .

Por lo tanto, para evaluar un algoritmo que se ejecute en los clusters de la

seccion anterior, se necesita estimar el valor de los parametros tf , tm y tv . El

valor de tf depende del tipo de operaciones de punto flotante que se realicen:

escalares, vectoriales o matriciales. Los resultados obtenidos para cada cluster

son:

22

Page 24: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tiempo de Flop (tf )

Cluster Escalares Vectoriales Matriciales

Kubrick 3e-3 µseg 2e-2 µseg 3e-4 µseg

Kefren 3e-3 µseg 1e-2 µseg 5e-4 µseg

Aldebaran 3e-3 µseg 1e-2 µseg 2e-4 µseg

MareNostrum 1e-5 µseg 1e-3 µseg 1e-4 µseg

Los parametros de comunicaciones tm y tv se han medido utilizando un

algoritmo tipo ping-pong [DD95]. Para cada cluster los parametros obtenidos

son:

Cluster tm (latencia) tv (transferencia) ancho de banda

Kubrick 47 µseg 0.12 µseg/doble 66 Mbytes/seg

Kefren 5 µseg 0.048 µseg/doble 166 Mbytes/seg

Aldebaran 2 µseg 0.0012 µseg/doble 6.4 Gbytes/seg

MareNostrum 1 µseg 0.0095 µseg/doble 841 Mbytes/seg

1.8. Estructura del trabajo

Habiendo definido el problema a tratar y especificado las condiciones de

resolucion, en el Capıtulo 2 se abordan los metodos que resuelven el PIAVS,

presentando sus algoritmos secuenciales, las estructuras de datos utilizadas, la

estimacion de requerimientos de almacenamiento y pruebas numericas.

En el Capıtulo 3 se presenta una implementacion eficiente de los algoritmos

secuenciales del PIAVS, haciendo uso de rutinas implementadas en BLAS y

LAPACK, se estima la complejidad de tiempos de los algoritmos y se analizan y

evaluan los metodos del PIAVS de acuerdo a: eficiencia, complejidad de tiempo

de ejecucion, requerimientos de memoria, exactitud y convergencia.

En el Capıtulo 4 se paralelizan los algoritmos del PIAVS y se realizan pruebas

numericas para analizar sus prestaciones.

En el Capıtulo 5 se aborda la particularizacion de los algoritmos del PIAVS

para resolver el PIEVS, tanto secuencial como paralelamente, se analizan las

prestaciones de los algoritmos particularizados y se evaluan con respecto a los

algoritmos generales.

En el Capıtulo 6 se resuelve una particularizacion del PIVSVP, proponiendo

algoritmos paralelos bajo el Modelo de Memoria Distribuida y del Modelo de

Memoria Compartida, contrastando ambas implementaciones y analizando sus

ventajas e inconvenientes. Tambien se presenta un metodo para resolver una

generalizacion del PIVSVP.

Por ultimo, en el Capıtulo 7 se dan las conclusiones de este trabajo y las

perspectivas de investigacion que se desprenden del mismo.

23

Page 25: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 2

Metodos y Algoritmos

Secuenciales para la

Resolucion del PIAVS

En este capıtulo se desarrollan los algoritmos secuenciales que dan solucion

al PIAVS correspondientes a los metodos FB, MI, MIII y EP.

FB es un algoritmo que resulta de abordar el PIAVS haciendo uso directo

de sus caracterısticas inherentes y es uno de los aportes de este trabajo. MI ha

sido adaptado del Method I [FNO87] del PIVP por los autores de este trabajo.

EP es un algoritmo inspirado en el algoritmo Lift&Project [CC96] del PIVP y

es otro de los aportes de este trabajo. MIII se ha tomado directamente de la

literatura [Chu92a].

Todos los algoritmos son de naturaleza iterativa y calculan en cada iteracion

una aproximacion a la solucion c∗, partiendo de una aproximacion inicial c(0).

Las pruebas numericas para este capıtulo se han realizado ejecutando imple-

mentaciones Matlab. Implementaciones secuenciales eficientes se presentan en

el Capıtulo 3 utilizando el lenguaje de programacion Fortran y las herramientas

software de BLAS y LAPACK y en el Capıtulo 4 se presentan las implementa-

ciones correspondientes a los algoritmos paralelos disenados, utilizando Fortran,

BLACS y LAPACK, demas de las herramientas software PBLAS, ScaLAPACK,

BLACS y MPI.

Para las pruebas numericas de este capıtulo se ha utilizado un nodo del

cluster Kubrick sobre los casos ChuBai y Gral. El caso ChuBai tiene como puntos

iniciales y resultados esperados los de las Tablas 2.1 [Chu92a] y 2.2 [BMX03].

Para las pruebas del caso Gral se han considerado las dimensiones m = n =

{4, 5, 10, 15, 20, 25, 30, 40, 50}, con puntos iniciales c(0)i = c∗i + δ (i = 1, n), con

δ = {1e − 1, 1e0, 1e1}, con el fin de seleccionar puntos iniciales cercanos a la

24

Page 26: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.1: Puntos iniciales del caso ChuBaiPruebas Chu Pruebas Bai

casos c(0) S(0) c(0) S(0)

A 4.4029e-1 6.8899e0 1.4922e0 1.0619e1

3.9909e-1 5.1196e0 8.2514e-1 9.5193e0

-1.5330e0 3.9921e0 2.0528e0 5.8848e0

-1.3434e0 1.4204e0 1.3341e0 3.3880e0

B 1.9984e0 1.0936e1 2.8790e0 1.5645e1

1.3802e0 6.5910e0 1.7106e0 1.1566e1

-6.5989e-1 4.4004e0 1.5505e0 6.1310e0

-9.7495e-1 8.0045e-1 5.0169e-1 3.9678e0

C 1.0639e0 6.8109e0 2.7143e0 1.2923e1

1.2202e0 5.6892e0 -5.7860e-1 1.0640e1

-4.4669e-2 3.2544e0 2.2674e0 7.1825e0

6.6640e-3 1.3534e0 5.7221e-1 2.7371e0

Tabla 2.2: Resultados esperados del caso ChuBai

Pruebas Chu Pruebas Bai

casos c∗ S∗ c∗ S∗

A -8.8571e-2 5.2995e0 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 2.3693e0 1.3414e1 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 8.8169e-1 6.9200e0 1.8505e0 1.0321e1

1.3168e0 5.1245e0 -1.4848e0 8.4827e0

-2.5081e-1 3.3331e0 2.0673e0 6.1540e0

-1.5865e-1 1.0240e0 -2.8719e-1 1.8127e0

solucion, por tratarse de metodos tipo Newton. Pruebas con dimensiones de

mayor orden (m = {O(102), O(103)}) seran consideradas en los Capıtulos 3 y 4.

En todos los casos considerados se ha aplicado una tolerancia de 5e− 6 para

el criterio de paro propio de cada algoritmo.

Los resultados arrojados por los experimentos numericos serviran en el si-

guiente capıtulo para analizar el comportamiento, las ventajas e inconvenientes

de los metodos, con base en aspectos espaciales, temporales, de convergencia y

exactitud.

Un denominador comun de los algoritmos es el conjunto de estructuras de

datos que utilizan todos ellos:

Ai para i = 0, n; son n+1 matrices de tamano m×n (A0, A1, ..., An).

S∗ vector de tamano n, almacena los valores singulares deseados.

25

Page 27: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

c∗ vector de tamano n, almacena una de las soluciones del PIAVS.

c vector de tamano n, almacena las aproximaciones a la solucion

c∗, es decir, las n incognitas del sistema.

A este conjunto de estructuras de datos se anaden las propias de cada algo-

ritmo en el analisis de requerimiento de almacenamiento.

Para evitar problemas de almacenamiento con las dimensiones mayores, la

implementacion Matlab va generando las matrices Ai (i = 0, n) al momento de

utilizarlas, requiriendo solamente una matriz de m × n elementos en memoria,

en lugar de n + 1 matrices de m× n elementos.

2.1. Metodo Fuerza Bruta (FB)

El PIAVS requiere de encontrar un vector c tal que los valores singulares de

A(c) = A0 + c1A1 + ... + cnAn (2.1)

sean un conjunto de valores dados S∗ = {S∗1 , S∗

2 , ..., S∗n}, es decir, tal que la

descomposicion en valores singulares de A(c) sea

A(c) = Pdiag(S∗)Qt (2.2)

siendo P ∈ <m×m los vectores singulares izquierdos y Q ∈ <n×n los vectores

singulares derechos de A(c), correspondientes a S∗; estos son ortonormales, es

decir

P tP = Im (2.3)

QtQ = In. (2.4)

Con (2.2), (2.3) y (2.4) se puede construir un sistema de ecuaciones no

lineales de la forma

F (z) = 0 (2.5)

donde

z = [Q1,1, Q1,2, ..., Qn,n, P1,1, P1,2, ..., Pm,n, c1, c2, ..., cn]t, (2.6)

siendo que las incognitas del sistema son: el vector c (n incognitas) y los ele-

mentos de los vectores singulares P (mn incognitas 1) y Q (n2 incognitas); por

lo que (2.5) se expresa como

F (Q, P, c) = 0

1Se consideran solo los min{m, n} vectores singulares de P porque se manejan min{m, n}

valores singulares;

26

Page 28: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

que por (2.2), (2.3) y (2.4), es el conjunto de ecuaciones siguientes

Fmn+n n+12 +(i−1)n+j−i+1(Q, P, c) = (QtQ− In)i,j ; i = 1, n; j = i, n; (2.7)

Fmn+(i−1)n+j−i+1(Q, P, c) = (P tP − Im)i,j ; i = 1, n; j = i, n; (2.8)

F(i−1)n+j(Q, P, c) = (A0 +

n∑

k=1

ckAk − Pdiag(S∗)Qt)i,j ; i = 1, m; j = 1, n;

(2.9)

Por (2.7) se tienen nn+12 ecuaciones, por (2.8) nn+1

2 ecuaciones y por (2.9)

se tienen mn ecuaciones mas. Por lo tanto, se ha definido un sistema no lineal

de mn + n2 + n ecuaciones con mn + n2 + n incognitas. Como es tıpico de este

tipo de sistemas, se utiliza el metodo de Newton para calcular una sucesion de

vectores z(0), z(1), z(2), ..., z(k) que aproximen a la solucion de F (z) = 0, es decir,

una sucesion de Q(0), P (0), c(0), Q(1), P (1), c(1), Q(2), P (2), c(2), ..., Q(k), P (k), c(k)

que aproximen a la solucion de F (Q, P, c) = 0. Entonces, si z(k) es el k-esimo

elemento de la sucesion, el (k+1)-esimo elemento esta dado por [DS83] [Kel95]:

z(k+1) = z(k) − J(z(k))−1F (z(k)) (2.10)

donde J(z(k)) es la matriz Jacobiana de F (z) evaluada en z(k). En este caso, la

matriz Jacobiana de F (Q, P, c) se define como

J(Q, P, c) =[

∂Fr(z)∂zt

]

r=1:mn+n2+n,t=1:mn+n2+n=

J1,1 0 0

0 J2,2 0

J3,1 J3,2 J3,3

donde J1,1, J2,2, J3,1, J3,2 y J3,3 son bloques de tamano n(n + 1)/2×n2, n(n +

1)/2×mn, mn× n2, mn×mn y mn× n, respectivamente, tales que

J1,1 =

[∂(QtQ− In)i,j

∂Qk,t

]

i=1:n n+12 ,j=1:n2

; k = 1, n; t = 1, n (2.11)

J2,2 =

[∂(P tP − Im)i,j

∂Pk,t

]

i=1:n n+12 ,j=1,mn

; k = 1, m; t = 1, n (2.12)

J3,1 =

[∂(A0 +

∑nl=1 clAl − Pdiag(S∗)Qt)i,j

∂Qk,t

]

i=1:mn,j=1:n2

; k = 1, n; t = 1, n

(2.13)

J3,2 =

[∂(A0 +

∑nl=1 clAl − Pdiag(S∗)Qt)i,j

∂Pk,t

]

i=1:mn,j=1:mn

; k = 1, m; t = 1, n

(2.14)

J3,3 =

[∂(A0 +

∑nl=1 clAl − Pdiag(S∗)Qt)i,j

∂ck

]

i=1:mn,j=1:n

; k = 1, n (2.15)

donde

para i = 0, n− 1; j = 1, n; row = 1 +∑i−1

k=0(n− k); col = i + (j − 1)n + 1

27

Page 29: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

(J1,1)row,col = 2Qj,i+1

(J1,1)row+1:row+n−i−1,col = Qtj,i+2:n

(J1,1)row+a,col+a = Qj,i+1 a = 1, n− i− 1;

para i = 0, n− 1; j = 1, m; row = 1 +∑i−1

k=0(n− k); col = i + (j − 1)n + 1

(J2,2)row,col = 2Pj,i+1

(J2,2)row+1:row+n−i−1,col = P tj,i+2:n

(J2,2)row+a,col+a = Pj,i+1 a = 1, n− i− 1;

y para i = 1, m; j = 1, n; t = 1, n

(J3,1)(i−1)n+j,(j−1)n+t = S∗t Pi,t

(J3,2)(i−1)n+j,(i−1)n+t = S∗t Qj,t

(J3,3)(i−1)n+j,t = (At)i,j

Con lo definido hasta ahora se puede aplicar la iteracion de Newton (2.10)

al sistema de ecuaciones no lineales (2.5), que convergera cuadraticamente a

la solucion si se parte de un z(0) suficientemente cercano a esta, tal como se

demuestra en [DS83] [Kel95]. Al algoritmo correspondiente a este metodo se

da en la siguiente subseccion.

2.1.1. Algoritmo Fuerza Bruta

El algoritmo FB esta en el algoritmo 1. Este utiliza, ademas de Ai (i = 0, n),

S∗, c∗, c, las siguientes estructuras de datos:

A o P matriz de tamano m× n, almacena tanto la matriz A(c) = A0 +∑n

i=1 ciAi, como P , los n vectores singulares izquierdos de A(c),

es decir, m× n incognitas del sistema.

Q matriz de tamano n × n, almacena Qt, los n vectores singulares

transpuestos derechos de A(c), es decir, n× n incognitas del sis-

tema.

J matriz de tamano (mn + n2 + n) × (mn + n2 + n), almacena la

matriz Jacobiana de F (c) y su descomposicion lu.

S vector de tamano n, almacena los valores singulares de A(c).

28

Page 30: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.3: Dimensiones de F y J del algoritmo FB

m = n dimensiones de F dimensiones de J

4 36× 1 36 × 36

10 210 × 1 210 × 210

30 1830 × 1 1830 × 1830

50 5050 × 1 5050 × 5050

100 20100 × 1 20100 × 20100

500 500500 × 1 500500 × 500500

1000 2001000 × 1 2001000 × 2001000

Tabla 2.4: Requerimiento de memoria del algoritmo FB

Estructuras Numero de elementos de doble precision

F 3.6e01 2.1e02 1.8e03 5.1e03 2.0e04 5.0e05 2.0e06

J 1.3e03 4.4e04 3.3e06 2.6e07 4.0e08 2.5e11 4.0e12

Ai=0,n 8.0e01 1.1e03 2.8e04 1.3e05 1.0e06 1.3e08 1.0e09

A o P 1.6e01 1.0e02 9.0e02 2.5e03 1.0e04 2.5e05 1.0e06

Q 1.6e01 1.0e02 9.0e02 2.5e03 1.0e04 2.5e05 1.0e06

S∗ 4.0e00 1.0e01 3.0e01 5.0e01 1.0e02 5.0e02 1.0e03

c∗ 4.0e00 1.0e01 3.0e01 5.0e01 1.0e02 5.0e02 1.0e03

c 4.0e00 1.0e01 3.0e01 5.0e01 1.0e02 5.0e02 1.0e03

Total

dobles 1.5e03 4.6e04 3.4e06 2.6e07 4.1e08 2.5e11 4.0e12

Memoria

requerida 12 Kb 366 Kb 28 Mb 205 Mb 4 Gb 2006 Gb 32041 Gb

m = n 4 10 30 50 100 500 1000

F vector de tamano mn+n2+n, almacena la funcion F (c) evaluada

en alguna c.

Con la lista de estructuras de datos anterior se vislumbra el alto costo de

almacenamiento que tiene este algoritmo. La Tabla 2.3 ayuda a tener una idea

de las dimensiones de F y J , las estructuras de datos que mas almacenamiento

emplean, para diferentes valores de m y n.

Si se calcula el numero de bytes necesarios para almacenar dobles en F y

J y si ademas se contabiliza el resto de vectores y matrices que utiliza FB,

los montos de memoria requeridos son los de la tabla 2.4. Los altos montos

registrados limitaran el tamano de las pruebas del algoritmo. En este estudio se

ha tomado un tamano maximo de m = n = 50.

2.1.2. Probando Fuerza Bruta

Se empieza por probar este algoritmo con el caso ChuBai, los resultados

obtenidos estan en la Tabla 2.5, en la que se observa que en todos los casos FB

converge sin problemas a los resultados esperados, excepto el caso C del caso Bai

donde se alcanzan los valores singulares deseados bajo la tolerancia establecida,

29

Page 31: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.5: Resultados y convergencia del caso ChuBai con FB

Pruebas Chu Calculadas Pruebas Bai Calculadas

caso k c(k) S(k) k c(k) S(k)

A 5 -8.8570e-2 5.2995e0 9 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 6 2.3693e0 1.3414e1 5 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 4 8.8169e-1 6.9200e0 6 1.6635e0 1.0321e1

1.3168e0 5.1246e0 -1.1349e0 8.4827e0

-2.5081e-1 3.3331e0 2.2105e0 6.1540e0

-1.5865e-1 1.0240e0 6.6457e-1 1.8127e0

Pruebas Chu Esperadas Pruebas Bai Esperadas

casos c∗ S∗ c∗ S∗

A -8.8571e-2 5.2995e0 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 2.3693e0 1.34141e0 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 8.8169e-1 6.9200e0 1.8505e0 1.0321e1

1.3168e0 5.1245e0 -1.4848e0 8.4827e0

-2.5081e-1 3.3331e0 2.0673e0 6.1540e0

-1.5865e-1 1.0240e0 -2.8719e-1 1.8127e0

pero no ası la solucion c∗, vease la Tabla de errores 2.6 que refleja el hecho de

que el PIAVS puede tener mas de una solucion.

Los resultados arrojados por el algoritmo para el caso Gral estan en la Tabla

2.7. Observando esta tabla, para los casos m = n ≤ 10 el algoritmo converge con

todos los puntos iniciales probados, mientras que para los casos m = n > 10 se

observa alta sensibilidad al punto inicial, este debe ser mas cercano a la solucion

que para los casos de menor tamano; ası, cuando ‖F (c(0))‖2 > 10e4 el algoritmo

empeora las aproximaciones calculadas en 10 iteraciones.

A la vista de los resultados obtenidos, se puede concluir que, cuanto mas

grande sea m sera necesario dar un c(0) mas cercano a c∗ para converger.

30

Page 32: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 1 Fuerza Bruta (FB)

1. Calcular A(0) de acuerdo a (2.1)

2. Calcular descomposicion en valores singulares de A(0)

A(0) = P (0)diag(S(0))Q(0)t

3. Calcular F (0) de acuerdo a (2.7), (2.8) y (2.9)

4. Para k = 0,1,..., Mientras ‖F (k)‖2 > tol

4.1. Calcular J (k) de acuerdo a (2.11) - (2.15)

4.2. Calcular sol(k) resolviendo el sistema J (k)sol(k) = −F (k)

4.2.1. Calcular descomposicion lu de J (k)

4.2.2. Resolver los sistemas triangulares

L(k)x(k) = −F (k)

U (k)sol(k) = x(k)

4.3. [c(k+1), P (k+1), Q(k+1)]← [c(k), P (k), Q(k)] + sol(k)

4.4. Calcular F (k+1) de acuerdo a (2.7), (2.8) y (2.9)

Tabla 2.6: Errores del caso ChuBai con FB

Caso Chu ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 2e-6 1e-6 9e-7 1e-7

B 3e-6 1e-6 4e-7 2e-8

C 1e-6 8e-7 1e-6 1e-7

Caso Bai ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 7e-11 3e-11 8e-11 7e-12

B 3e-11 1e-11 3e-11 2e-12

C 1e0 3e-1 9e-11 6e-12

31

Page 33: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.7: Resultados del caso Gral con FB

c(0)i = c∗i + 1e− 1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e1 2e-3 3 4e-12 1e-16

5 1e2 1e-3 2 5e-7 2e-12

10 4e2 2e-3 3 3e-11 1e-16

15 1e3 2e-3 3 5e-10 1e-16

20 1e3 2e-3 3 4e-10 1e-16

25 3e3 2e-3 3 2e-8 1e-15

30 4e3 2e-3 3 9e-9 5e-16

40 8e3 1e-3 3 1e-9 2e-16

50 1e4 1e-3 3 2e-6 1e-14

c(0)i = c∗i + 1e0 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e2 2e-2 3 3e-6 5e-11

5 1e3 1e-2 3 8e-9 4e-14

10 4e3 2e-2 4 4e-11 8e-17

15 1e4 2e-2 4 1e-6 4e-14

20 1e4 2e-2 5 2e-10 2e-16

25 3e4 2e-2 6 3e-10 1e-16

30 4e4 2e-2 5 5e-10 2e-16

40 8e4 1e-2 4 5e-8 2e-16

50 1e5 1e-2 10 1e10 8e1

c(0)i = c∗i + 1e1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e3 2e-1 4 2e-10 6e-15

5 1e4 1e-1 5 9e-12 8e-17

10 4e4 2e-1 6 2e-8 1e-14

15 1e5 2e-1 10 4e7 2e0

20 1e5 2e-1 10 1e7 7e-1

25 3e5 2e-1 10 9e8 1e1

30 4e5 2e-1 10 9e9 3e1

40 8e5 1e-1 10 5e8 5e0

50 1e6 1e-1 10 1e11 1e1

32

Page 34: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

2.2. Metodo I (MI)

Friedland, Nocedal y Overton presentan en [FNO87] un metodo llamado

Method I (y habitualmente referenciado ası por otros autores) que resuelve el

caso aditivo del PIVP. En esta seccion se utiliza la idea del Method I para

desarrollar un algoritmo tipo Newton: el Metodo I (MI), para resolver el PIAVS.

Por definicion del PIAVS, si la descomposicion en valores singulares de la matriz

A(c) (ecuacion (2.1)) es A(c) = P (c)diag(S(c))Q(c)t, se requiere encontrar un c

tal que S∗i −Si(c) = 0, para i = 1, n (S∗

i valor singular dado, Si(c) valor singular

de A(c)). De aquı se puede definir la funcion

F (c) = [Fi(c)]i=1,n = [Si(c)− S∗i ]i=1,n

que da lugar al problema de resolver el sistema de ecuaciones no lineales

F (c) = [Si(c)− S∗i ]i=1,n = 0. (2.16)

para el que se utiliza el metodo de Newton que, como se vio en 2.1, consiste en

calcular una sucesion de aproximaciones a la solucion de (2.16), de modo que si

c(k) es el ultimo elemento de la sucesion, para calcular el siguiente se resuelve

J(c(k))(

c(k+1) − c(k))

= −F (c(k)),

siendo J(c(k)) la matriz jacobiana de F (c) evaluado en c(k) [DS83][Kel95].

Tambien se sabe que J(c) tiene la forma

J(c) =

[∂Fi(c)

∂cj

]

i,j=1,n

,

y si se define S ≡ S(c), J ≡ J(c) y F ≡ F (c), se tiene que

J =

[∂Fi

∂cj

]

i,j=1,n

,

donde∂Fi

∂cj=

∂Si

∂cj− ∂S∗

i

∂cj, i, j = 1, n.

De la descomposicion en valores singulares de A(c), y siendo A ≡ A(c),

S ≡ S(c), P ≡ P (c), Q ≡ Q(c), se tiene que

P tAQ = diag(S)⇒ ptiAqi = Si, i, j = 1, n

⇒∂Si

∂cj=

∂ptiAqi

∂cj=

∂pti

∂cjAqi + pt

i

∂A

∂cjqi + pt

iA∂qi

∂cj, i, j = 1, n,

y tambien que

P tA = diag(S)Qt y AQ = Pdiag(S),

33

Page 35: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

por lo que

∂Si

∂cj=

∂pti

∂cjpiSi + pt

i

∂A

∂cjqi + Siq

ti

∂qi

∂cji, j = 1, n.

Como P y Q son ortogonales

ptipi = 1

qtiqi = 1

(pi)21 + · · ·+ (pi)

2m = 1

(qi)21 + · · ·+ (qi)

2n = 1

2(pi)1∂(pi)1

∂cj+ · · ·+ 2(pi)m

∂(pi)m

∂cj= 0

2(qi)1∂(qi)1

∂cj+ · · ·+ 2(qi)n

∂(qi)n

∂cj= 0

[∂(pi)1

∂cj· · · ∂(pi)m

∂cj

]

[(pi)1 · · · (pi)n]t= 0

[∂(qi)1

∂cj· · · ∂(qi)n

∂cj

]

[(qi)1 · · · (qi)n]t= 0

[∂pi

∂cj

]t

pi = 0[

∂qi

∂cj

]t

qi = 0i, j = 1, n

entonces

∂Si

∂cj= pt

i

∂A

∂cjqi =

= pti

∂(A0 + c1A1 + · · ·+ cnAn)

∂cjqi =

= ptiAjqi; i, j = 1, n,

por lo que

∂Fi

∂cj=

∂Si

∂cj− ∂S∗

i

∂cj= pt

iAjqi − 0, para i, j = 1, n.

Por lo tanto, la matriz jacobiana de F es

J =[pt

iAjqi

]

i,j=1,n. (2.17)

Por otra parte,

F = [Si − S∗i ]i=1,n = [pt

iAqi − S∗i ]i=1,n =

= [pti (AO + c1A1 + · · ·+ cnAn) qi − S∗

i ]i=1,n =

= [ptiA0qi − S∗

i + ptic1A1qi + · · ·+ pt

icnAnqi]i=1,n =

34

Page 36: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

= [ptiA0qi − S∗

i ]i=1,n +

+ [ptiA1qi, p

tiA2qi, · · · , pt

iAnqi]i=1,n

c1

c2

...

cn

,

entonces

F =[pt

iA0qi − S∗i

]

i=1,n+ Jc. (2.18)

De (2.17) y (2.18), el metodo de Newton queda como sigue

J (k)c(k+1) − J (k)c(k) = −[

p(k)ti A0q

(k)i − S∗

i

]

i=1,n− J (k)c(k),

es decir

J (k)c(k+1) = b(k) (2.19)

donde

b(k) = S∗ −[

p(k)ti A0q

(k)i

]

i=1,n. (2.20)

Como se ha aplicado el metodo de Newton, la convergencia de este algorit-

mo esta sujeto a la seleccion de un punto inicial c(0) cercano a la solucion c∗

[DS83] [Kel95].

2.2.1. Automatizacion del Metodo I

Para automatizar el Metodo I se han utilizado las estructuras de datos Ai

(i = 0, n), S∗, c∗, c, ademas de:

A o P matriz de tamano m× n, almacena tanto la matriz A(c) = A0 +∑n

i=1 ciAi, como P , los n vectores singulares izquierdos de A(c).

Q matriz de tamano n × n, almacena Qt, los n vectores singulares

transpuestos derechos de A(c).

J matriz de tamano n× n, almacena la matriz jacobiana de F (c) y

su descomposicion lu.

AUX matriz de tamano m×m, auxiliar en la realizacion de operaciones

requeridas en el metodo.

S vector de tamano n, almacena los valores singulares de A(c).

b vector de tamano n, almacena el vector de terminos independi-

entes del sistema (2.19).

35

Page 37: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.8: Requerimiento de memoria de algoritmo MI

Estructuras Numero de elementos de doble precision

Ai=0,n 8.0e1 1.1e3 2.8e4 1.3e5 1.0e6 1.3e8 1.0e9

J, AoP,Qt 1.6e1 1.0e2 9.0e2 2.5e3 1.0e4 2.5e5 1.0e6

S∗, S, c∗, c 4.0e0 1.0e1 3.0e1 5.0e1 1.0e2 5.0e2 1.0e3

Total

dobles 1.5e2 1.5e3 3.1e4 1.4e5 1.0e6 1.3e8 1.0e9

Memoria

requerida 1.2 Kb 12 Kb 250 Kb 1.1 Mb 8.3 Mb 1 Gb 8 Gb

m = n 4 10 30 50 100 500 1000

Algoritmo 2 Metodo I

1. Calcular A(0) de acuerdo a (2.1)

2. Calcular descomposicion en valores singulares de A(0)

A(0) = P (0)diag(S(0))Q(0)t

3. Para k = 0,1,..., Mientras ‖S(k) − S∗‖2 > tol

3.1. Calcular J (k) de acuerdo a (2.17)

3.2. Calcular b(k) de acuerdo a (2.20)

3.3. Calcular c(k+1) resolviendo el sistema J (k)c(k+1) = b(k)

3.3.1. Calcular descomposicion lu de J (k)

3.3.2. Resolver los sistemas triangulares

L(k)x(k) = b(k)

U (k)c(k+1) = x(k)

3.4. Calcular A(k+1) de acuerdo a (2.1)

3.5. Calcular descomposicion en valores singulares de A(k+1)

A(k+1) = P (k+1)diag(S(k+1))Q(k+1)t

Estimando el monto de memoria necesario para manejar dobles en este al-

goritmo, se obtienen los resultados de la Tabla 2.8. Como era de esperarse, el

mayor monto se lo llevan las matrices A, Ai (i = 0, n) si se almacenan como

matrices densas.

Los pasos que sigue el Metodo I estan en el algoritmo 2.

2.2.2. Pruebas Numericas del Metodo I

Para el caso ChuBai se han obtenido los resultados de la Tabla 2.9, que

corresponden a los S∗ esperados en todos los casos y a los c∗ esperados excepto

para las pruebas A y C del caso Bai; los errores con los que se da cuenta de

estos hechos estan en la Tabla 2.10.

Se observan ahora los resultados de las pruebas Gral en la Tabla 2.11. Para

los casos m = n ≤ 10 no hay problemas de convergencia para los puntos iniciales

probados, no sucede ası para los casos de mayor tamano, pues cuanto mas

36

Page 38: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.9: Resultados del caso ChuBai con MIPruebas Chu Calculadas Pruebas Bai Calculadas

caso k c(k) S(k) k c(k) S(k)

A 4 -8.8571e-2 5.2995e0 7 1.6023e0 7.6932e0

5.1462e-1 3.3937e0 5.2371e-1 6.4255e0

-1.0132e0 2.2206e0 9.8096e0 3.8780e0

-8.8725e-1 1.0707e0 8.2035e-1 2.2199e0

B 6 2.3693e0 1.3414e1 4 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 4 8.8169e-1 6.9200e0 5 1.6635e0 1.0321e1

1.3168e0 5.1245e0 -1.1349e0 8.4827e0

-2.5081e-1 3.3331e0 2.2105e0 6.1540e0

-1.5865e-1 1.0240e0 6.6457e-1 1.8127e0

Pruebas Chu Esperadas Pruebas Bai Esperadas

casos c∗ S∗ c∗ S∗

A -8.8571e-2 5.2995e0 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 2.3693e0 1.34141e0 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 8.8169e-1 6.9200e0 1.8505e0 1.0321e1

1.3168e0 5.1245e0 -1.4848e0 8.4827e0

-2.5081e-1 3.3331e0 2.0673e0 6.1540e0

-1.5865e-1 1.0240e0 -2.8719e-1 1.8127e0

Tabla 2.10: Errores del caso ChuBai con MI

Pruebas Chu ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 1.6612e-08 1.15e-08 2.1301e-08 3.1516e-09

A 3.9907e-06 1.21e-06 4.0914e-07 2.4852e-08

C 2.5826e-11 1.60e-11 4.2425e-11 4.5667e-12

Pruebas Bai ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 4.5808e-01 2.26e-01 1.1960e-06 1.0898e-07

B 2.5623e-09 8.55e-10 2.1865e-09 1.4138e-10

C 1.0410e+00 3.30e-01 4.6388e-11 3.1300e-12

37

Page 39: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

alejados esten de la solucion, mas casos van teniendo problemas de convergencia.

38

Page 40: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.11: Resultados y convergencia del caso Gral con MI

c(0)i = c∗i + 1e− 1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e1 2e-3 2 3e-6 1e-10

5 1e2 1e-3 2 1e-7 2e-12

10 4e2 2e-3 2 2e-7 1e-12

15 1e3 2e-3 3 7e-11 1e-16

20 1e3 2e-3 3 6e-10 6e-16

25 3e3 2e-3 3 1e-9 8e-16

30 4e3 2e-3 3 9e-10 4e-16

40 8e3 1e-3 3 1e-0 2e-16

50 1e4 1e-3 3 1e-6 2e-13

c(0)i = c∗i + 1e0 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e2 2e-2 3 1e-6 5e-11

5 1e3 1e-2 3 1e-9 1e-14

10 4e3 2e-2 3 1e-6 4e-12

15 1e4 2e-2 4 3e-8 8e-14

20 1e4 2e-2 5 2e-10 2e-16

25 3e4 2e-2 5 1e-6 8e-13

30 4e4 2e-2 4 2e-7 1e-13

40 8e4 1e-2 4 5e-10 1e-16

50 1e5 1e-2 10 2e6 3e-1

c(0)i = c∗i + 1e1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e3 2e-1 5 2e-10 1e-14

5 1e4 1e-1 4 1e-7 2e-12

10 4e4 2e-1 6 2e-11 1e-16

15 1e5 2e-1 10 2e7 3e1

20 1e5 2e-1 10 2e5 5e-1

25 3e5 2e-1 10 2e6 1e0

30 4e5 2e-1 10 2e8 7e1

40 8e5 1e-1 10 1e6 8e-1

50 1e6 1e-1 10 1e7 4e0

39

Page 41: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

2.3. Metodo Elevacion-Proyeccion (EP)

El metodo Elevacion-Proyeccion para resolver el PIAVS se deriva de manera

similar a como lo hace el metodo Lift&Project propuesto por Chu [Chu98] y

Chen [CC96] para el caso aditivo del PIVP. El metodo consiste en definir los

conjuntos Γ(S∗) y Λ(c), donde Γ(S∗) es el conjunto de todas las matrices en

<m×n, m ≥ n, cuyos valores singulares son S∗ = {S∗1 , S∗

2 , ..., S∗n}

Γ(S∗) = {Pdiag(S∗)Qt|P ∈ <m×nortogonal, Q ∈ <n×nortogonal} (2.21)

y Λ(c) es el conjunto de las matrices de la forma A(c) (ecuacion (2.1))

Λ(c) = {A(c)|c ∈ <n}, (2.22)

con el proposito de encontrar la interseccion de ambos a traves de la mini-

mizacion de distancias, considerando que la distancia entre dos matrices U y V

esta definida segun dist(U, V ) = ‖U − V ‖F .

El metodo puede organizarse iterativamente en dos fases: la fase de elevacion

y la fase de proyeccion. Para la iteracion k, la fase de elevacion consiste en,

dado un c(k), y por consiguiente una A(c(k)) ∈ Λ(c), encontrar un elemento

X(k) ∈ Γ(S∗) tal que dist(A(c(k)), X(k)) = dist(A(c(k)), Γ(S∗)); para ello es

suficiente con calcular la descomposicion en valores singulares de A(k) ≡ A(c(k))

A(k) = P (k)diag(S(k))Q(k)t

para calcular la distancia mas corta entre A(k) y Γ(S∗), que se alcanza en el

punto [Bro91] [Chu92b]

X(k) = P (k)diag(S∗)Q(k)t.

La fase de proyeccion consiste en, dado un X (k) ∈ Γ(S∗), encontrar c(k+1), y

por lo tanto A(k+1) ∈ Λ(c), tal que dist(X(k), A(k+1)) = dist(X(k), Λ(c)). Esto

se hace encontrando c(k+1) que minimice dist(X(k), A(k+1)), es decir, si se define

F (k+1) ≡ F (c(k+1)) = ‖A(k+1) − P (k)diag(S∗)Qt(k)‖2F , (2.23)

se tiene que resolver el siguiente problema de mınimos cuadrados no lineales

minF (k+1) = minc(k+1)

‖A(k+1) − P (k)diag(S∗)Qt(k)‖2F . (2.24)

La resolucion se lleva a cabo igualando el gradiente de F (k+1) a cero y

resolviendo el sistema de ecuaciones lineales resultante

∇F (k+1) = ∇‖A(k+1) − P (k)diag(S∗)Qt(k)‖2F = 0. (2.25)

40

Page 42: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

El gradiente de F (k+1) se desarrolla como sigue. De la funcion (2.23) se

tiene que

F (k+1) = ‖A(k+1) − P (k)diag(S∗)Q(k)t‖2F =

=

(√

tr([

A(k+1) − P (k)diag(S∗)Q(k)t]t [

A(k+1) − P (k)diag(S∗)Q(k)t]))2

=

= tr([

A(k+1)t −Q(k)diag(S∗)P (k)t] [

A(k+1) − P (k)diag(S∗)Q(k)t])

=

= tr(A(k+1)tA(k+1) −A(k+1)tP (k)diag(S∗)Q(k)t−−Q(k)diag(S∗)P (k)tA(k+1) + Q(k)diag(S∗)P (k)tP (k)diag(S∗)Q(k)t) =

= tr(

A(k+1)tA(k+1))

− tr(

A(k+1)tP (k)diag(S∗)Q(k)t)

− tr(

Q(k)diag(S∗)P (k)tA(k+1))

+ tr(

Q(k)diag(S∗)P (k)tP (k)diag(S∗)Q(k)t)

;

= tr(

A(k+1)tA(k+1))

− 2tr(

A(k+1)tP (k)diag(S∗)Q(k)t)

+

+ tr(

Q(k)diag(S∗)P (k)tP (k)diag(S∗)Q(k)t)

=

= ϕ1 − 2ϕ2 + ϕ3,

donde

ϕ1 = tr(

A(k+1)tA(k+1))

ϕ2 = 2tr(

A(k+1)tP (k)diag(S∗)Q(k)t)

ϕ3 = tr(

Q(k)diag(S∗)P (k)tP (k)diag(S∗)Q(k)t)

;

con esto, la ecuacion (2.25) se puede escribir como sigue

∇F (k+1) = ∇ϕ1 − 2∇ϕ2 +∇ϕ3 = 0. (2.26)

Desarrollando y calculando los gradientes de ϕ1, ϕ2 y ϕ3, se tiene que

ϕ1 = tr(A(k+1)tA(k+1)

)=

= tr

((

A0 +∑n

i=1 c(k+1)i Ai

)t (

A0 +∑n

i=1 c(k+1)i Ai

))

=

= tr((

At0 +

∑ni=1 c

(k+1)i At

i

)(

A0 +∑n

i=1 c(k+1)i Ai

))

=

= tr(At0A0 +

∑ni=1 c

(k+1)i At

0Ai +∑n

i=1 c(k+1)i At

iA0+

+∑n

i=1

∑nj=1 c

(k+1)i At

ic(k+1)j Aj) =

41

Page 43: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

= tr (At0A0) + 2

∑ni=1 c

(k+1)i tr (At

0Ai) +

+∑n

i=1

∑nj=1 c

(k+1)i c

(k+1)j tr (At

iAj),

∇ϕ1 =[

∂ϕ1

∂c(k+1)r

]

r=1,n=

= [0 + 2tr (At0Ar) +

∑ni=1 c

(k+1)i tr (At

iAr) +

+∑n

i=1 c(k+1)i tr (At

rAi)]r=1,n =

=[

2tr (At0Ar) + 2

∑ni=1 c

(k+1)i tr (At

iAr)]

r=1,n;

ϕ2 = 2tr(A(k+1)tP (k)diag(S∗)Q(k)t

)=

= 2tr((

At0 +

∑ni=1 c

(k+1)i At

i

)

P (k)diag(S∗)Q(k)t)

=

= 2tr(At

0P(k)diag(S∗)Q(k)t

)+ 2tr

(∑n

i=1 c(k+1)i At

iP(k)diag(S∗)Q(k)t

)

=

= 2tr(At

0P(k)diag(S∗)Q(k)t

)+ 2

∑ni=1 c

(k+1)i tr

(At

iP(k)diag(S∗)Q(k)t

),

∇ϕ2 =[

∂ϕ2

∂c(k+1)r

]

r=1,n=[0 + 2tr

(At

rP(k)diag(S∗)Q(k)t

)]

r=1,n;

∇ϕ3 =[

∂ϕ3

∂c(k+1)r

]

r=1,n= 0.

De los resultados anteriores, la ecuacion (2.26) tiene la siguiente forma:

∇F (k+1) =

[

2tr(At

rA0

)+ 2

n∑

i=1

c(k+1)i tr

(At

iAr

)− 2tr

(

AtrP

(k)diag(S∗)Q(k)t)]

r=1,n

= 0

entonces

[n∑

i=1

c(k+1)i tr

(At

iAr

)

]

r=1,n

=[

tr(

AtrP

(k)diag(S∗)Q(k)t)

− tr(At

rA0

)]

r=1,n

⇒[tr(At

iAr

)]

r,i=1,n[c]i=1,n =

[

tr(

Atr

(

P (k)diag(S∗)Q(k)t −A0

))]

r=1,n;

(2.27)

42

Page 44: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

ahora, si se define

Atr =[tr(At

iAr

)]

r,i=1,n(2.28)

y

btr =[

tr(

Atr

(

P (k)diag(S∗)Q(k)t −A0

))]

r=1,n=[

tr(

Atr

(

X(k) −A0

))]

r=1,n

(2.29)

(2.27) se escribe como

Atrc(k+1) = b

(k)tr , (2.30)

que es el sistema de ecuaciones lineales que da solucion al problema de mınimos

cuadrados (2.24). Se observa que la matriz Atr no depende del valor de c(k+1)

en las diferentes iteraciones, entonces se puede calcular una sola vez antes de

empezarlas.

Con lo ya visto, se puede construir el algoritmo iterativo Elevacion-Proyeccion

para resolver el PIAVS que converja a un punto estacionario del problema de

minimizacion definido, en el sentido de que

‖A(k+1) −X(k+1)‖F ≤ ‖A(k) −X(k)‖F ; (2.31)

es decir, en la k-esima fase de proyeccion, se calcula c(k+1) que minimice ‖A(k+1)−X(k)‖F , entonces

‖A(k+1) −X(k)‖F ≤ ‖A(k) −X(k)‖F .

Por otra parte, en la (k+1)esima fase de elevacion las matrices que minimizan

‖A(k+1) −X(k+1)‖F son P (k+1) y Q(k+1), entonces

‖A(k+1) − P (k+1)diag(S∗)Q(k+1)t‖F ≤ ‖A(k+1) − P (k)diag(S∗)Q(k)t‖F ,

por lo que

‖A(k+1) −X(k+1)‖F ≤ ‖A(k+1) −X(k)‖F .

2.3.1. Algoritmo secuencial Elevacion-Proyeccion

Elevacion-Proyeccion utiliza las siguientes estructuras de datos en su autom-

atizacion: Ai (i = 0, n), S∗, c∗, c, ademas de:

A o P matriz de tamano m× n, almacena tanto la matriz A(c) = A0 +∑n

i=1 ciAi, como P, los n vectores singulares izquierdos de A(c).

Q matriz de tamano n × n, almacena Qt, los n vectores singulares

transpuestos derechos de A(c).

Atr matriz de tamano n × n, almacena los coeficientes del sistema

(2.30).

43

Page 45: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.12: Requerimiento de memoria de EP

Estructuras Numero de elementos de doble precision

A− i = 0, n 8.0e+01 1.1e+03 2.8e+04 1.3e+05 1.0e+06 1.3e+08 1.0e+09

A o P,Q,Atr 1.6e+01 1.0e+02 9.0e+02 2.5e+03 1.0e+04 2.5e+05 1.0e+06

S∗, S, c∗, c, btr 4.0e+00 1.0e+01 3.0e+01 5.0e+01 1.0e+02 5.0e+02 1.0e+03

Total

dobles 1.5e+02 1.5e+03 3.1e+04 1.4e+05 1.0e+06 1.3e+08 1.0e+09

Memoria

requerida 1.2 Kb 12 Kb 250 Kb 1.1 Mb 8.3 Mb 1 Gb 8 Gb

m = n 4 10 30 50 100 500 1000

AUX matriz de tamano m×m, auxiliar en la realizacion de operaciones

requeridas en el metodo, tambien almacena el vector de terminos

independientes del sistema (2.30).

S vector de tamano n, almacena los valores singulares de A(c) y los

valores de c(k−1) cuando se esta en la iteracion k.

Si las estructuras de datos anteriores almacenan dobles, el monto de memoria

necesario para almacenarlos, en diferentes tamanos de problema, se registra en

la Tabla 2.12.

Las dos fases de EP se presentan en el algoritmo 3. Aprovechando que Atr

es independiente de c(k), se calcula una sola vez antes de entrar al ciclo (paso 1

del algoritmo), lo mismo que su inversa (paso 2), con el fin de que el calculo de

la nueva solucion c(k+1) no requiera de resolver el sistema de ecuaciones lineales

Atrc(k+1) = b

(k)tr ,

sino solamente realizar una multiplicacion matriz-vector, es decir,

c(k+1) = inversa(Atr)b(k)tr ,

como en el paso 4.5.

2.3.2. Pruebas Numericas de Elevacion-Proyeccion

Los resultados que da Elevacion-Proyeccion en el caso ChuBai estan en la

Tabla 2.13. Se observa convergencia en todos los casos (ver ‖c(k) − c(k−1)‖2 en

Tabla 2.14), sin embargo lo hace despues de un alto numero de iteraciones y

los valores singulares alcanzados tienen, en el peor de los casos, una exactitud

de 1e-3. En el caso C de Bai, c(k) no aproxima a c∗, sino que representa una

solucion diferente con la que alcanzar los valores singulares S∗.

Ahora se prueban los casos del tipo Gral, utilizando los mismos c(0) que en

FB y MI, los resultados de la Tabla 2.15 indican que LP converge en todos

44

Page 46: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.13: Resultados del caso ChuBai con EPPruebas Chu Calculadas Pruebas Bai Calculadas

caso k c(k) S(k) k c(k) S(k)

A 901 -8.8371e-2 5.2994e0 1080 1.2533e0 7.6933e0

5.1430e-1 3.3936e0 7.8646e-1 6.4254e0

-1.0125e0 2.2208e0 1.1214e0 3.8781e0

-8.8843e-1 1.0710e0 8.2787e-1 2.2201e0

B 4339 2.3670e0 1.3414e1 202 2.6313e0 1.2159e1

1.6615e0 8.0737e0 1.2748e0 8.3927e0

-1.2933e0 5.0769e0 5.7296e-1 3.8462e0

-9.2641e-1 3.8932e-1 -3.5816e-1 2.4688e0

C 115 8.8174e-1 6.9200e0 1947 1.6635e0 1.0321e1

1.3168e0 5.1246e0 -1.1331e0 8.4828e0

-2.5084e-1 3.3331e0 2.2105e0 6.1541e0

-1.5863e-1 1.0239e0 6.6644e-1 1.8131e0

Pruebas Chu Esperadas Pruebas Bai Esperadas

casos c∗ S∗ c∗ S∗

A -8.8571e-2 5.2995e0 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 2.3693e0 1.34141e0 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 8.8169e-1 6.9200e0 1.8505e0 1.0321e1

1.3168e0 5.1245e0 -1.4848e0 8.4827e0

-2.5081e-1 3.3331e0 2.0673e0 6.1540e0

-1.5865e-1 1.0240e0 -2.8719e-1 1.8127e0

Tabla 2.14: Errores del caso ChuBai con EP

Pruebas Chu ‖c(k) − c(k−1)‖2 ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 4.9989e-6 1.4363e-3 9.9438e-4 3.3574e-4 4.9676e-5

B 4.9987e-6 1.6024e-2 4.8499e-3 1.0727e-3 6.5156e-5

C 4.9991e-6 7.5861e-5 4.7052e-5 6.3992e-5 6.8882e-6

Pruebas Bai ‖c(k) − c(k−1)‖2 ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 4.9794e-6 9.8487e-4 4.8447e-4 2.6098e-4 2.3781e-5

B 4.9336e-6 1.2155e-4 4.0504e-5 7.7979e-5 5.0423e-6

C 4.9934e-6 1.0434e0 3.3018e-1 4.5603e-4 3.0771e-5

45

Page 47: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 3 Elevacion-Proyeccion

1. Calcular Atr de acuerdo a (2.28)

2. Calcular inversa de Atr

3. parar ← FALSO

4. Para k = 0,1,..., Mientras NO parar

4.1. Calcular A(k) de acuerdo a (2.1)

4.2. Calcular descomposicion en valores singulares de A(k)

A(k) = P (k)diag(S(k))Q(k)t

4.3. X(k) ← P (k)diag(S∗)Q(k)t

4.4. Calcular b(k)tr de acuerdo a (2.29)

4.5. Calcular c(k+1) resolviendo el sistema Atrc(k+1) = b

(k)tr

c(k+1) ← inversa(Atr) ∗ btr

4.6. error ← ‖c(k+1) − c(k)‖24.7. Si error < tol entonces parar ← V ERDADERO

los casos, incluso en aquellos donde FB y MI no lo hacen. Lo errores de estas

pruebas estan en la Tabla 2.16.

En cuanto a la calidad de los resultados, si la medimos con respecto a los

errores relativos ‖S(k)−S∗‖2

‖S∗‖2, estos son aceptables.

Por los resultados vistos, se puede concluir que Elevacion-Proyeccion siempre

converge en el sentido (2.31); sin embargo, la calidad de S(k), con respecto al

error absoluto ‖S(k) − S∗‖2, se ve afectada cuando m se incrementa y c(0) se

aleja de c∗.

46

Page 48: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.15: Resultados del caso Gral con EP

c(0)i = c∗i + 1e− 1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e1 2e-3 365 3e-3 1e-7

5 1e2 1e-3 206 3e-3 4e-8

10 4e2 2e-3 561 1e-2 6e-8

15 1e3 2e-3 3398 8e-2 1e-7

20 1e3 2e-3 2629 1e-1 1e-7

25 3e3 2e-3 1998 2e-1 1e-7

30 4e3 2e-3 4048 2e-1 1e-7

40 8e3 1e-3 6304 2e-1 6e-8

50 1e4 1e-3 5303 4e-1 6e-8

c(0)i = c∗i + 1e0 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e2 2e-2 541 3e-3 1e-7

5 1e3 1e-2 298 3e-3 5e-8

10 4e3 2e-2 829 9e-2 4e-7

15 1e4 2e-2 9107 9e-2 2e-7

20 1e4 2e-2 10944 1e-1 1e-7

25 3e4 2e-2 44409 4e-1 2e-7

30 4e4 2e-2 17584 9e-1 4e-7

40 8e4 1e-2 20959 5e-1 1e-7

50 1e5 1e-2 17542 7e-1 1e-7

c(0)i = c∗i + 1e1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e3 2e-1 661 3e-3 1e-7

5 1e4 1e-1 433 4e-3 6e-8

10 4e4 2e-1 44240 1e-1 5e-7

15 1e5 2e-1 13965 9e-2 2e-7

20 1e5 2e-1 36697 9e1 9e-5

25 3e5 2e-1 86799 7e-1 5e-7

30 4e5 2e-1 674557 2e0 1e-6

40 8e5 1e-1 51290 6e-1 1e-7

50 1e6 1e-1 126822 1e2 1e-5

47

Page 49: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.16: Convergencia de EP para el caso Gral

Errores ‖c(k) − c(k−1)‖2

m = n c(0)i = c∗i + 1e− 1 c

(0)i = c∗i + 1e0 c

(0)i = c∗i + 1e1

4 4e-6 4e-6 4e-6

5 4e-6 4e-6 4e-6

10 4e-6 4e-6 5e-6

15 5e-6 5e-6 5e-6

20 5e-6 5e-6 5e-6

25 5e-6 5e-6 5e-6

30 5e-6 5e-6 5e-6

40 5e-6 5e-6 5e-6

50 5e-6 5e-6 5e-6

48

Page 50: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

2.4. Metodo III (MIII)

En [Chu92a], Chu presenta un metodo para resolver el PIAVS, basado en

el Method III que Friedland Nocedal y Overton dan en [FNO87] para resolver

el caso aditivo del PIVP, y que en esta seccion se automatiza en el algoritmo

llamado Metodo III (MIII).

La idea de MIII, al igual que EP, es encontrar la interseccion entre los con-

juntos Γ(S∗) y Λ(c), definidos en (2.21) y (2.22), respectivamente, con el fin

de encontrar el c tal que los valores singulares de A(c) de la ecuacion (2.1)

sean S∗; pero, a diferencia de EP, que aplica tecnicas de mınimos cuadrados

para calcular tal interseccion, MIII lo hace a traves de un metodo iterativo tipo

Newton. Se denota con k a la k-esima iteracion del metodo y se definen dos

problemas:

Problema 1. Dada X(k) ∈ Γ(S∗) encontrar una A(c(k+1)) ∈ Λ(c)

tal que P (k)tA(c(k+1))Q(k) = diag(S∗).

Problema 2. Dada A(c(k+1)) ∈ Λ encontrar X(k+1) ∈ Γ(S∗), tal

que X(k+1) = A(c(k+1)).

Para resolver el primer problema, como se tiene X (k) ∈ Γ(S∗) dada, entonces

existen matrices P (k) y Q(k) tales que

X(k) = P (k)diag(S∗)Q(k)t (2.32)

o bien

diag(S∗) = P (k)tX(k)Q(k). (2.33)

Por otra parte, se puede probar que la tangente a Γ(S∗) en X(k) es de la

forma [Chu92a] [BMX03]

X(k) + X(k)L(k) −H(k)X(k) (2.34)

donde L(k) y H(k) son matrices hemisimetricas.

Para calcular el punto A(c(k+1)) por donde pasa la tangente (2.34), se

resuelve el sistema 2

X(k) + X(k)L(k) −H(k)X(k) = A(c(k+1)) (2.35)

que tiene como incognitas las matrices H (k), L(k) y el vector c(k+1), y que por

(2.32) se puede escribir como

P (k)t(

P (k)diag(S∗)Q(k)t + P (k)diag(S∗)Q(k)tL(k)−

−H(k)P (k)diag(S∗)Q(k)t)

Q(k) = P (k)tA(c(k+1))Q(k),

2El PIAVS requiere de P (k+1)tA(c(k+1))Q(k+1) = diag(S∗). Suponer que P (k+1) y Q(k+1)

se aproximan con P (k)eH(k)y Q(k)eL(k)

(con H(k) y L(k) hemisimetricas) respectivamente.

49

Page 51: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

es decir

diag(S∗) + diag(S∗)Q(k)tL(k)Q(k) − P (k)tH(k)P (k)diag(S∗) =

P (k)tA(c(k+1))Q(k),

y si se definen

L(k) = Q(k)tL(k)Q(k),

H(k) = P (k)tH(k)P (k)

y

W (k) = P (k)tA(c(k+1))Q(k), (2.36)

finalmente puede expresarse como el sistema

diag(S∗) + diag(S∗)L(k) − H(k)diag(S∗) = W (k). (2.37)

De la diagonal de (2.37), se obtiene el sistema lineal

J (k)c(k+1) = b(k) (2.38)

donde 3

J(k)i,j = p

(k)ti Ajq

(k)i i = 1, n; j = 1, l

b(k)i = S∗

i − p(k)ti A0q

(k)i i = 1, n

con el que se calcula c(k+1) y por lo tanto A(c(k+1)) y por lo tanto W (k).

De los elementos fuera de la diagonal de (2.37) se calculan H(k) y L(k)

H(k)i,j = −H

(k)j,i = −

W(k)i,j

S∗j

, i = n + 1, m; j = 1, n. (2.39)

Entonces

e−H(k)P (k)tA(c(k+1))Q(k)eL(k)

= diag(S∗)

⇒P (k)tA(c(k+1))Q(k) = eH(k)diag(S∗)e−L(k)

⇒P (k)tA(c(k+1))Q(k) =

I +H(k)

1+

H(k)2

2+ · · ·

!

diag(S∗)

I −L(k)

1+

L(k)2

2+ · · ·

!

⇒P (k)tA(c(k+1))Q(k) ≈ diag(S∗) + H(k)diag(S∗)− diag(S∗)L(k) =

= P (k)tP (k)diag(S∗)Q(k)tQ(k) + H(k)P (k)tP (k)diag(S∗)Q(k)tQ(k) − P (k)tP (k)diag(S∗)Q(k)tQ(k)L(k)

⇒P (k)tA(c(k+1))Q(k) ≈ P (k)tX(k)Q(k) + H(k)P (k)tX(k)Q(k) − P (k)tdiag(S∗)Q(k)L(k)

⇒A(c(k+1)) ≈ X(k) + P (k)H(k)P (k)tX(k) −X(k)Q(k)L(k)Q(k)t

⇒A(c(k+1)) ≈ X(k) + H(k)X(k) −X(k)L(k)

3J y b son iguales que en MI

50

Page 52: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

H(k)i,j = −H

(k)j,i =

S∗i W

(k)j,i + S∗

j W(k)i,j

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n; (2.40)

L(k)i,j = −L

(k)j,i =

S∗i W

(k)i,j + S∗

j W(k)j,i

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n. (2.41)

Se pueden ahora calcular

L(k) = Q(k)L(k)Q(k)t

y

H(k) = P (k)H(k)P (k)t

con lo que el sistema (2.35) ha quedado resuelto, y con el el primer problema.

Hay que notar que no es necesario calcular los denominadores de (2.40) y (2.41)

en cada iteracion, por lo tanto, se puede definir la matriz

deno =[S∗2

i − S∗2j

]

i,j=1,n;excepto i=j(2.42)

para calcularlos una sola vez.

Para resolver el segundo problema que consiste en dada A(c(k+1)) calcu-

lar X(k+1), que equivale a calcular P (k+1) y Q(k+1), se necesita encontrar la

interseccion entre Λ(c) y Γ(S∗). Suponiendo que

X(k+1) ≈ A(c(k+1))

y como 4

A(c(k+1)) ≈ e−H(k)

X(k)eL(k)

4Se tiene que

P (k)tA(c(k+1))Q(k) = eH(k)diag(S∗)e−L(k)

⇒A(c(k+1)) = P (k)eH(k)diag(S∗)e−L(k)

Q(k)t ⇒ A(c(k+1)) = e−H(k)P (k)tdiag(S∗)Q(k)eL(k)

.

Tambien se sabe que

eL =

I +L

1+

L2

2+ · · ·

«

y

e−H =

I −H

1+

H2

2− · · ·

«

entonces

e−H(k)X(k)eL(k)

=

I −H

1+

H2

2− · · ·

«

X(k)

I +L

1+

L2

2+ · · ·

«

por lo que

e−H(k)X(k)eL(k)

≈ X(k) −H(k)X(k) + X(k)L(k)

que es tangente a Γ(S∗) en X(k). Como la interseccion de la tangente con A(c(k+1)) es

X(k) −H(k)X(k) + X(k)L(k) = A(c(k+1)), entonces

e−H(k)X(k)eL(k)

≈ A(c(k+1)).

51

Page 53: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

entonces

X(k+1) ≈ e−H(k)

X(k)eL(k)

. (2.43)

Como e−H(k)

y eL(k)

son costosas de calcular, en su lugar se utiliza (de

manera similar al Method III para el PIVP) la transformacion de Cayley para

aproximarlas a traves de las matrices ortogonales

R(k) =

(

I +H(k)

2

)(

I − H(k)

2

)−1

y

T (k) =

(

I +L(k)

2

)(

I − L(k)

2

)−1

teniendo, en lugar de (2.43), la siguiente expresion

X(k+1) ≈ R(k)tX(k)T (k) = R(k)tP (k)diag(S∗)Q(k)tT (k)

⇒P (k+1)diag(S∗)Q(k+1)t ≈ R(k)tP (k)diag(S∗)Q(k)tT (k)

P (k+1) = R(k)tP (k)

Q(k+1)t = Q(k)tT (k)

P (k+1) =(

I − H(k)

2

)−t (

I + H(k)

2

)t

P (k)

Q(k+1)t = Q(k)t(

I + L(k)

2

)(

I − L(k)

2

)−1

(

I − H(k)

2

)t

P (k+1) =(

I + H(k)t

2

)

P (k)

Q(k+1)t(

I − L(k)

2

)

= Q(k)t(

I + L(k)

2

)

(

I + H(k)

2

)

P (k+1) =(

I − H(k)

2

)

P (k)

(

I − L(k)

2

)t

Q(k+1) =(

I + L(k)t

2

)

Q(k).

Entonces, para calcular P (k+1) y Q(k+1) basta con resolver los sistemas de

ecuaciones (

I +H(k)

2

)

P (k+1) =

(

I − H(k)

2

)

P (k) (2.44)

(

I +L(k)

2

)

Q(k+1) =

(

I − L(k)

2

)

Q(k) (2.45)

con lo que queda resuelto el segundo problema.

De acuerdo a [Chu92a] y [CBM03] este metodo es cuadraticamente conver-

gente. A diferencia de los metodos desarrollados en las secciones anteriores, este

metodo aproxima en cada iteracion los vectores singulares P (k+1) y Q(k+1), en

lugar de calcularlos exactamente.

52

Page 54: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

2.4.1. Algoritmo Secuencial del Metodo III

La cantidad de estructuras de datos que requiere este algoritmo se incremen-

ta por el uso de las matrices hemi-simetricas involucradas, a diferencia de los

algoritmos anteriores, teniendo que definir las siguientes: Ai (i = 0, n), S∗, c∗,

c, ademas de:

A o W matriz de tamano m× n, almacena tanto la matriz A(c) = A0 +∑n

i=1 ciAi, como la matriz W = P tA(c)Q.

P matriz de tamano m×m, almacena P , los m vectores singulares

izquierdos de A(c).

Q matriz de tamano n × n, almacena Q, los n vectores singulares

derechos de A(c).

J matriz de tamano n × n, almacena los coeficientes del sistema

(2.38).

H matriz de tamano m×m, almacena las matrices H y H .

L matriz de tamano n× n, almacena las matrices L y L.

deno matriz de tamano n× n, almacena los denominadores de H y L.

AUX matriz de tamano m×m, auxiliar en la realizacion de operaciones

requeridas en el metodo.

sb vector de tamano n, almacena los valores singulares de A(c) y los

terminos independientes del sistema (2.38).

El monto de memoria requerida, para diferentes tamanos de m = n se pre-

senta en la Tabla 2.17. Estas cantidades pueden manejarse sin problemas para

m ≤ 100.

El algoritmo secuencial de este metodo esta en el Algoritmo 4.

53

Page 55: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.17: Requerimiento de memoria de MIII

Estructuras Numero de elementos de doble precision

Ai=0,n 8.0e+01 1.1e+03 2.8e+04 1.3e+05 1.0e+06 1.3e+08 1.0E+09

A o W,P,Q

J,H, L 1.6e+01 1.0e+02 9.0e+02 2.5e+03 1.0e+04 2.5e+05 1.0E+06

S∗, Sb

c∗, c 4.0e+00 1.0e+01 3.0e+01 5.0e+01 1.0e+02 5.0e+02 1.0E+03

Total

dobles 2.1e+02 1.8e+03 3.4e+04 1.5e+05 1.1e+06 1.3e+08 1.0E+09

Memoria

requerida 1.7 Kb 15 Kb 270 Kb 1.2 Mb 8.6 Mb 1 Gb 8.1 Gb

m = n 4 10 30 50 100 500 1000

Algoritmo 4 Metodo III

1. Calcular A(0) de acuerdo a (2.1)

2. Calcular descomposicion en valores singulares de A(0)

A(0) = P (0)diag(S(0))Q(0)t 3. Calcular deno de acuerdo a (2.42)

4. Para k = 0,1,..., Mientras ‖P (k)tA(k)Q(k) − diag(S∗)‖F > tol

4.1. Calcular J (k) de acuerdo a (2.17)

4.2. Calcular b(k) de acuerdo a (2.20)

4.3. Calcular c(k+1) resolviendo el sistema J (k)c(k+1) = b(k)

4.4. Calcular A(k+1) de acuerdo a (2.1)

4.5. W (k) ← P (k)tA(k+1)Q(k)

4.6. Calcular H(k) de acuerdo a (2.39)- (2.40)

4.7. Calcular L(k) de acuerdo a (2.41)

4.8. H(k) ← P (k)H(k)P (k)t

4.9. L(k) ← Q(k)L(k)Q(k)t

4.10. Calcular P (k+1) resolviendo el sistema(

I + H(k)

2

)

P (k+1) =(

I − H(k)

2

)

P (k)

4.11. Calcular Q(k+1) resolviendo el sistema(

I + L(k)

2

)

Q(k+1) =(

I − L(k)

2

)

Q(k)

2.4.2. Pruebas Numericas del Metodo III

En la Tabla 2.18 estan los resultados de MIII aplicado al caso ChuBai; las

pruebas A y C del caso Bai no alcanzan la solucion c∗, aunque sı alcanzan los

valores singulares deseados S∗, con los errores de la Tabla 2.19. Estas pruebas

no representan ningun problema de convergencia para MIII.

Veanse ahora los resultados de aplicar MIII al caso Gral en la Tabla 2.20

para diferentes puntos iniciales c(0). Se observa que, en cuanto el punto inicial

se va alejando de c∗, los casos de mayor tamano dejan de converger. En la Tabla

54

Page 56: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.18: Resultados del caso ChuBai con MIIIPruebas Chu Calculadas Pruebas Bai Calculadas

casos k c(k) S(k) k c(k) S(k)

A 4 -8.8571e-2 5.2995e0 8 1.6308e0 7.6932e0

5.1462e-1 3.3937e0 4.6572e-1 6.4255e0

-1.0132e0 2.2206e0 9.9241e0 3.8780e0

-8.8725e-1 1.0707e0 7.9056e-1 2.2199e0

B 6 2.3693e0 1.3414e1 4 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 4 8.8169e-1 6.9200e0 7 1.6635e0 1.0321e1

1.3168e0 5.1245e0 -1.1349e0 8.4827e0

-2.5081e-1 3.3331e0 2.2105e0 6.1540e0

-1.5865e-1 1.0240e0 6.6457e-1 1.8127e0

Pruebas Chu Esperadas Pruebas Bai Esperadas

casos c∗ S∗ c∗ S∗

A -8.8571e-2 5.2995e0 1.2541e0 7.6932e0

5.1462e-1 3.3937e0 7.8632e-1 6.4255e0

-1.0132e0 2.2206e0 1.1208e0 3.8780e0

-8.8725e-1 1.0707e0 8.2783e-1 2.2199e0

B 2.3693e0 1.34141e0 2.6314e0 1.2159e1

1.6524e0 8.0733e0 1.2748e0 8.3927e0

-1.3027e0 5.0761e0 5.7291e-1 3.8461e0

-9.3529e-1 3.8912e-1 -3.5826e-1 2.4688e0

C 8.8169e-1 6.9200e0 1.8505e0 1.0321e1

1.3168e0 5.1245e0 -1.4848e0 8.4827e0

-2.5081e-1 3.3331e0 2.0673e0 6.1540e0

-1.5865e-1 1.0240e0 -2.8719e-1 1.8127e0

Tabla 2.19: Errores de ChuBai con MIII

Caso Chu |P (k)tA(k)Q(k) − S∗|F ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 1e-7 6e-8 4e-8 5e-8 8e-9

B 4e-7 3e-6 9e-7 3e-7 1e-8

C 1e-7 5e-8 3e-8 8e-8 9e-9

Caso Bai |P (k)tA(k)Q(k) − S∗|F ‖c∗ − c(k)‖2‖c∗−c(k)‖2

‖c∗‖2‖S∗ − S(k)‖2

‖S∗−S(k)‖2‖S∗‖2

A 1e-8 5e-1 2e-1 9e-9 8e-10

B 5e-8 1e-8 4e-9 2e-8 1e-9

C 1e-9 1e0 3e-1 1e-9 8e-11

55

Page 57: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

2.21 se puede constatar este hecho a traves de los errores alcanzados en el criterio

de parada del algoritmo.

Con MIII se concluye este capıtulo donde se ha presentado el desarrollo

de cuatro algoritmos para la resolucion del PIAVS: FB, MI, EP y MIII. Estos

cuatro algoritmos constituyen cuatro formas diferentes de encarar el PIAVS,

presentando caracterısticas propias con respecto a convergencia, exactitud y re-

querimientos de memoria. Para observar las dos primeras caracterısticas se han

realizado experimentos que indican que FB, MI y MIII, al ser algoritmos tipo

Newton, son sensibles al punto inicial dado, por lo que se consideran algoritmos

de convergencia local, mientras que EP se considera un algoritmo de convergen-

cia global en el sentido 2.31. Con respecto a la exactitud, se ha observado que

MIII alcanza mejores aproximaciones que el resto de los algoritmos, mientras

que EP es el menos exacto.

Por otra parte, los requerimientos de memoria se han estimado haciendo un

recuento de las estructuras de datos que cada algoritmo utiliza, considerando que

estas almacenan flotantes de doble precision. De acuerdo a estas estimaciones es

claro que FB es un algoritmo que demanda mucho almacenamiento, en contraste

con MI y EP que requieren relativamente poco almacenamiento.

Falta por analizar la complejidad de tiempo de ejecucion que se presenta en

el siguiente capıtulo para poder hacer una evaluacion global de los metodos del

PIAVS.

56

Page 58: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.20: Resultados del caso Gral con MIII

c(0)i = c∗i + 1e− 1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e1 2e-3 3 1e-11 3e-16

5 1e2 1e-3 2 1e-7 2e-12

10 4e2 2e-3 2 3e-7 1e-12

15 1e3 2e-3 3 9e-11 1e-16

20 1e3 2e-3 3 2e-10 2e-16

25 3e3 2e-3 3 1e-9 7e-16

30 4e3 2e-3 3 5e-10 2e-16

40 8e3 1e-3 3 1e-9 2e-16

50 1e4 1e-3 4 1e-9 3e-16

c(0)i = c∗i + 1e0 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e2 2e-2 3 1e-6 3e-11

5 1e3 1e-2 3 8e-10 1e-14

10 4e3 2e-2 3 1e-6 7e-12

15 1e4 2e-2 4 8e-9 1e-14

20 1e4 2e-2 5 3e-10 3e-16

25 3e4 2e-2 5 7e-7 4e-13

30 4e4 2e-2 4 2e-7 1e-13

40 8e4 1e-2 4 1e-9 4e-16

50 1e5 1e-2 10 8e6 1e0

c(0)i = c∗i + 1e1 (i = 1, m)

m = n ‖S(0) − S∗‖2‖S(0)−S∗‖2

‖S∗‖2k ‖S(k) − S∗‖2

‖S(k)−S∗‖2‖S∗‖2

4 8e3 2e-1 5 1e-11 3e-16

5 1e4 1e-1 4 2e-7 3e-12

10 4e4 2e-1 6 1e-8 8e-14

15 1e5 2e-1 10 1e+7 3e1

20 1e5 2e-1 10 3e+6 3e0

25 3e5 2e-1 10 7e+6 4e0

30 4e5 2e-1 10 1e+7 4e0

40 8e5 1e-1 10 1e+8 3e1

50 1e6 1e-1 10 4e+7 7e0

57

Page 59: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 2.21: Convergencia de MIII para el caso Gral

Errores |P (k)tA(k)Q(k) − S∗|F

m = n c(0)i = c∗i + 1e− 1 c

(0)i = c∗i + 1e0 c

(0)i = c∗i + 1e1

4 6e-12 3e-6 2e-11

5 2e-7 1e-9 2e-7

10 6e-7 3e-6 3e-8

15 1e-10 4e-8 1e7

20 7e-10 2e-10 3e6

25 3e-9 2e-6 7e6

30 8e-10 2e-6 1e7

40 1e-9 1e-9 1e8

50 1e-9 1e7 4e7

58

Page 60: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 3

Implementacion, Analisis y

Evaluacion de los

Algoritmos del PIAVS

En este capıtulo se presentan los detalles de una implementacion eficiente

de los algoritmos disenados en el capıtulo anterior, utilizando rutinas eficientes

y portables de BLAS y LAPACK. Por cada algoritmo presentado se estiman

los tiempos teoricos de ejecucion para analizar los algoritmos desde este punto

de vista. Con esta implementacion se realizan experimentos numericos para

complementar los del capıtulo anterior y dar paso al analisis y evaluacion de

los algoritmos de acuerdo a: complejidad de tiempos de ejecucion, convergencia,

exactitud y requerimientos de memoria.

Los experimentos numericos para este capıtulo se han realizado en un nodo

del cluster Kefren, sobre casos del tipo Gral para las dimensiones: 50 < m <

2000, 50 < n < 400, con puntos iniciales c(0) adecuados para garantizar la

convergencia de los algoritmos.

El capıtulo comienza (Seccion 3.1) con una descripcion detallada de cada

una de las rutinas que utilizan los metodos FB, MI, EP y MIII, como son: el

calculo de A(c), el calculo de las matrices J , JFB, W , Atr, H , L, P y Q, y

el calculo de los vectores b, btr, F y Z. En cada rutina se senalan las rutinas

BLAS y LAPACK que se invocan.

En la Seccion 3.2 se presentan los algoritmos FB, MI, EP y MIII, en los

que se indican tambien las rutinas BLAS y LAPACK que utilizan. Por cada

algoritmo se estima su tiempo de ejecucion secuencial teorico, con base en los

tiempos teoricos que se reportan en la literatura de las rutinas BLAS y LAPACK

y con base en los tiempos teoricos aproximados en este trabajo de las rutinas

descritas en la Seccion 3.1.

59

Page 61: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

En la ultima seccion (Seccion 3.3) se presentan el analisis y la evaluacion

antedichos de los algoritmos.

3.1. Detalle de Operaciones de Algoritmos del

PIAVS

Hay pasos que todos los algoritmos realizan, como: el calculo de A (de acuer-

do a (2.1)), la descomposicion en valores singulares de una matriz (svd), la

resolucion de sistemas de ecuaciones lineales y el calculo de normas vectoria-

les (norma-2) o matriciales (norma-Frobenius). Todos estos pasos, excepto el

calculo de A, estan implementados eficientemente en LAPACK y BLAS:

dgesvd LAPACK descomposicion en valores singulares de una matriz (svd)

dgesv LAPACK resolucion de un sistema de ecuaciones lineales

dnrm2 BLAS norma-2 vectorial

dlange LAPACK norma-Frobenius matricial

Para calcular A se ha disenado e implementado una rutina especıfica uti-

lizando como base la rutina daxpy de BLAS (ver Algoritmo 5).

Algoritmo 5 CalculaA

1. A← A0

2. Para i = 1,n

2.1. A← daxpy(m ∗ n, ci, Ai)

Ademas de los pasos en comun, se pueden implementar los pasos propios de

cada algoritmo, tales como el calculo de:

b vector de terminos independientes de MI y MIII, ec. (2.20)

J matriz jacobiana de MI, matriz de coefientes de MIII, ec. (2.17)

Atr matriz de coeficientes de EP (2.28)

btr vector de terminos independientes de EP (2.29)

JFB matriz jacobiana de FB, ecs. (2.11)− (2.15)

F vector de FB, ecs. (2.7), (2.8), (2.9)

W matriz de MIII, ec. (2.36)

P y Q matrices de vectores singulares aproximados de MIII, ecs. (2.44), (2.45)

Z vector de FB, ec. (2.6)

L y H matrices hemisimetricas de MIII, ecs. (2.39), (2.40), (2.41),

utilizando las rutinas LAPACK y BLAS siguientes (α, β detona escalares; x, y

vectores y A, B, C matrices):

60

Page 62: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

ddot BLAS xty

dscal BLAS αx

daxpy BLAS αx + y

dgemv BLAS αAx + βy

dgemm BLAS αAB + βC

dgetri LAPACK A−1

Los algoritmos para calcular las matrices y vectores que se han listado arriba

se presentan del Algoritmo 6 al 20, indicando las rutinas BLAS y LAPACK

utilizadas.

En el primero de estos algoritmos, para calcular b, se requiere realizar n pro-

ductos matriz-vector (A0qi) y n productos escalares (piA0qi). Esto es equivalente

a realizar un producto matriz-matriz (A0Q) y n productos escalares (pi(A0Q)i),

que es mas eficiente de implementar. Este proceder se ve en el Algoritmo 6 y se

repite n veces para calcular las n columnas de J en el Algoritmo 7.

Algoritmo 6 Calculab

1. { aux← [A0qi]i=1,n }aux← dgemm(m, n, n, A0, Q)

2. Para k = 1,n

2.1. bi ← ddot(m, pi, auxi)

3. { b← b− S∗ }b← daxpy(n,−1, S∗, b)

4. { b← sAster − b }b← dscal(n,−1, b)

Algoritmo 7 CalculaJ

1. Para k = 1,n

1.1 { aux← [Akqi]i=1,n }aux← dgemm(m, n, n, Ak, Q)

1.2. Para i = 1,n

1.2.1. Ji,k ← ddot(m, pi, auxi)

Para calcular Atr no es necesario calcular la multiplicacion matriz-matriz

AtiAr, pues

Atr = [tr(AtiAr)]r,i=1,n =

n∑

j=1

(Ai)tj(Ar)j

r,i=1,n

,

de este modo es como se disena el Algoritmo 8 y analogamente el Algoritmo 9

que calcula btr.

61

Page 63: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 8 CalculaAtr

1. Para i = 1,n

1.1. Para j = 1,i

1.1.1. Atri,j ← 0

1.1.2. Para k = 1,n

1.1.2.1. Atri,j ← Atri,j + ddot(m, (Aj)k , (Ai)k)

Algoritmo 9 Calculabtr

1. { P ← PS∗ }Para i = 1,n

1.1. P:,i ← dscal(m, S∗i , P:,i)

2. aux← A0

3. aux← dgemm(m, n, n, P, Qt,−aux)

4. Para i=1,n

4.1. btri ← 0

4.2. Para k = 1,n

4.2.1. btri ← btri + ddot(m, Ai:,k , aux:,k)

Mas que calcular la matriz Jacobiana del metodo FB es necesario construirla,

pues requiere de pocas operaciones aritmeticas y de distribucion y replica de

datos en sus entradas . El Algoritmo 10, por lo tanto, consiste escencialmente

de asignaciones que se detallan en los Algoritmos del 11 al 15.

Algoritmo 10 CalculaJFB

1. ren← 1

2. JFB1:n(n+1)/2,1:n2 ← CalculaJ11

3. ren← n ∗ (n + 1)/2 + 1

4. JFBn(n+1)/2+1:n(n+1),n2+1:n2+mn ← CalculaJ22

5. JFBn(n+1):n(n+1)+mn,1:n2 ← CalculaJ31

6. col ← n ∗ n + 1

7. JFBn(n+1):n(n+1)+mn,n2+1:n2+mn ← CalculaJ32

8. col ← n ∗ n + m ∗ n + 1

9. JFBn(n+1):n(n+1)+mn,n2+mn+1:n2+mn+n ← CalculaJ33

62

Page 64: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 11 CalculaJ11

1. Para jj = 1,m

1.1. col← jj

1.2. Para i = 1,m

1.2.1 JFBren,col ← 2 ∗Qi,jj

1.2.2. JFBren+1:ren+n−jj,col ← Qi,jj+1:n

1.2.3. diag(JFBren+1:ren+n−jj,col+1:col+n−jj )← Qi,jj

1.2.4. col ← col + n

1.3. ren← ren + n− jj + 1

Algoritmo 12 CalculaJ22

1. Para jj = 1,n

1.1. col← n ∗ n + jj

1.2. Para i = 1,m

1.2.1. JFBren,col ← 2 ∗ Pi,jj

1.2.2. JFBren+1:ren+n−jj,col ← Pi,jj+1:n

1.2.3. diag(JFBren+1:ren+n−jj,col+1:col+n−jj )← Pi,jj

1.2.4. col ← col + n

1.3. ren← ren + n− jj + 1

Algoritmo 13 CalculaJ31

1. Para i = 1,n

1.1. aux1:m,i ← dscal(m,−S∗i , P1:m,i)

2. salvaren← ren

3. Para i = 1,m

3.1. col← 1

3.2. Para jj = 1,n

3.2.1. JFBren,col:col+n−1 ← auxi,1:n

3.2.2. col ← col + n

3.2.3. ren← ren + 1

Algoritmo 14 CalculaJ32

1. Para i = 1,n

1.1. aux1:n,i ← dscal(n,−S∗i , Q1:n,i)

2. ren← salvaren

3. Para i=1,m

3.1. JFBren:ren+n−1,col:col+n−1 ← aux

3.2. ren← ren + n

3.3. col← col + n

63

Page 65: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 15 CalculaJ33

1. Para i = 1,n

1.1. ren← salvaren

1.2. Para jj = 1,m

1.2.1. JFBren:ren+n−1,col ← Aijj,1:n

1.2.2. ren← ren + n

1.3. col← col + 1

Para calcular F se necesitan realizar multiplicaciones matriz-matriz escen-

cialmente: QtQ−In, P tP −Im y A−Pdiag(S∗)Qt, distribuyendo los resultados

en forma vectorial en F , como en el Algoritmo 16.

Algoritmo 16 CalculaF

1. { aux← QtQ− In }aux← dgemm(n, n, n, Qt, Q,−In)

2. k ← 1

3. { Llena F1:n∗(n+1)/2 }Para i = 1,n

3.1. Fk:k+n−i+1 ← auxi:n,i

3.2. k = k + n− i + 1

4. { aux← P tP − Im }aux← dgemm(m, m, m, P t, P,−Im)

5. { Llena Fn∗(n+1)/2+1:n∗(n+1) }Para i = 1,n

5.1. Fk:k+n−i+1 ← auxi:n,i

5.2. k ← k + n− i + 1

6. { aux← Pdiag(S∗) }aux← dgemm(m, n, n, P, diag(S∗))

7. Calcular A

8. { A← A− Pdiag(S∗)Qt }A← dgemm(m, n, n,−aux, Qt, A)

9. { Llena Fn∗(n+1)+1:mF }Para i = 1,m

9.1. Fk:k+n ← Ai,1:n

9.2. k ← k + n

El Algoritmo 17 calcula tanto W como W t en aux, ya que ambas matrices se

utilizan para calcular las matrices hemisimetricas H y L, que por estar definidas

como:

H(k)i,j = −H

(k)j,i =

S∗i W

(k)j,i + S∗

j W(k)i,j

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n;

64

Page 66: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

L(k)i,j = −L

(k)j,i =

S∗i W

(k)i,j + S∗

j W(k)j,i

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n;

pueden expresarse como:

H(k)i,j = −H

(k)j,i =

S∗i W

(k)j,i + S∗

j Wt(k)j,i

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n;

L(k)i,j = −L

(k)j,i =

S∗i W

(k)i,j + S∗

j Wt(k)i,j

S∗2i − S∗2

j

, i = 1, n; j = i + 1, n.

Algoritmo 17 CalculaW

1. W ← dgemm(m, n, m, P t, A)

2. A← dgemm(m, n, n, W, Q)

3. W ← A

4. aux←W t

El Algoritmo 18 que aproxima P (los vectores singulares izquierdos de A)

tambien se utiliza para aproximar Q (para los vectores singulares derechos de

A) sustituyendo P , P+, H , H e Im por Q, Q+, L, L e In, correspondientemente.

65

Page 67: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 18 AproximaP

1. { aux← PH }aux← dgemm(m, m, m, P, H)

2. { H ← −(1/2)PHP t }H ← dgemm(m, m, m,−(1/2)aux, P t)

3. { H ← Im − (1/2)H }Para i=1,m

Hi,i ← 1

4. { aux← (Im − (1/2)H)P }aux← dgemm(m, m, m, H, P )

5. { P ← (Im − (1/2)H)P }P ← aux

6. { aux← Im − (1/2)H }aux← H

7. { aux← −Im + (1/2)H }aux← dscal(m ∗m,−1, aux)

8. { aux← Im + (1/2)H }Para i = 1,m

auxi,i ← 1

9. { Calcula ← lu(Im + (1/2)H) }[L, U ]← dgetrf(m, aux)

10. { Resuelve (Im + H2 )P+ = (Im − H

2 )P }P+ ← dgetrs(m, L, U, P )

Como sol = [Q1,1, Q1,2, ..., Qn,n, P1,1, P1,2, ..., Pm,n, c1, c2, ..., cn] es el paso

calculado por el metodo de Newton y Z representa a P , Q y c, el Algoritmo 19

distribuye los componentes de sol para sumarlos en correspondencia con las

matrices P , Q y con el vector c.

Algoritmo 19 ActulizaZ

{ Z ← Z + sol }1. Para i = 1,n

1.1. Qi,1:n ← daxpy(n, sol(i−1)n+1:in+1, Qi,1:n)

2. Para i = 1,m

2.1. Pi,1:n ← daxpy(n, soln2+(i−1)n+1:n2+in+1, Pi,1:n)

3. c← daxpy(n, soln2+mn+1:n2+mn+n, c)

En el Algoritmo 20 se calculan tanto H como L para provechar que se han

calculado W y W t en aux. En el paso 1.1. y 1.3. se escalan las columnas de W

con S∗ y 1/S∗, como se ilustra en la siguiente figura:

66

Page 68: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

H ←

S∗1 S∗

2 S∗3 S∗

4 S∗5

↓ ↓ ↓ ↓ ↓

0 * * * *

* 0 * * *

* * 0 * *

* * * 0 *

* * * * 0

× × × × ×

× × × × ×

↑ ↑ ↑ ↑ ↑

1/S∗1 1/S∗

2 1/S∗3 1/S∗

4 1/S∗5

W

Los pasos 2.1. y 2.3. del mismo algoritmo escalan con S∗ y 1/S∗ los renglores

de W t que esta almacenada en aux y suma el resultado a la matriz H , como en

la siguiente figura:

H ← H+

S∗1 → 0 * * * * × × ← 1/S∗

1

S∗2 → * 0 * * * × × ← 1/S∗

2

S∗3 → * * 0 * * × × ← 1/S∗

3

S∗4 → * * * 0 * × × ← 1/S∗

4

S∗5 → * * * * 0 × × ← 1/S∗

5

W t

Por ultimo, en el paso 3. se dividen los elementos H1:n,1:n por deno, que

tiene el resultado de las diferencias S∗2i − S∗2

j , para i = 1, n; j = 1, n.

67

Page 69: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 20 CalculaHL

1. Para j = 1,n

1.1. { Hi,j = −Hj,i ← S∗j Wi,j i = 1, n; j = i + 1, n }

H1:n,j ← daxpy(n, S∗j , W1:n,j)

1.2. { Li,j = −Lj,i ← S∗j Wj,i i = 1, n; j = i + 1, n }

L1:n,j ← daxpy(n, S∗j , aux1:n,j)

1.3. { Hi,j ← −Wj,i/S∗j i = n + 1, m; j = 1, n }

Hn+1:m,j ← daxpy(m− n,−1/sAsterj , Wn+1:m,j)

2. Para i = 1,n

2.1. { Hi,j = −Hj,i ← S∗j Wi,j + S∗

i Wj,i i = 1, n; j = i + 1, n }Hi,1:n ← daxpy(n, S∗

i , auxi,1:n)

2.2 { Li,j = −Lj,i ← S∗j Wj,i + S∗

i Wi,j i = 1, n; j = i + 1, n }Li,1:n ← daxpy(n, S∗

i , Wi,1:n)

2.3. { Hj,i(= −Hi,j)← −Wi,j/S∗j i = n + 1, m; j = 1, n }

Hi,n+1:m ← daxpy(m− n,−1/S∗i , auxi,n+1:m)

3. Para i = 1,n

3.1. Para j = 1,n

3.1.1. Hi,j ← Hi,j/denoi,j

3.1.2. Li,j ← Li,j/denoi,j

4. diag(H), diag(L)← 0

Con este algoritmo termina el detalle de las operaciones del PIAVS, lo que

da pie a expresar, tambien en detalle, los tiempos teoricos de ejecucion de FB,

MI, EP y MIII, cuya complejidad de tiempo de ejecucion se ha dado en la

Seccion 3.3. Mientras tanto, en la siguiente seccion se realizan experimentos

numericos para complementar los realizados en el capıtulo anterior.

3.2. Algoritmos del PIAVS y Tiempos de Eje-

cucion Teoricos

Para estimar los tiempos teoricos de ejecucion de los algoritmos del PIAVS,

se da una lista de los tiempos de ejecucion las rutinas que se utilizan en ellos,

algunos se encuentran reportados en la literatura [DHvdV93], [BCC97] y otros

se han estimado por los autores de este trabajo:

68

Page 70: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

rutina T (n)

ddot 2ntf

dscal ntf

daxpy 2ntf

dnrm2 (2n + 1)tf

dlange (2n2 + 1)tf

dgemv 2n2tf

dgemm 2n3tf

dgesv (2/3)n3tf

dgesvd (38/3)n3tf

CalcularA 2m3tf

A continuacion se presentan los algoritmos FB, MI, EP y MIII, senalando las

rutinas BLAS y LAPACK que se utilizan y los tiempos de ejecucion estimados

(presentados en terminos de orden mayor en la seccion 3.3), donde k denota el

numero de iteraciones que los algoritmos realizan para converger y tf el tiempo

que toma ejecutar una operacion en punto flotante.

FB. Los tiempos de ejecucion de los pasos 4.1., 4.4. y 4.5. del Algoritmo 21 son,

respectivamente:

TJFB(m, n) = (2mn + 2n2)tf

TactualizaZ(m, n) =(mn + n2 + n

)tf

TF (m, n) =(6mn2 + 2m3 + 2n3

)tf .

Algoritmo 21 FB

1. A(0) ← CalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← dgesvd(A(0))

3. F (0) ← CalculaF(c(0), A0, ..., An, P (0), S∗, Q(0))

4. Para k = 0,1,..., Mientras dnrm2(F (k)) > tol

4.1. JFB(k) ← CalculaJFB(S∗, A1, ..., An, P (k), Q(k))

4.2. sol(k) ← dgesv(JFB(k),−F (k))

4.3. [c(k+1), P (k+1), Q(k+1)]← ActualizaZ(c(k), P (k), Q(k), sol(k))

4.4. F (k+1) ← CalculaF(c(k+1), A0, ..., An, P (k+1), S∗, Q(k+1))

Considerando m = n, el tiempo de ejecucion de FB es:

TFB(m) =

(74

3m3 + 4m2 + 2m

)

tf+

+ k

{16

3m6 + 8m5 + 4m4 +

32

3m3 + 10m2 + 3m

}

tf .

El termino de orden superior (O(m6)) corresponde a la resolucion del sistema

de ecuaciones lineales del paso 4.2., dado que manipulan las estructuras de datos

mas grandes del Algoritmo 21: JFB y F .

69

Page 71: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

MI. En el Algoritmo 22 las tiempos para calcular b y J son:

Tb(m, n) =(2mn2 + 2mn + 3n

)tf

TJ(m, n) =(2mn3 + 2mn2

)tf .

Algoritmo 22 MI

1. A(0) ← CalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← dgesvd(A(0))

3. Para k = 0,1,..., Mientras dnrm2(S(k) − S∗) > tol

3.1. J (k) ← CalculaJ(A1, ..., An, P (k), Q(k))

3.2. b(k) ← Calculab(A0, P(k), Q(k), S∗)

3.3. c(k+1) ← dgesv(J (k), b(k))

3.4. A(k+1) ← CalculaA(c(k+1), A0, ..., An)

3.5. [P (k+1), S(k+1), Q(k+1)]← dgesvd(A(k+1))

Por lo tanto, el tiempo de ejecucion de MI cuando m = n es:

TMI(m) =

(44

3m3 + 4m

)

tf + k

{

2m4 +58

3m3 + 2m2 + 7m

}

tf .

En este caso el paso mas caro es el calculo de la matriz Jacobiana J y la

eficiencia del algoritmo estara supeditada a este calculo.

EP. Para estimar el tiempo de ejecucion de EP es necesario estimar el del calculo

de Atr y btr (pasos 1., 2. y 4.4. del Algoritmo 23):

TAtr(m, n) =

(

mn3 + mn2 +n3 + n2

2

)

tf

Tbtr(m, n) =(mn + 4mn2 + n2

)tf .

Algoritmo 23 EP

1. Atr ← CalculaAtr(A1, ..., An)

2. Atr ← pdgetri(Atr)

3. parar ← FALSO

4. Para k = 0,1,..., Mientras NO parar

4.1. A(k) ← CalculaA(c(k), A0, ..., An)

4.2. [P (k), S(k), Q(k)]← dgesvd(A(k))

4.3. X(k) ← dgemm(m, n, n, P (k), dgemm(m, n, n, S∗, Q(k)t))

4.4. b(k)tr ← Calculabtr(S∗, A0, P

(k), Q(k))

4.5. c(k+1) ← dgemv(n, n, Atr, b(k)tr )

4.6. Si dnrm2(c(k+1) − c(k)) < tol entonces parar ← V ERDADERO

70

Page 72: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

A diferencia de FB y MI, que tienen el paso mas costoso dentro del ciclo,

EP lo tiene antes del ciclo en el calculo de Atr, lo que se refleja en su tiempo de

ejecucion estimado:

TEP (m) =

(

m4 +7

2m3 +

m2

2

)

tf + k

{56

3m3 + 4m2 + 4m

}

tf ,

cuando m = n.

MIII. Por ultimo, los tiempos de ejecucion de los pasos 4.5., 4.6. y 4.7. del

Algoritmo 24 son:

TW (m, n) =(2mn2 + 2m2n

)tf

THL(m, n) =(4mn + 6n2

)tf

TP (m) =

(26

3m3 + m2

)

tf

Algoritmo 24 MIII

1. A(0) ← CalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← dgesvd(A(0))

3. denoi,j ←[S∗2

i − S∗2j

]

i,j=1,n;excepto i=j

4. Para k = 0,1,..., Mientras dlange(P (k)tA(k)Q(k) − diag(S∗)) > tol

4.1. J (k) ← CalculaJ(A1, ..., An, P (k), Q(k))

4.2. b(k) ← Calculab(A0, P(k), Q(k), S∗)

4.3. c(k+1) ← dgesv(J (k), b(k))

4.4. A(k+1) ← CalculaA(c(k+1), A0, ..., An)

4.5. W (k) ← CalculaW(P (k), Q(k), A(k+1))

4.6. [H(k), L(k)]← CalculaHL(S∗, W, deno)

4.7. P (k+1) ← AproximaP(P (k), H(k))

4.8. Q(k+1) ← AproximaQ(Q(k), L(k))

El paso 4.8. tiene el mismo costo que TP , sustituyendo m por n. Por lo tanto,

el tiempo de ejecucion de MIII, tomando m = n es:

TMIII(m) =

(53

3m3 +

11

2m2 − 3

2m

)

tf + k{2m4 + 31m3 + 18m2 + 3m

}tf .

Como MIII comparte el calculo de J con MI, el paso mas costoso de MIII

es el paso 4.1. que se ejecuta con cada iteracion.

Con todos estas estimaciones de tiempos de ejecucion se tiene otro parametro

de comparacion de los algoritmos del PIAVS. FB es el algoritmo con mas costo

computacional, mietras que EP tiene el menor costo por iteracion, sin embargo,

en los experimentos realizados EP requiere muchas iteraciones para converger

que el resto de los algoritmos. Entonces, los tiempos de ejecucion no estan

71

Page 73: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

supeditados solamente al tamano del problema (m) sino tambien al numero de

iteraciones (k).

Estimar los tiempos de ejecucion tambien ayuda a identificar las secciones

mas costosas de cada algoritmo, permitiendo centrar la atencion en ellas para

valorar si el algoritmo es susceptible de mejora. En los algoritmos que se manejan

en este trabajo, dado que se han hecho estimaciones de tiempos suponiendo

el empleo de rutinas eficientes, es difıcil, en primera instancia, vislumbrar una

mejora sustancial que disminuya la complejidad de tiempo, quedando por aplicar

alternativas de solucion con en el empleo de la programacion paralela para

distribuir la carga de trabajo en un conjunto de procesadores, que es el tema

del Capıtulo 4.

3.3. Analisis y Evaluacion de los Algoritmos Se-

cuenciales del PIAVS

En esta seccion se contrastan los algoritmos FB, MI, EP y MIII, de acuerdo

a diversos aspectos, como: cantidad de almacenamiento requerido, convergencia,

exactitud, criterios de parada, numero de iteraciones requeridas y tiempos de

ejecucion, a traves de estimaciones y con ayuda de los resultados arrojados por

los experimentos realizados.

3.3.1. Requerimientos de Memoria

En sı mismo el PIAVS es un problema que requiere grandes cantidades de

memoria para almanecar, al menos, n + 1 matrices de tamano m × n (Ai, i =

0, n) y dos vectores de tamano n (S∗, c); a esto hay que anadir las matrices y

vectores propios de cada algoritmo (para almacenar valores y vectores singulares,

matrices jacobianas, matrices hemisimetricas, etc.). Haciendo una estimacion de

la cantidad de Kbytes necesarios para cada algoritmo, se obtienen los siguientes

datos:

m = n 4 10 30 50 100 500 1000

FB 12 366 20000 205000 4.0e6 2.0e9 3.2e10

MI 1.2 12 250 1100 8.3e3 1.0e6 8.0e3

EP 1.2 12 250 1100 8.3e3 1.0e6 8.0e3

MIII 1.7 15 270 1200 8.6e3 1.0e6 8.1e3

Facilmente se observa que FB requiere mucho mas memoria que el resto

de los algoritmos, siendo poco factible de implementar para experimentos de

tamanos mayores a 50. Los mejores algoritmos en este aspecto son MI y EP.

72

Page 74: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

3.3.2. Convergencia

En los experimentos numericos realizados se ha reflejado el caracter new-

toniano de todos los metodos, excepto EP, con respecto a la sensibilidad a los

puntos iniciales c(0) dados a los algoritmos; en la siguiente relacion se resumen

estos comportamientos para diferentes puntos iniciales c(0)i = c∗i + δ (i = 1, n).

δ 1e− 1 1e0 1e1

FB converge converge para m < 50 converge para m ≤ 10

MI converge converge para m < 50 converge para m ≤ 10

EP converge converge converge

MIII converge converge para m < 50 converge para m ≤ 10

Se ha observado que, cuando c(0) es cercano a la solucion, ningun algoritmo

tiene problemas de convergencia, pero en cuanto c(0) se aleja de la solucion los

algoritmos convergen para tamanos de problema (m, n) cada vez mas pequenos.

EP es el algoritmo que mejores caracterısticas de convergencia tiene, dado que

se ha demostrado que converge en el sentido (2.31).

Los criterios con los que se determina que un algoritmo ha convergido son:

FB ‖S(k) − S∗‖2 < tol

MI ‖S(k) − S∗‖2 < tol

EP ‖c(k) − c(k−1)‖2 < tol

MIII ‖P (k)tA(k)Q(k) − S∗‖F < tol

de ellos el menos costoso de calcular y mas facil de alcanzar es el de EP, aunque

con este podrıa convergerse no necesariamente a c∗ y no se involucra en absoluto

a S∗; mientras que el criterio mas costoso, ya que deben calcularse no solo los

valores sino tambien los vectores singulares de A(k), al menos aproximadamente,

donde no se involucra c∗, pero sı S∗, es el de MIII.

Aunque EP es un algoritmo que siempre converge, su punto debil se encuen-

tra en la cantidad de iteraciones y la calidad de la solucion calculada, como se

vera en los siguientes parrafos.

3.3.3. Exactitud de la solucion

Ahora se contrasta la calidad de la solucion dada por cada algoritmo para

los mismos casos experimentales, de los cuales se han tomado aquellos en los

que todos los algoritmos convergen (con c(0)i = c∗i +1e−1, i = 1, n). Para medir

la calidad, se toman los errores relativos de los valores singulares calculados con

respecto a los deseados: ‖S(k)−S∗‖2

‖S∗‖2, y no los errores con respecto a c(k) y c∗,

debido a que el PIAVS puede tener mas de una solucion:

73

Page 75: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

m = n FB MI EP MIII

4 1.21e-16 1.15e-10 1.17e-07 3.05e-16

5 2.35e-12 2.37e-12 4.68e-08 2.34e-12

10 1.67e-16 1.23e-12 6.80e-08 1.74e-12

15 1.90e-16 1.59e-16 1.87e-07 1.99e-16

20 1.18e-16 6.33e-16 1.42e-07 2.75e-16

25 1.26e-15 8.89e-16 1.79e-07 7.72e-16

30 5.41e-16 4.29e-16 1.13e-07 2.57e-16

40 2.35e-16 2.44e-16 6.43e-08 2.39e-16

50 1.76e-14 2.23e-13 6.66e-08 3.11e-16

EP es el menos exacto de los algoritmos y en la mayorıa de los casos MIII

es el que aproxima mejor a los valores singulares deseados.

3.3.4. Estimacion de la complejidad de tiempo y tiempos

de ejecucion

La estimacion de la complejidad de tiempo esta en funcion del tamano del

problema (m,n) y del numero de iteraciones para converger (k); para los algo-

ritmos que se presentan en este trabajo, esta estimacion puede dividirse en el

costo de la fase de inicio (T (m, n)inicio) y el costo de cada iteracion dentro del

ciclo (T (m, n)ciclo), de modo que la complejidad de tiempo es

T (m, n, K) = T (m, n)inicio + kT (m, n)ciclo.

Entonces, la estimacion para cada metodo (para m = n) puede expresarse

como:

T (m, k)FB ≈ (62/3)m3 + O(m2) + k{(16/3)m6 + O(m5)}

T (m, k)MI ≈ (44/3)m3 + O(m) + k{2m4 + O(m3)}

T (m, k)EP ≈ m4 + O(m3) + k{(56/3)m3 + O(m2)}

T (m, k)MIII ≈ (53/3)m3 + O(m2) + k{2m4 + O(m3)}

La estimacion de FB muestra que es el algoritmo mas costoso de todos.

Por otra parte, EP tiene la estimacion menos costosa en la parte iterativa, pero

necesita mas iteraciones para converger que el resto de los algoritmos. Esto puede

verificarse en la siguiente tabla donde se muestra k, el numero de iteraciones

que necesitan los algoritmos para converger en experimentos con δ = 1e− 1:

m = n 4 5 10 15 20 25 30 40 50

FB 3 2 3 3 3 3 3 3 3

MI 2 2 2 3 3 3 3 3 3

EP 365 206 561 3398 2629 1998 4048 6304 5303

MIII 3 2 2 3 3 3 3 3 4

74

Page 76: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

y en la siguiente figura se muestran los tiempos de ejecucion correspondientes a

los mismos experimentos:

0 5 10 15 20 25 30 35 40 45 5010−2

10−1

100

101

102

103

m=n

Tiem

pos

de e

jecu

ción

(Seg

)

FB MI EP MIII

donde se verifica que LP requiere mas tiempo de ejecucion, mientras que MI es

el mas eficiente y el que requiere menos iteraciones.

3.3.5. Conclusiones

Se han disenado y analizado un conjunto de algoritmos para resolver el

PIAVS. Los resultados experimentales dados en [Chu92a] y [BMX03] para

resolver el PIAVS corresponden a matrices de tamano 5 × 4, por lo que se ha

experimentado con matrices de mayor tamano.

Lo que se observa en este estudio es que FB es un algoritmo de alto coste,

tanto por las dimensiones de las estructuras de datos que maneja (O(m4)), como

por la cantidad de calculos requeridos para operar con ellas (O(m6)).

Desde el punto de vista espacial MI y EP son los de menores requerimientos

de memoria y desde el punto de vista temporal MI es el mas eficiente. La mas

alta exactitud de las soluciones, en la mayorıa de los casos probados, se alcanza

con MIII.

El inconveniente mas importante de MI y MIII, que es un inconveniente mas

de FB, es la sensibilidad que tienen al punto inicial para converger, que se agraba

conforme m aumenta su tamano. En cambio, EP no observa este problema.

Para ilustrar las ventajas e inconvenientes de los algoritmos en una tabla, se

ha asociado un valor del intervalo [1,4] (1=alta valoracion, 4=baja valoracion),

a cada caracterıstica de los algoritmos, que de acuerdo a los experimentos rea-

lizados se obtiene lo siguiente:

Memoria Convergencia Exactitud Iteraciones Tiempo de ejecucion

FB 3 2 3 1 3

MI 1 2 2 1 1

EP 1 1 4 3 4

MIII 2 2 1 2 2

75

Page 77: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

En terminos generales, los algoritmos que mejor equilibran los diferentes

aspectos son MI y MIII.

Los algoritmos que se han implementado trabajan con matrices Ai (i = 0, n)

de estructura general. El manejo de matrices estructuradas conlleva un rediseno

de los algoritmos para explotar la estructura y aminorar los costos de calculo y

almacenamiento, tema que se aborda en el capıtulo 5.

Aplicar estos algoritmos a problemas de mayor tamano (m > 50) implica

lidiar con altos costos de almacenamiento y ejecucion. Una forma de solventar

los problemas de memoria es manteniendo las estructuras de datos almacenadas

en memoria secundaria y tenerlas en memoria principal solamente cuando se

accedieran. Otra forma, que tambien solventarıa el alto costo de ejecucion, es

paralelizando los algoritmos, de modo que cada procesador involucrado alma-

cenara solamente una parte de las estructuras de datos y ejecutara parte de

los calculos del algoritmo. La paralelizacion de los algoritmos es el tema del

siguiente capıtulo.

76

Page 78: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 4

Algoritmos Paralelos para

la Resolucion del PIAVS

El diseno, la experimentacion numerica y la evaluacion de los algoritmos

paralelos de los metodos que resuelven el PIAVS se presentan en este capıtulo. La

paralelizacion de estos metodos tiene como fin poder aplicarlos para tamanos de

problema grandes (para valores de m del orden de O{102, 103}) y disminuir los

costos de ejecucion y almacenamiento que, como se vio en el Capıtulo anterior,

son muy altos.

La paralelizacion realizada esta en funcion del entorno paralelo selecciona-

do: distribucion de matrices y vectores por bloques en mallas logicas de proce-

sadores, ejecucion de un mismo conjunto de instrucciones sobre diferentes con-

juntos de datos en las unidades de procesamiento y empleo del modelo de paso

de mensajes entre las unidades de procesamiento.

Una buena parte de las operaciones de los algoritmos del PIAVS pueden pa-

ralelizarse utilizando directamente rutinas de ScaLAPACK, PBLAS y BLACS;

otras son paralelizables disenando rutinas especıficas que se basan en llamadas

a rutinas del mismo ScaLAPACK, de LAPACK, BLAS, PBLAS y BLACS (in-

clusive de MPI).

La primera tarea en este capıtulo (Seccion 4.1) es detallar los disenos pa-

ralelos de las operaciones que conforman a los algoritmos FB, MI, EP y MIII,

especificando las rutinas utilizadas. En la Seccion 4.2 se presentan los algoritmos

paralelos de FB, MI, EP y MIII y se estiman los tiempos de ejecucion teoricos

de cada uno. Posteriormente, en la Seccion 4.3 se reportan tiempos de ejecucion

de experimentos realizados, analizando y constrastando las pretaciones que de

estos experimentos se obtegan.

77

Page 79: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

4.1. Paralelizacion de Operaciones de Algorit-

mos del PIAVS

Los algoritmos paralelos del PIAVS trabajan con estructuras de datos cuya

distribucion sigue la convencion establecida por ScaLAPACK. Ası, todas las es-

tructuras de datos: A0, A1, ..., An, A, c, S∗, los vectores singulares (P , Q), matri-

ces hemisimetricas (H , L), matrices jacobianas (JFB, J), vectores de terminos

independientes (b, btr, F ) y matrices de coeficientes (Atr) se han particionado

en bloques y distribuido cıclicamente en una malla logica de procesadores de

Prc = Pr × Pc procesadores (Pr renglones y Pc columnas). Para evitar al maxi-

mo las comunicaciones entre nodos, S∗ y c tambien se han replicado en cada

procesador. Por lo tanto, en cada nodo de procesamiento se manejan matrices

y vectores con los siguientes tamanos locales (resultado de dividir la dimension

global de la estructura por el numero de procesadores):

Estructura Dimension global Dimension local

A, Ai (i = 0, n) m× n m/Pr × n/Pc

P, H m×m m/Pr ×m/Pc

Q, Atr, L, J n× n n/Pr × n/Pc

JFB (mn + n2 + n)× (mn + n2 + n)/Pr×(mn + n2 + n) (mn + n2 + n)/Pc

c, b, btr m m/Pr

F mn + n2 + n (mn + n2 + n)/Pr

Al igual que en el caso secuencial, las operaciones comunes a todos los algo-

ritmos, excepto el calculo de A, estan paralelizadas en rutinas de ScaLAPACK

y PBLAS:

pdgesvd, ScaLAPACK, svd de una matriz

pdgesv, ScaLAPACK, resolucion de un sistema de

ecuaciones lineales

pdnrm, PBLAS, norma-2 vectorial

pdlange, ScaLAPACK, norma-Frobenius matricial.

La paralelizacion del calculo de A esta en el Algoritmo 25. Notese que este

algoritmo no tiene comunicaciones entre nodos, al estar c replicada.

Algoritmo 25 ParaleloCalculaA

1. A← A0

2. Para i = 1,n

2.1. A← daxpy( mPr∗ n

Pc, ci, Ai)

Otras rutinas utilizadas en las paralelizacion de los algoritmos del PIAVS

son:

78

Page 80: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Rutinas Aritmeticas de PBLAS y ScaLAPACK (con escalares α, β replicados;

vectores x, y y matrices A, B, C distribuidas en los procesadores):

pddot PBLAS xty

pdscal PBLAS αx

pdaxpy PBLAS αx + y

pdgemv PBLAS αAx + βy

pdgemm PBLAS αAB + βC

pdlaset ScaLAPACK asigna valores a la triangular

superior o inferior de una matriz

pdgetri ScaLAPACK, A−1

Rutinas de comunicaciones y redistribucion de datos de MPI, BLACS y ScaLA-

PACK:

MPI REDUCE MPI reduce valores de todos los procesadores

a un solo valor en un solo procesador

(comunicacion todos a uno)

dgesd2d,dgerv2d BLACS envıo-recepcion de datos punto a punto

dgebs2d,dger2d BLACS dispersion de datos (envıo uno a todos

o broadcast)

dgsum2d BLACS suma componente a componente matrices

almacenadas en diferentes procesadores

replicando el resultado en todos ellos

pdgemr2d ScaLAPACK redistribuye un vector de datos

pdelset ScaLAPACK asigna un valor a un componente

de una matriz distribuida

A continuacion se paralelizan las rutinas de FB, MI, EP y MIII, detallando

algorıtmicamente la paralelizacion y esquematizandola cuando sea necesario.

4.1.1. Paralelizacion de rutinas necesarias para FB

Primero se presenta la paralelizacion de las operaciones medulares del al-

goritmo FB, como son: calculo del vector F , de la matriz Jacobiana JFB y

actualizacion del vector Z = [Q, P, c].

Paralelizar el calculo de JFB implica mover elementos de Q, P y Ai (i =

1, n) a posiciones especıficas de JFB. Se ilustran, por ejemplo, los movimientos

de elementos de Q para la construccion de los bloques JFB11 y JFB3,2. Cada

elemento de Q, qi,j (i = 1, n; j = 1, n) se dispersa en la malla de procesadores

y estos lo colocan en la posicion de JFB requerida (con previa multiplicacion

por 2 o por S∗j , segun sea el caso) . Para construir las columnas de JFB11

simplemente se utiliza la rutina de PBLAS pdcopy y para construir los elementos

79

Page 81: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

diagonales se utiliza la rutina pdlaset de ScaLAPACK. De forma analoga a Q se

redistribuyen los elementos de P en JFB22 y JFB31. Finalmente, para construir

JFB33 se vuelve a hacer uso de pdlacpy.

La paralelizacion del calculo de F requiere calcular A, realizar cuatro mul-

tiplicaciones matriz-matriz distribuidas (pdgemm) y redistribuir los resultados

en F (pdcopy) (Algoritmo 26).

Algoritmo 26 ParaleloCalculaF

1. k ← 1

2. { aux← QtQ− In }aux← pdgemm(n, n, n, Qt, Q,−In)

3. { Llena F1:n∗(n+1)/2, comunicando n2 datos }Para i = 1,n

a. Fk:k+n−i+1 ← pdcopy(n− i + 1, auxi:n,i)

b. k ← k + n− i + 1

4. { aux← P tP − Im }aux← pdgemm(m, m, m, P t, P,−Im)

5. { Llena Fn∗(n+1)/2+1:n∗(n+1), comunicando n2 datos }Para i = 1,n

5.1. Fk:k+n−i+1 ← pdcopy(n− i + 1, auxi:n,i)

5.2. k ← k + n− i + 1

6. { aux← Pdiag(S∗) }aux← pdgemm(m, n, n, P, diag(S∗))

7. A← ParaleloCalculaA(c(k), A0, ..., An)

8. { A← A− PS∗Qt }A← pdgemm(m, n, n,−aux, Q, A)

9. { Llena Fn∗(n+1)+1:mF , comunicando mn datos }Para i=1,m

9.1. Fk:k+n ← pdcopy(n, Ai,1:n)

9.2. k ← k + n

Para actualizar Z en paralelo se tiene el Algoritmo 27. Como c debe con-

tenerla todo procesador, se construye completamente en el procesador 0 (paso

3) para que este lo disperse al resto de procesadores.

80

Page 82: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 27 ParaleloActualizaZ

1. Para i = 1,n

1.1. Qi,1:n ← pdaxpy(n, sol(i−1)n+1:in+1, Qi,1:n)

2. Para i = 1,m

2.1. Pi,1:n ← pdaxpy(n, soln2+(i−1)n+1:n2+in+1, Pi,1:n)

3. { Redistribuir el subvector de sol correspondiente a c

de modo que el procesador 0 lo contenga completamente en aux }aux← pdgemr2d( n

Pr, Fn2+mn+1:n2+mn+n)

4. { Replicar c (aux) en todos los procesadores, realizando una

dispersion uno a todos de un mensaje de longitud n }Si procesador 0 entonces { enviar }

c← daxpy(n, aux, c)

dgebs2d(′All′, n, c)

Sino { recibir }c← dger2d(′All′, n, c)

4.1.2. Paralelizacion de rutinas necesarias para MI

Para paralilizar MI hay que paralelizar escencialmente dos procesos: el calcu-

lo de la matriz Jacobiana J y el vector de terminos independientes b. Ası como

en el caso secuencial, en el calculo paralelo de J no es necesario realizar n multi-

plicaciones matriz-vector distribuidas para calcular Ajqi, para j = 1, n; es mas

eficiente realizar una sola multiplicacion matriz-matriz distribuida AQ para te-

ner el mismo resultado. La matriz resultante se multiplica columna a columna

con P utilizando el producto escalar (pti(Ajqi) = pt

i(AjQ)i para i = 1, n) y

se hace uso de la herramienta pdelset de ScaLAPACK para colocar el resul-

tado del producto escalar en el correspondiente componente de J (Ji,j). Este

procedimiento se describe en el Algoritmo 28.

Algoritmo 28 ParaleloCalculaJ

1. Para j = 1, n

1.1. aux← pdgemm(m, n, n, Aj, Q)

1.2. Para i = 1, m

1.2.1. prodEsc← pddot(m, pi, auxi)

1.2.2. Ji,j ← pdelset(prodEsc)

La paralelizacion del calculo de b obedece a la misma idea de calcular una

columna de J , sustituyendo la matriz Aj con A0, como se ve en el Algoritmo 29.

81

Page 83: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 29 ParaleloCalculab

1. aux← pdgemm(m, n, n, Aj , Q)

2. Para i = 1, m

2.1. prodEsc← pddot(m, pi, auxi)

2.2. bi ← pdelset(prodEsc)

2.3. b← pdscal(m,−1,0d0, b)

2.4. { b← S∗ − b }b← pdaxpy(m, S∗, b)

4.1.3. Paralelizacion de rutinas necesarias para EP

Los algoritmos a paralelizar en EP son el calculo de la matriz de coefientes

Atr y el del vector de terminos independientes btr. En el calculo paralelo de Atr

intervienen todos los procesadores porque cada Ai (i = 0, n) esta distribuida

en la malla logida de procesadores. Ası, para realizar los calculos con Ai y

Aj , cada procesador realiza el producto escalar de las columnas de Ai con Aj

que tiene almacenadas, obteniendo un resultado parcial de Atrji. Mediante dos

operaciones de reduccion y suma, el resultado de la suma de todos los resultados

parciales se coloca en las posiciones (i, j) y (j, i) de Atr. Esta operacion se realiza

para cada par de componentes (i, j) y (j, i) de Atr (ver Algoritmo 30).

Algoritmo 30 ParaleloCalculaAtr

1. Para i = 1,n

1.1. Para j = 1,i

1.1.1. tr ← 0

1.1.2. Para k = 1,n/Pc

1.2.2.1. tr ← tr + ddot(n/Pr, Aj:,k , Ai:,k )

1.1.3. { Reduccion−Suma de tr de todos los procesadores al

procesador Proc que tiene el componente (i, j) de Atr }Atri,jP roc

←MPI ReduceSum(1,tr,Proc)

btr se paraleliza con los mismos criterios que Atr (ver Algoritmo 31).

82

Page 84: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 31 ParaleloCalculabtr

1. { P ← PS∗ }Para i = 1,n/Pc

1.1. P:,i ← dscal(n/Pr, sAsteri, P:,i)

2. aux← A0

3. aux← pdgemm(m, n, n, P, Qt,−aux)

4. Para i=1,n

4.1. tr ← 0

4.2. Para k = 1,n/Pc

4.2.1. tr ← tr + ddot(n/Pr , Ai:,k , aux:,k)

4.3. { Reduccion−Suma de tr de todos los procesadores

al procesador Proc que tiene el componente i de btr }btriP roc

←MPI ReduceSum(1,tr,Proc)

4.1.4. Paralelizacion de rutinas necesarias para MIII

Las operaciones a paralelizar en MIII son: el calculo de W , H y L y la

actualizacion de P y Q. El calculo paralelo de W es muy sencillo, se deja toda

la tarea a rutinas de PBLAS (ver Algoritmo 32).

Algoritmo 32 ParaleloCalculaW

1. W ← pdgemm(m, n, m, P t, A)

2. A← pdgemm(m, n, n, W, Q)

3. W ← A

4. {aux←W t}Para j = 1,n

4.1. auxj,1:m ← pdcopy(m, W1:m,j)

La paralelizacion de la aproximacion de P y Q tambien es sencilla, el algorit-

mo se limita a realizar las correspondientes llamadas de BLAS en PBLAS (ver

Algoritmo 33). Como se ha visto antes, aproximar Q es analogo a aproximar P .

83

Page 85: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 33 ParaleloAproximaP

1. { aux← PH }aux← pdgemm(m, m, m, P, H)

2. { H ← −(1/2)PHP t }H ← pdgemm(m, m, m,−(1/2)aux, P t)

3. { H ← Im − (1/2)H }Para i=1,m

3.1. El procesador que almacena Hi,i global ejecuta: Hilocal,ilocal ← 1

4. { aux← (Im − (1/2)H)P }aux← pdgemm(m, m, m, H, P )

5. { P ← (Im − (1/2)H)P }P ← aux

6. { aux← Im − (1/2)H }aux← H

7. { aux← −Im + (1/2)H }aux← dscal(ldA ∗ nqP,−1, aux)

8. { aux← Im + (1/2)H }Para i = 1,m

8.1. El procesador que almacena auxi,i global ejecuta: auxilocal,ilocal ← 1

9. { Calcula lu(Im + (1/2)H) }[L, U ]← pdgetrf(m, aux)

10. { Resuelve (Im + H2 )P+ = (Im − H

2 )P }P+ ← pdgetrs(m, L, U, P )

En el calculo de H y L no hay necesidad de comunicar datos entre proce-

sadores, ya que las operaciones con las estructuras de datos que estan dis-

tribuidas en ellos se realizan operaciones componente a componente, por estos

motivos se han disenado algoritmos paralelos que calculen tanto W como W t.

El algoritmo correspondiente es el Algoritmo 34.

84

Page 86: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 34 ParaleloCalculaHL

1. Para j = 1,n/Pc

1.1. { Hi,j = −Hj,i ← S∗j Wi,j i = 1, n; j = i + 1, n }

H1:n/Pr ,j ← daxpy(n/Pr, S∗jglobal, W1:1/Pr ,j)

1.2. { Li,j = −Lj,i ← S∗i Wi,j i = 1, n; j = i + 1, n }

L1:n/Pr,j ← daxpy(n/Pr, S∗jglobal, aux1:n/Pr,j)

1.3. { Hi,j ← −Wi,j/S∗j i = n + 1, m; j = 1, n }

Hn/Pr+1:m/Pr,j ← daxpy(m/Pr − n/Pr,−1/S∗jglobal, Wn/Pr+1:m/Pr ,j)

2. Para i = 1,n/Pr

2.1. { Hi,j = −Hj,i ← S∗i Wj,i + S∗

j Wi,j i = 1, n; j = i + 1, n }Hi,1:n/pc

← daxpy(n/Pc, S∗iglobal, auxi,1:n/Pc

)

2.2. { Li,j = −Lj,i ← S∗i Wi,j + S∗

j Wj,i i = 1, n; j = i + 1, n }Li,1:n/Pc

← daxpy(n/Pc, S∗iglobal, auxi,1:n/Pc

)

2.3. { Hj,i ← Wi,j/S∗j i = n + 1, m; j = 1, n }

Hi,n/Pc+1:m/Pc← daxpy(m/Pc − n/Pc,−1/S∗

iglobal, auxi,n/Pc+1:m/Pc)

3. Para i = 1,n/Pr

3.1. Para j = 1,n/Pc

3.1.1. Hi,j ← Hi,j/denoi, j

3.1.2. Li,j ← Li,j/denoi, j

La paralelizacion del calculo de b y J ya se han visto en MI.

Con esta rutina se termina el desarrollo de rutinas paralelas de los pasos de

los metodos del PIAVS. A continuacion se presentan los algoritmos paralelos de

FB, MI, EP y MIII y se estiman los tiempos de ejecucion teoricos de cada uno.

4.2. Algoritmos Paralelos para el PIAVS y Tiem-

pos de Ejecucion Teoricos

Para estimar los tiempos de ejecucion de las algoritmos paralelos disenados,

se da una lista de los tiempos de ejecucion de las rutinas paralelas aritmeticas

de ScaLAPACK y PBLAS utilizadas [KGGKrp94], [CDD+95], [BCC97], con-

siderando matrices de dimension m×m y vectores de dimension m (recordar que

tf detona el tiempo de ejecucion para operar con un flotante, tm es la latencia y

tv es el tiempo de transferencia de un dato entre dos nodos de procesamiento):

pdgesvd (ScaLAPACK)

T (m, Prc) =38

3

m3

Prctf + 17mtm +

14m2log2Prc√Prc

tv

pdgesv (ScaLAPACK)

T (m, Prc) =2

3

m3

Prctf + (6 + log2Prc) mtm +

(

3 +log2Prc

4

)m2

√Prc

tv

85

Page 87: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

pddot (PBLAS)

T (m, Prc) =2m

Prctf + 2(

Prc − 1)tm + tv

pdaxpy (PBLAS)

T (m, Prc) =m√Prc

tf + tm +Pr + Pc

2

m√Prc

tv

pdgemv (PBLAS)

T (m, Prc) =m2

Prctf + 2

Prctm + 3mtv

pdgemm (PBLAS)

T (m, Prc) =2m3

Prctf + m(log2Pc + log2Pr)tm+

+

(

log2Pcm2

Pr+ log2Pr

m2

Pc

)

tv

ParaleloCalculaA

T (m, Prc) =2m3

Prctf

Tambien se listan los tiempos de ejecucion estimados de las rutinas de co-

municacion utilizadas, considerando la comunicacion de un mensaje de longitud

m [KGGKrp94]:

Comunicacion Punto a Punto (dgesd2d-dgerv2d (BLACS), pdelset (ScaLA-

PACK))

T (m, Prc) = tm +Pr + Pc

2mtv

Comunicacion Uno a Todos o Dispersion (dgebs2d-dgebr2d (BLACS))

T (m, Prc) =

(Pr + Pc

2+ 1

)

(tm + mtv)

Comunicacion Todos a Uno o Reduccion (pdgemr2d1(ScaLAPACK))

T (m, Prc) =

(Pr + Pc

2+ 1

)

(tm + mtv)

Reduccion con Suma (MPI REDUCE)

T (m, Prc) =

(Pr + Pc

2+ 1

)

mtf +

(Pr + Pc

2+ 1

)

(tm + mtv)

Comunicacion Todos a Todos

T (m, Prc) = (Pr + Pc − 2) (tm + mtv)

1Aunque pdgemr2d se utiliza en general para redistribuir una matriz en una malla de

procesadores, en este trabajo se utiliza para una sola redistribucion especıfica: construir el

vector global c en el procesador 0 del vector distribuido c

86

Page 88: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Comunicacion Todos a Todos con suma (dgsum2d (BLACS)

T (m, Prc) = (Pr + Pc − 2) mtf + (Pr + Pc − 2)(tm + mtv)

A continuacion se presentan los algoritmos paralelos de FB, MI, EP y MIII y

la estimacion de sus tiempos de ejecucion con base en los tiempos arriba listados.

FB Paralelo. La paralelizacion de FB esta en el Algoritmo 35.

Algoritmo 35 FBParalelo

1. A(0) ← ParaleloCalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← pdgesvd(A(0))

3. F (0) ← ParaleloCalculaF(c(0), A0, ..., An, P (0), S∗, Q(0))

4. error ← pdnrm2(F (0))

5. {Difunde por renglones error replicado en la columna 0 de procesadores}error ← dgsum2d(′Ren′, 1, error)

6. Para k = 0,1,..., Mientras error > tol

6.1. JFB(k) ← ParaleloCalculaJFB(S∗, A1, ..., An, P (k), Q(k))

6.2. sol(k) ← pdgesv(JFB(k),−F (k))

6.3. [c(k+1), P (k+1), Q(k+1)]← ParaleloActualizaZ(c(k), P (k), Q(k), sol(k))

6.4. F (k+1) ← ParaleloCalculaF(c(k+1), A0, ..., An, P (k+1), S∗, Q(k+1))

6.5. error ← pdnrm2(F (k))

6.6. {Difunde por renglones error replicado en la columna 0 de procesadores}error ← dgsum2d(′Ren′, 1, error)

Los tiempos de ejecucion de los pasos 6.1., 6.3. y 6.4. de este algoritmo son,

respectivamente:

TJFB(m, n, Prc) =2mn + 2n2

Prctf +

(n3 + 3mn2 + m2n

)(

tm +Pr + Pc

2tv

)

TZ(m, n, Prc) =

(mn√Prc

+n2

√Prc

+ n

)

tf +

(

n + m +2Pr + Pc + 3

2

)

tm+

+

{Pr + Pc

2√

Prc

(mn + n2) +

(Pr + 1

2Pr+

Pr + Pc + 2

2

)

n

}

tv

TF (m, n, Prc) =

(6mn2

Prc+

2n3

Prc+

2m3

Prc

)

tf+

((log2Pc + log2Pr)(3n + m) + mn + 2n2

)tm+

(Pr + Pc

2(2n2 + mn) +

log2Pc

Pr(2mn + m2 + n2) +

log2Pr

Pc(3n2 + m2)

)

tv

87

Page 89: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Considerando m = n, el tiempo de ejecucion de las operaciones aritmeticas

de FB es:

TA(m, Prc) =

(74m3

3Prc+

4m2

Prc+

2m

Prc+

Pr + Pc

2

)

tf+

+ K

{16m6

3Prc+

8m5

Prc+

4m4

Prc+

32m3

3Prc+

(8

Prc+

2√Prc

)

m2+

+

(

1 +2

Prc

)

m

}

tf

y el tiempo de comunicaciones es:

TCm(m, Prc) =

(

3m2 + (4log2Pc + 4log2Pr + 17)m +Pr + Pc

2

)

tm+

+ K{5m3 + (2log2Prc + 15)m2 + (log2Prc + 4log2Pr + 4log2Pc + 8)m+

+3Pr

2+ Pc

}

tm

TCv(m, Prc) =

{(14log2Prc√

Prc

+4log2Pr

Pc+

4log2Pc

Pr+

3

2(Pr + Pc)

)

m2 +Pr + Pc

2

}

tv+

+ K

{

(log2Prc + 12)m4

√Prc

+

(

5Pr + Pc

2+

log2Prc + 12√Prc

)

m3+

+

(log2Prc + Pr + Pc + 12√

Prc

+ 3Pr + Pc

2+

4log2Pc

Pr+

4log2Pr

Pc

)

m2+

+

(

Pr + Pc +1

Pr+ 3

)m

2+

Pr + Pc

2

}

tv

MI Paralelo. Ademas de la paralelizacion de las operaciones de MI ya presen-

tadas, el calculo del error tambien se paraleliza como se explica enseguida. Como

S∗ y S estan replicados en los procesadores, para que ninguno de ellos quede

ocioso al manipular estos vectores en el calculo del error, cada procesador ma-

nipula una parte de los mismos. Por ejemplo, si se tienen Prc = 4 procesadores

(ya sea en una malla 2× 2, 1× 4 o 4 × 1) y la longitud de S y S∗ es m = 13,

entonces tres de los procesadores manipulara 3 elementos y el cuarto procesador

manipulara 4 elementos. Para controlar esto, se utilizan las estructuras de datos:

longi, low, up, que en este ejemplo tendran los valores:

Procesador longi low up

0 4 1 4

1 3 5 7

2 3 8 10

3 3 11 13

Este proceso paralelo se escribe en el Algoritmo 36.

88

Page 90: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 36 ParaleloCalculaError

1. { Slow:up ← Slow:up − S∗low:up }

Slow:up ← daxpy(longi,−1,0d0, S∗low:up, Slow:up)

2. { error ←√

S2low + S2

low+1 + ... + S2up }

error ← dnrm2(longi, Slow:up)

3. { error ← S2low + S2

low+1 + ... + S2up }

error ← error ∗ error

4. { Calcula error total, error = S21 + S2

2 + ... + S2n en procesador 0 }

error ← dgsum2d(′All′, 1, error)

5. Si procesador 0 entonces { enviar }dgebs2d(′All′, 1, error)

Sino { recibir }error ← dger2d(′All′, 1, error)

6. error ← sqrt(error)

Entonces, el algoritmo MI paralelo es el Algoritmo 37 y los tiempos para

calcular b, J y el error son:

Tb(m, n, Prc) =

(2mn2

Prc+

2mn

Prc+

Pr + 1

2

n

Pc+

n

Pr

)

tf +

+

(

(lpgPc + logPr + 1)n +Pr + 1

2− b

)

tm+

+

(

logPcmn

Pr+ logPr

n2

Pc+

Pr + 1

2

n

Pc+

(Pr + Pc

2

)

n−(

Pr + Pc

2

)

b

)

tv

TJ(m, n, Prc) =

(

2mn3

Prc+ 2

mn2

Prc+

Pr + 1

2

n2

Pc

)

tf+

+

(

(logPc + logPr + 1)n2 +

(Pr + 1

2− b

)

n

)

tm+

+

(

logPcmn2

Pr+ logPr

n3

Pc+

Pr + 1

2

n2

Pc+

Pr + Pc

2n2 − Pr + Pc

2bn

)

tv

Terror =

(4n

Prc+

Pr + Pc

2

)

tf +Pr + Pc

2(tm + tv)

donde b es el tamano de bloque en la distribucion cıclica de las matrices y

vectores en la malla logica de procesadores.

89

Page 91: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 37 MIParalelo

1. A(0) ← ParaleloCalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← pdgesvd(A(0))

3. error ← ParaleloCalculaError(S(0), S∗)

4. Para k = 0,1,..., Mientras error > tol

4.1. J (k) ← ParaleloCalculaJ(A1, ..., An, P (k), Q(k))

4.2. b(k) ← ParaleloCalculab(A0, P(k), Q(k), S∗)

4.3. c(k+1) ← pdgesv(J (k), b(k))

4.4. { Redistribuye c(k+1) de modo que el procesador 0 lo

contenga completamente }c← pdgemr2d( n

Pr, c(k+1))

4.5. { Replica c(k+1) en todos los procesadores realizando

una dispersion uno a todos de un mensaje de longitud n }Si procesador 0 entonces { enviar }

dgebs2d(′All′, n, c(k+1))

Sino { recibir }c(k+1) ← dgebr2d(′All′, n, c(k+1))

4.6. A(k+1) ← ParaleloCalculaA(c(k+1), A0, ..., An)

4.7. [P (k+1), S(k+1), Q(k+1)]← pdgesvd(A(k+1))

4.8. error ← ParaleloCalculaError(S(k+1), S∗)

Por lo tanto, el tiempo de ejecucion aritmetico de MI cuando m = n es:

TA(m, Prc) =

(44

3

m3

Prc+ 4

m

Prc+

Pr + Pc

2

)

tf+

+ K

{2m4

Prc+

58

3

m3

Prc+

+

(Pr + 1

2Pc+

2

Prc

)

m2 +

(1

Pr+

4

Prc

)

m +Pr + 1

2Pc+

Pr + Pc

2

}

tf ,

y el de comunicaciones es:

TCm(m, Prc) =

(

17m +Pr + Pc

2

)

tm+

+ K

{

(log2Pc + log2Pr + 1) m2 +

(

log2Prc + log2Pr + log2Pc +Pr

2− b

)

m+

+2Pr + Pc − b} tm

TCv(m, Prc) =

(14logPrcm

2

√Prc

+Pr + Pc

2

)

tv + K

{(log2Pc

Pr+

log2Pr

Pc

)

m3+

+

(57

4

log2Prc√Prc

+log2Pr

Pc+

log2Pc

Pr+

Pr + Pc

2+

Pr + 1

2Pc+

3√Prc

)

m2+

+

(

Pr + Pc +Pr + 1

2Pc+

1

2Pr −

Pr + Pc

2b

)

m + (1− b)Pr + Pc

2

}

tv

90

Page 92: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

EP Paralelo. Para estimar el tiempo de ejecucion de EP es necesario estimar

el del calculo de Atr y btr (pasos 1.y 4.4. del Algoritmo 38, donde el calculo del

error es igual que en MI.):

TAtr(m, n, Prc) =

(mn3

Prc+

n3

2Pc+

Pr + Pc + 2

4n2

)

tf+

+

(mn2

Prc+

n2

2Pc+

Pr + Pc + 2

4n

)

tf+

+Pr + Pc + 2

4(n2 + n)(tm + tv)

Tbtr(m, n, Prc) =

(mn

Prc+

4mn2

Prc+

n2

Pc+ n

Pr + Pc + 2

2

)

tf+

+ n

(

log2Pc + log2Pr +Pr + Pc + 2

2

)

tm+

+

(

nPr + Pc + 2

2+ logPc

mn

Pr+ log2 Pr

n2

Pc

)

tv

Algoritmo 38 EPParalelo

1. Atr ← ParaleloCalculaAtr(A1, ..., An)

2. Atr ← pdgetri(Atr)

3. parar ← FALSO

4. Para k = 0,1,..., Mientras NO parar

4.1. A(k) ← ParaleloCalculaA(c(k), A0, ..., An)

4.2. [P (k), S(k), Q(k)]← pdgesvd(A(k))

4.3. X(k) ← pdgemm(m, n, n, P (k), pdgemm(m, n, n, S∗, Q(k)t))

4.4. b(k)tr ← ParaleloCalculabtr(S∗, A0, P

(k), Q(k))

4.5. c(k+1) ← pdgemv(n, n, Atr, b(k)tr )

4.6. { Redistribuye c(k+1) de modo que el procesador 0 lo

contenga completamente }c← pdgemr2d( n

Pr, c(k+1))

4.7. { Replica c(k+1) en todos los procesadores realizando

una dispersion uno a todos de un mensaje de longitud n }Si procesador 0 entonces { enviar }

dgebs2d(′All′, n, c(k+1))

Sino { recibir }c(k+1) ← dgebr2d(′All′, n, c(k+1))

4.8. error ← ParaleloCalculaError(c(k+1)− c(k))

4.9. Si error < tol entonces parar ← V ERDADERO

Ası, el tiempo de ejecucion de EP se estima como:

91

Page 93: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

TA(m, Prc) =

(m4

Prc+

(3

Prc+

1

2Pc

)

m3+

+

(Pr + Pc + 2

4+

1

2Pc

)

m2 +Pr + Pc + 2

4m

)

tf+

+ k

{56

3

m3

Prc+

(2

Prc+

1

Pc

)

m2 +

(

Pr + Pc +4

Prc + 1

)

m +Pr + Pc

2

}

tf

TCm(m, Prc) =

(Pr + Pc + 2

4m2 +

Pr + Pc + 8log2Pr + 2

4m

)

tm+

+ k

{(

log2Pr + log2Pc +Pr + Pc

2+ 18

)

m+

+3Pr

2+ Pc + 2

Prc

}

tm

TCv(m, Prc) =

((Pr + Pc

4+

log2Pr

2Pc+

1

Pr+

1

2

)

m2 +Pr + Pc + 2

4m

)

tv+

+ k

{(14log2Prc√

Prc

+log2Pr

Pc+

log2Pc

Pr

)

m2 +

(

Pr + Pc +1

2Pr+

11

2

)

m+

+Pr + Pc

2

}

tv

cuando m = n.

MIII Paralelo. Por ultimo, los tiempos de ejecucion de los pasos 5.5., 5.6. y

5.7. del Algoritmo 39 son:

TW (m, n, Prc) =2m2n + 2mn2

Prctf+

+ ((log2Pc + log2Pr) m + (log2Pc + log2Pr + 1) n) tm+

+

(

log2Pcmn

Pr+ log2Pr

n2

Pc+

Pr + Pc

2

mn

Pr

)

tv

THL(m, n, Prc) =

(

4mn

Prc+ 6

n2

Prc

)

tf

TP (m, n, Prc) =

(20

3

m3

Prc+

2m3

Pr+

m2

Prc+

2m2

Pr+ 4m2

)

tf+

+(m2(Pr + 3) + m(3log2Pc + 5log2Pr)

)tm+

+

(m3Pc

2Pr+

m2

Pr

(

3log2Pc +Pc

2+ 1

))

tv+

+

(m2

Pc

(

3log2Pr +log2Pr

2

)

+ m2(Pr + 1)

)

tv

92

Page 94: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 39 MIIIParalelo

1. A(0) ← ParaleloCalculaA(c(0), A0, ..., An)

2. [P (0), S(0), Q(0)]← pdgesvd(A(0))

3. denoi,j ←[S∗2

i − S∗2j

]

i=1,n/Pr ; j=1,n/Pc; excepto i=j

4. W (0) ← ParaleloCalculaW (P (0), Q(0), A(0))

5. Para k = 0,1,..., Mientras pdlange(W (k) − diag(S∗)) > tol

5.1. J (k) ← ParaleloCalculaJ(A1, ..., An, P (k), Q(k))

5.2. b(k) ← ParaleloCalculab(A0, P(k), Q(k), S∗)

5.3. c(k+1) ← pdgesv(J (k), b(k))

5.4. { Redistribuye c(k+1) de modo que el procesador 0 lo

contenga completamente }c← pdgemr2d( n

Pr, c(k+1))

5.5. { Replica c(k+1) en todos los procesadores realizando

una dispersion uno a todos de un mensaje de longitud n }Si procesador 0 entonces { enviar }

dgebs2d(′All′, n, c(k+1))

Sino { recibir }c(k+1) ← dgebr2d(′All′, n, c(k+1))

5.6. A(k+1) ← ParaleloCalculaA(c(k+1), A0, ..., An)

5.7. W (k) ← ParaleloCalculaW(P (k), Q(k), A(k+1))

5.8. [H(k), L(k)]← ParaleloCalculaHL(S∗, W (k), deno)

5.9. P (k+1) ← ParaleloAproximaP(P (k), H(k))

5.10. Q(k+1) ← ParaleloAproximaQ(Q(k), L(k))

5.11. W (k+1) ← ParaleloCalculaW (P (k+1), Q(k+1), A(k+1))

El paso 5.8. tiene el mismo costo que TP , sustituyendo m por n. Por lo tanto,

el tiempo de ejecucion de MIII, tomando m = n es:

TA(m, Prc) =

(53m3

3Prc+

7m2

Prc

)

tf+

k

{2m4

Prc+

27m3

Prc+

(18

Prc+

4

Pr+

Pr

2Pc+ 8

)

m2 +m

Pr+

Pr + 1

2Pc

}

tf

TCm(m, Prc) = [(log2Pr + log2Pc + 17)m + Pr + Pc] tm+

k

{

(Pr + log2Pr + log2Pc + 4) m2 +

(

log2Prc + 10log2Pc + 14log2Pr +Pr

2− b +

15

2

)

m+

2Pr +3Pc

2

}

tm

93

Page 95: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

TCv(m, Prc) =

[(14log2Prc√

Prc

+log2Pr

Pc+

log2Pc

Pr

)

m2 + Pr + Pc

]

tv+

+ k

{(log2Pc

Pr+

log2Pr

Pc+

Pc

2Pr

)

m3+

+

(log2Prc + 12

4√

Prc

+13log2Pr

Pc+

6log2Pc

Pr+

Pr + 1

2Pc+

Pc + 1

Pr+

Pc + 3Pr

2+

3

2

)

m2+

+

(

3Pr + Pc

2+

Pr + 1

2Pc+

1

2Pr− Pr + Pc

2b

)

m+

+ Pr + Pc −Pr + Pc

2b

}

tv

Era de esperarse que, como se utilizan rutinas eficientes de ScaLAPACK y

PBLAS, los tiempos de ejecucion paralelos son aproximadamente los tiempos

secuenciales divididos por el numero de procesadores mas el tiempo de comu-

nicaciones entre estos. En terminos de orden superior, los tiempos de ejecucion

aritmeticos paralelos son:

TFB :74m3

3Prc+ O

(m2

Prc

)

+ k

{16m6

3Prc+ O

(m5

Prc

)}

TMI :44m3

3Prc+ O

(m

Prc

)

+ k

{2m4

Prc+ O

(m3

Prc

)}

TEP :m4

Prc+ O

(m3

Prc

)

+ k

{56m3

3Prc+ O

(m2

Prc

)}

;

TMIII :53m3

3Prc+ O

(m2

Prc

)

+ k

{2m4

Prc+ O

(m3

√Prc

)}

los tiempos de establecimiento de comunicacion son:

TFB : 3m2 + O(

log2

Prc

)

+ k{

5m3 + O(√

Prcm2)}

TMI : 17m + k{

2log2

Prcm2 + O

(√

Prcm)}

TEP :

√Prcm

2

2+ O

(√

Prcm)

+ k

{√Prcm

2

}

;

TMIII : 2log2

Prcm + k{√

Prcm2 + O

(√

Prcm)}

,

a lo largo de todo FB se establecen mas comunicaciones que en resto de los

algoritmos. Observando los tiempos del ciclo, el que menos establece comuni-

caciones es EP, sin embargo en las operaciones anteriores al ciclo es el mas

costoso. MI y MIII observan el fenomeno inverso de EP. Por ultimo, los tiempos

de transferencia son:

TFB :14log2Prcm

2

√Prc

+ k

{log2Prcm

4

√Prc

+ O(√

Prcm3)}

TMI :14log2Prcm

2

√Prc

+ k

{2log2

√Prcm

3

√Prc

+ O(√

Prcm2)}

94

Page 96: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

TEP :

√Prcm

2

4+ O

(√

Prcm)

+ k

{14log2Prcm

2

√Prc

+ O(√

Prcm)}

;

TMIII :14log2Prcm

2

√Prc

+ k

{log2Prcm

3

√Prc

+ O(√

Prcm2)}

,

dentro del ciclo, FB realiza mas redistribucion de datos que el resto de los

algoritmos, el mas barato sigue siendo EP ; en las operaciones previas al ciclo,

practicamente no hay diferencias entre ellos.

Con estos tiempos de ejecucion teoricos y los tiempos de ejecucion teoricos

secuenciales del Capıtulo 3 se puede estimar la tendencia asintotica del Speedup

cuando crece el tamano del problema (m→∞). Se puede comprobar que para

todos los algoritmos paralelos del PIAVS el Speedup teorico alcanza el optimo:

limm→∞

SFB(m, Prc) = limm→∞

T (m, 1)

T (m, Prc)

(3Prc

16m6tf

)(3Prc

16m6tf

)−1

= Prc

limm→∞

SMI (m, Prc) = limm→∞

T (m, 1)

T (m, Prc)

(Prc

2m4tf

)(Prc

2m4tf

)−1

= Prc

limm→∞

SEP (m, Prc) = limm→∞

T (m, 1)

T (m, Prc)

(Prc

m4tf

)(Prc

m4tf

)−1

= Prc

limm→∞

SMIII(m, Prc) = limm→∞

T (m, 1)

T (m, Prc)

(Prc

2m4tf

)(Prc

2m4tf

)−1

= Prc

Con los tiempos de ejecucion estimados tambien se pueden prever los tiempos

de ejecucion experimentales de los algoritmos paralelos si se eligen adecuada-

mente los parametros tf , tm y tv. Si los experimentos se llevaran a cabo en el

cluster Kefren, remitiendose a la parametrizacion de este presentada en la intro-

duccion, los parametros de comunicaciones se toman con los valores: tm = 5e−6

segundos y tv = 4e − 8 segundos/doble. El valor de tf dependera del tipo de

operaciones que realice cada algoritmo. En FB se aplican operaciones vectoriales

y en menor medida operaciones matriciales, por eso se utiliza tf =0.001e − 6

segundos. En MIII predominan las operaciones matriciales, por lo tanto se toma

tf =0.0005e− 6 segundos; mientras que MI puede verse como un algoritmo que

aplica un subconjunto de las operaciones de MIII, por lo que se toma el mismo

valor para tf . EP utiliza en su mayor parte operaciones vectoriales y escalares,

por lo que se toma tf = 0,003e− 6 segundos.

Habiendo elegido los parametros de flop y de comunicaciones, se investiga

bajo que configuracion de malla de procesadores se obtienen los mejores tiempos

de ejecucion en el cluster Kefren, para ello se estiman tiempos para algunos

valores de m y Prc. Los resultados obtenidos son:

95

Page 97: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Prc FB (seg)

1× 9 37.671 182.583 653.527

9× 1 37.669 182.579 653.520

3× 3 37.562 182.327 653.031 ←

1× 12 30.328 142.119 500.850

12× 1 30.325 142.115 500.842

2× 6 30.192 141.802 500.234

6× 2 30.192 141.801 500.232

3× 4 30.165 141.738 500.110 ←

4× 3 30.165 141.738 500.110 ←

m = n 60 80 100

Prc MI (seg)

1× 6 3.1324e+02 3.7607e+03 1.7104e+04

6× 1 3.1342e+02 3.7614e+03 1.7105e+04

2× 3 2.4310e+02 3.2000e+03 1.5212e+04 ←

3× 2 2.4313e+02 3.2001e+03 1.5212e+04

1× 9 2.8784e+02 3.1010e+03 1.3364e+04

9× 1 2.8809e+02 3.1019e+03 1.3366e+04

3× 3 1.8624e+02 2.2888e+03 1.0623e+04 ←

m = n 1000 2000 3000

Prc EP (seg)

1× 6 5.2471e+02 8.1479e+03 4.0944e+04

6× 1 5.2352e+02 8.1381e+03 4.0910e+04

2× 3 5.2136e+02 8.1315e+03 4.0900e+04

3× 2 5.2111e+02 8.1295e+03 4.0893e+04 ←

1× 9 3.5827e+02 5.4677e+03 2.7381e+04

9× 1 3.5700e+02 5.4572e+03 2.7345e+04

3× 3 3.5210e+02 5.4390e+03 2.7307e+04 ←

m = n 1000 2000 3000

Prc MIII (seg)

1× 4 4.8459e+02 5.7285e+03 2.5917e+04

4× 1 4.1035e+02 5.0715e+03 2.3629e+04

2× 2 3.6933e+02 4.7874e+03 2.2720e+04 ←

1× 8 5.0650e+02 4.8809e+03 1.9656e+04

8× 1 3.5371e+02 3.5136e+03 1.4878e+04

2× 4 2.8269e+02 3.0736e+03 1.3537e+04

4× 2 2.5702e+02 2.8269e+03 1.2658e+04 ←

m = n 1000 2000 3000

En todos los algoritmos, las mallas de procesadores con mejores tiempos de

ejecucion corresponden a las cuadradas, tal como lo establece ScaLAPACK.

Ahora, con los parametros establecidos tf , tm y tv y conociendo la mejor

configuracion de malla con mejores tiempos de ejecucion, se calculan los tiem-

pos de ejecucion teoricos en el cluster Kefren para mallas cuadradas y diversos

valores de m = n, siendo los resultados obtenidos los de las Tablas 4.1 para FB,

4.2 para MI, 4.3 para EP y 4.4 para MIII, cuando los algoritmos ejecutan una

sola iteracion.

96

Page 98: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 4.1: Tiempos de Ejecucion Teoricos de FB en Kefren

Prc Tiempo estimado en segundos

1 9.29e+01 2.68e+02 6.64e+02 1.46e+03 2.93e+03 5.49e+03

2 4.91e+01 1.39e+02 3.40e+02 7.44e+02 1.48e+03 2.77e+03

4 2.70e+01 7.41e+01 1.77e+02 3.83e+02 7.62e+02 1.41e+03

6 1.96e+01 5.22e+01 1.23e+02 2.63e+02 5.18e+02 9.57e+02

8 1.58e+01 4.12e+01 9.57e+01 2.02e+02 3.96e+02 7.29e+02

9 1.46e+01 3.75e+01 8.65e+01 1.82e+02 3.56e+02 6.53e+02

10 1.36e+01 3.46e+01 7.92e+01 1.66e+02 3.23e+02 5.91e+02

12 1.20e+01 3.01e+01 6.81e+01 1.41e+02 2.74e+02 5.00e+02

14 1.10e+01 2.70e+01 6.03e+01 1.24e+02 2.39e+02 4.34e+02

16 1.01e+01 2.45e+01 5.43e+01 1.11e+02 2.12e+02 3.85e+02

m 50 60 70 80 90 100

mFJ 5050 7260 9870 12880 16290 10100

Tabla 4.2: Tiempos de Ejecucion Teoricos de MI en Kefren

Prc Tiempo estimado en segundos

1 6.58e+01 1.02e+03 5.13e+03 1.61e+04 3.93e+04 8.15e+04

2 4.10e+01 5.67e+02 2.74e+03 8.49e+03 2.04e+04 4.21e+04

4 2.62e+01 3.18e+02 1.47e+03 4.48e+03 1.06e+04 2.18e+04

6 2.24e+01 2.43e+02 1.07e+03 3.20e+03 7.52e+03 1.52e+04

8 2.09e+01 2.08e+02 8.91e+02 2.58e+03 5.98e+03 1.19e+04

9 1.91e+01 1.86e+02 7.90e+02 2.28e+03 5.30e+03 1.06e+04

10 2.04e+01 1.90e+02 7.84e+02 2.22e+03 5.09e+03 1.01e+04

12 1.78e+01 1.60e+02 6.54e+02 1.85e+03 4.22e+03 8.38e+03

14 2.03e+01 1.72e+02 6.74e+02 1.84e+03 4.12e+03 8.05e+03

16 1.66e+01 1.38e+02 5.41e+02 1.49e+03 3.37e+03 6.62e+03

m 500 1000 1500 2000 2500 3000

Tabla 4.3: Tiempos de Ejecucion Teoricos de EP en Kefren

Prc Tiempo estimado en segundos

1 1.97e+02 3.07e+03 1.54e+04 4.85e+04 1.18e+05 2.44e+05

2 9.97e+01 1.54e+03 7.72e+03 2.43e+04 5.91e+04 1.22e+05

4 5.11e+01 7.75e+02 3.87e+03 1.21e+04 2.96e+04 6.12e+04

6 3.51e+01 5.21e+02 2.59e+03 8.13e+03 1.97e+04 4.09e+04

8 2.73e+01 3.94e+02 1.95e+03 6.11e+03 1.48e+04 3.07e+04

9 2.45e+01 3.52e+02 1.73e+03 5.43e+03 1.32e+04 2.73e+04

10 2.27e+01 3.19e+02 1.57e+03 4.90e+03 1.19e+04 2.46e+04

12 1.94e+01 2.68e+02 1.31e+03 4.09e+03 9.93e+03 2.05e+04

14 1.78e+01 2.34e+02 1.13e+03 3.53e+03 8.54e+03 1.76e+04

16 1.56e+01 2.05e+02 9.94e+02 3.08e+03 7.47e+03 1.54e+04

m 500 1000 1500 2000 2500 3000

97

Page 99: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 4.4: Tiempos de Ejecucion Teoricos de MIII en Kefren

Prc Tiempo estimado en segundos

1 7.46e+01 1.07e+03 5.27e+03 1.64e+04 3.99e+04 8.24e+04

2 5.24e+01 6.38e+02 2.96e+03 8.98e+03 2.14e+04 4.36e+04

4 3.57e+01 3.69e+02 1.62e+03 4.78e+03 1.12e+04 2.27e+04

6 3.33e+01 3.05e+02 1.26e+03 3.59e+03 8.25e+03 1.64e+04

8 3.34e+01 2.82e+02 1.11e+03 3.07e+03 6.90e+03 1.35e+04

9 2.98e+01 2.41e+02 9.41e+02 2.60e+03 5.87e+03 1.15e+04

10 3.43e+01 2.76e+02 1.04e+03 2.81e+03 6.20e+03 1.19e+04

12 2.95e+01 2.23e+02 8.31e+02 2.23e+03 4.92e+03 9.53e+03

14 3.72e+01 2.82e+02 1.01e+03 2.62e+03 5.60e+03 1.05e+04

16 2.86e+01 1.97e+02 7.03e+02 1.83e+03 3.97e+03 7.60e+03

m 500 1000 1500 2000 2500 3000

De acuerdo a las estimaciones presentadas en las tablas anteriores, de los

algoritmos paralelos MI, EP y MIII, se espera que EP sea el mas costoso y MI

el menos costoso cuando se ejecuten las operaciones anteriores al ciclo y una sola

vez las del ciclo. Por otra parte, al trabajar FB con m pequenas y con mFJ del

orden O(m4), los tiempos de ejecucion esperados dependeran de la manipulacion

de estructuras del orden de mFJ , de ahı, por ejemplo, las 17 horas empleadas

en un problema de tamano m = 150.

El siguiente paso es realizar pruebas experimentales de tiempos de ejecucion

de los algoritmos paralelos (que pueden cotejarse con las estimaciones de las

tablas anteriores) para, con base en los resultados arrojados, calcular y analizar

sus prestaciones experimentales.

4.3. Prestaciones Experimentales de los Algorit-

mos Paralelos del PIAVS

Como se especifico en la introduccion, las metricas para analizar y evaluar

los algoritmos paralelos son: el tiempo de ejecucion, speedup, eficiencia y esca-

labilidad. Para entrar en materia, primero se corrobora experimentalmente que

las mejores mallas de procesadores en el cluster Kefren son las cuadradas, como

se ve en las siguientes tablas:

Prc FB (seg) MI (seg)

1× 4 0.87 7.77 39 454

4× 1 1.22 10.2 42 425

2× 2 0.78 7.35 30 372

1× 6 0.84 5.76 109 1246

6× 1 1.23 9.01 117 1247

2× 3 0.69 5.65 66 1029

3× 2 0.87 6.53 69 1059

m = n 25 40 512 1024

98

Page 100: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Prc EP (seg) MIII (seg)

1× 8 32 575 45 578

8× 1 34 626 51 547

2× 4 35 694 37 482

4× 2 31 570 33 466

1× 9 497 539 46 560

9× 1 498 559 53 543

3× 3 493 508 33 417

m = n 512 1024 512 1024

A continuacion se presentan los tiempos de ejecucion de un conjunto de

experimentos del tipo Toep1, con m = n = {1000, 2000, 3000} para MI, EP y

MIII y con m = n = {50, 60, 70, 80, 90, 100} para FB, realizados en el cluster

Kefren con mallas cuadradas. Los tiempos de ejecucion miden una sola iteracion

de los algoritmos (en segundos) y se registran de la Tabla 4.5 a la 4.8, para

los algoritmos FB, MI, EP y MIII. En particular, con FB paralelo se pueden

resolver problemas que secuencialmente no serıa posible, como son los casos

m = n = {80, 90, 100}.

Tabla 4.5: Tiempos de Ejecucion Experimentales de FB

Prc Segundos

1 83 244 609 - - -

2 44 125 309 679 - -

4 26 71 167 359 729 1323

6 18 50 114 244 493 882

8 15 39 90 189 377 674

9 13 36 87 173 336 612

10 13 33 74 154 309 547

12 11 29 68 134 257 468

14 10 26 56 115 228 401

16 9 25 53 106 207 365

m 50 60 70 80 90 100

mFJ 5050 3260 2870 12880 16290 20100

Tabla 4.6: Tiempos de Ejecucion Experimentales de MI

Prc Segundos

1 1026 16147 84410

2 661 8837 42864

4 332 4583 22538

6 250 3323 15707

8 226 2744 12759

9 175 2297 10789

10 227 2488 11039

12 165 1949 8870

14 203 1977 8785

16 140 1537 6885

m 1000 2000 3000

99

Page 101: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 4.7: Tiempos de Ejecucion Experimentales de EP

Prc Segundos

1 3122 50060 249612

2 1651 25029 128532

4 880 12782 64990

6 650 8717 43285

8 458 6644 36787

9 409 5989 32608

10 445 5454 26406

12 320 4729 22176

14 385 3890 20209

16 337 4372 19493

m 1000 2000 3000

Tabla 4.8: Tiempos de Ejecucion Experimentales de MIII

Prc Segundos

1 1181 17124 86131

2 692 9407 43306

4 402 4973 22160

6 351 3586 15813

8 265 2909 12774

9 237 2493 10792

10 265 2747 11059

12 200 2111 8745

14 233 2108 8790

16 169 1686 6882

m 1000 2000 3000

Puede observarse en las tablas anteriores que en todos los casos de todos los

algoritmos hay una reduccion sustancial de los tiempos de ejecucion secuenciales

cuando se utiliza mas de un procesadores, por lo que el paralelismo aplicado

a estos algoritmos altamente costosos del PIAVS cumple con el cometido de

disminuir los costos temporales para resolver el problema. Esta disminucion de

costos se aprecia en las Figuras 4.1, 4.2, 4.3 y 4.4, donde tambien se contrastan

los tiempos de ejecucion experimentales con los estimados teoricamente en la

seccion anterior y se puede observar que los algoritmos se han comportado muy

similarmente a como se estimo.

100

Page 102: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 2 4 6 8 10 12 14 160

10

20

30

40

50

60

70

80

90

100

Procesadores

Tie

mpo

s de

eje

cuci

ón d

e F

B (

segu

ndos

)

ExperimentalTeórico FB, m=50

0 2 4 6 8 10 12 14 160

100

200

300

400

500

600

700

Procesadores

Tie

mpo

s de

eje

cuci

ón d

e F

B (

segu

ndos

)

ExperimentalTeórico FB, m=70

Figura 4.1: Tiempos de ejecucion teoricos vs. experimentales de FB

0 2 4 6 8 10 12 14 160

2000

4000

6000

8000

10000

12000

14000

16000

18000

Procesadores

Tie

mpo

s de

eje

cuci

ón d

e M

I (se

gund

os)

ExperimentalTeórico MI, m=2000

0 2 4 6 8 10 12 14 160

1

2

3

4

5

6

7

8

9x 104

Procesadores

Tiem

pos

de e

jecu

ción

de

MI (

segu

ndos

)

ExperimentalTeórico MI, m=3000

Figura 4.2: Tiempos de ejecucion teoricos vs. experimentales de MI

0 2 4 6 8 10 12 14 160

500

1000

1500

2000

2500

3000

3500

Procesadores

Tie

mpo

s de

eje

cuci

ón d

e E

P (

segu

ndos

)

ExperimentalTeórico EP, m=1000

0 2 4 6 8 10 12 14 160

1

2

3

4

5

6x 104

Procesadores

Tiem

pos

de e

jecu

ción

de

EP

(seg

undo

s)

ExperimentalTeórico EP, m=2000

Figura 4.3: Tiempos de ejecucion teoricos vs. experimentales de EP

101

Page 103: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 2 4 6 8 10 12 14 160

2000

4000

6000

8000

10000

12000

14000

16000

18000

Procesadores

Tie

mpo

s de

eje

cuci

ón d

e M

III (

segu

ndos

)

ExperimentalTeórico MIII, m=2000

0 2 4 6 8 10 12 14 160

1

2

3

4

5

6

7

8

9x 104

Procesadores

Tiem

pos

de e

jecu

ción

de

MIII

(seg

undo

s)

ExperimentalTeórico MIII, m=3000

Figura 4.4: Tiempos de ejecucion teoricos vs. experimentales de MIII

Con estos tiempos de ejecucion experimentales se puede medir el Speedup de

los algoritmos paralelos. Para FB, el Speedup en todos los experimentos es bueno

con 2 y 4 procesadores; con 6 y 8 procesadores el caso m = 70 (mFJ = 9870)

sigue teniendo un Speedup aceptable. El Speedup de MI (Figura 4.5) indica que

las prestaciones son mejores a medida que m se incrementa (m = 3000), sin

embargo, utilizando hasta 4 procesadores se obtienen buenos Speedups en todos

los casos.

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

Procesadores

Spe

edup

de

FB

m=50m=60m=70

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

14

Procesadores

Spe

edup

de

MI

m=1000m=2000m=3000

Figura 4.5: Speedup experimental de FB y MI para m = {1000, 2000, 3000}

Hasta con 8 procesadores el Speedup de EP es bueno para m = 3000 y

aceptable para m = 2000 y m = 1000. Para el caso m = 3000 el Speedup se

mantiene aceptable hasta con 12 procesadores (ver Figura 4.6).

Por ultimo, MIII presenta buenos Speedups con 2 procesadores en todos los

casos. Con 4 procesadores y m = {2000, 3000} el Speedup tambien es bueno y se

mantiene aceptable con 6, 8 y 9 procesadores para m = 3000, como se observa

en la Figura 4.6.

102

Page 104: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

14

Procesadores

Spe

edup

de

EP

m=1000m=2000m=3000

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

14

Procesadores

Spe

edup

de

MIII

m=1000m=2000m=3000

Figura 4.6: Speedup experimental de EP y MIII para m = {1000, 2000, 3000}

Se ha observado que el Speedup disminuye, en la mayorıa de los experimen-

tos, cuando Prc = {10, 14} debido a que ScaLAPACK indica que las mejores

prestaciones se obtienen cuando se trabaja con mallas logicas de procesadores

cuadradas, lo que no es posible construir con 10 ni 14 procesadores (Prc = 2× 5

y Prc = 2× 7 procesadores, respectivamente). Sin embargo, este disminucion es

menor conforme m se incrementa, como es el caso de FB que para m = 70 se

manipulan matrices y vectores de dimension mFJ = 9870.

Una forma equivalente al Speedup para observar las prestaciones de FB, MI,

EP y MIII paralelos es la Eficiencia, con la que se determina el porcentaje de

aprovechamiento de los procesadores que se han utilizado en los experimentos.

Los resultados obtenidos estan en las Tablas 4.9, 4.10, 4.11 y 4.12.

Tabla 4.9: Eficiencia Experimental de FB

Prc Aprovechamiento

1 100 % 100 % 100 %

2 94 % 97 % 98 %

4 79 % 85 % 91 %

6 76 % 81 % 89 %

8 69 % 78 % 84 %

9 70 % 75 % 77 %

10 63 % 73 % 82 %

12 62 % 70 % 74 %

14 59 % 67 % 77 %

16 57 % 61 % 71 %

m 50 60 70

mFJ 5050 7260 9870

103

Page 105: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 4.10: Eficiencia Experimental de MI

Prc Aprovechamiento

1 100 % 100 % 100 %

1× 2 77 % 91 % 98 %

2× 2 77 % 88 % 93 %

2× 3 68 % 80 % 89 %

2× 4 56 % 73 % 82 %

3× 3 65 % 78 % 86 %

2× 5 45 % 64 % 76 %

3× 4 51 % 69 % 79 %

2× 7 36 % 58 % 68 %

4× 4 45 % 65 % 76 %

m 1000 2000 3000

Tabla 4.11: Eficiencia Experimental de EP

Prc Aprovechamiento

1 100 % 100 % 100 %

1× 2 94 % 98 % 97 %

2× 2 88 % 97 % 96 %

2× 3 80 % 95 % 96 %

2× 4 85 % 94 % 84 %

3× 3 84 % 92 % 85 %

2× 5 70 % 91 % 94 %

3× 4 81 % 88 % 93 %

2× 7 57 % 91 % 88 %

4× 4 57 % 71 % 80 %

m 1000 2000 3000

Tabla 4.12: Eficiencia Experimental de MIII

Prc Aprovechamiento

1 100 % 100 % 100 %

1× 2 85 % 91 % 99 %

2× 2 73 % 86 % 97 %

2× 3 56 % 79 % 90 %

2× 4 55 % 73 % 84 %

3× 3 55 % 76 % 88 %

2× 5 44 % 62 % 77 %

3× 4 49 % 67 % 82 %

2× 7 36 % 58 % 69 %

4× 4 43 % 63 % 78 %

m 1000 2000 3000

EP es el algoritmo paralelo que mejor aprovechamiento hace de los proce-

sadores, pues alcanza un 84% con m = 1000 y 9 procesadores; FB tambien

presenta aprovechamientos aceptables, pues alcanza al menos un 80% con 4, 6

104

Page 106: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

y 8 procesadores para los casos m = {50, 60, 70} (mFJ = {5050, 7260, 9870};MI tiene aprovechamientos de procesador aceptables con 6 y 9 procesadores

para los casos m = {2000, 3000}; MIII mejora un poco el comportamiento de

MI, logrando un 85% para m = 1000 pero con 2 procesadores. En todos los

casos las mejores eficiencias se alcanzan con m = 3000 para MI,EP y MIII y

con m = 70 para FB.

Por ultimo, se analiza la escalabilidad de los algoritmos paralelos, es decir, la

capacidad que tienen de mantener sus prestaciones haciendo crecer en la misma

proporcion el numero de procesadores y el tamano del problema. Para analizar

la escalabilidad se calcula el Speedup escalado de los algoritmos. Como el costo

computacional secuencial de FB es O(m6), se han realizado experimentos en

Kefren con los siguientes tamanos de problema: m = {30, 33, 37, 40, 42, 43, 44,

45, 46, 47} correspondientes a Prc = {1, 2, 4, 6, 8, 9, 10, 12, 14, 16}. El costo

computacional secuencial de MI, EP y MIII es O(m4), entonces se han hecho

experimentos en Kefren con los tamanos de problema: m = {1000, 1189, 1414,

1565, 1681, 1732, 1861, 2000} que corresponden con Prc = {1, 2, 4, 6, 8, 9, 12,

16}. Los resultados estan en la Figura 4.7.

0 2 4 6 8 10 12 14 161

2

3

4

5

6

7

8

Procesadores

Spe

edup

Esc

alad

o

FB

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

Procesadores

Spe

edU

p E

scal

ado

MI EP MIII

Figura 4.7: SpeedUp Escalado de los algoritmos paralelos del PIAVS

FB es un algoritmo poco escalable. EP mantiene su escalabilidad muy cerca

de la curva ideal, lo que lo convierte en un algoritmo de muy buena escalabilidad.

MI y MIII tienen un comportamiento similar y escalan aceptablemente bien.

4.4. Conclusiones

Muchas operaciones de los algoritmos FB, MI, EP y MIII han sido direc-

tamente paralelizadas utilizando rutinas eficientes y portables de PBLAS y

ScaLAPACK. Otras operaciones han sido disenadas en este trabajo, cuidando

disminuir en lo posible las comunicaciones de datos entre procesadores y evi-

105

Page 107: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

tando tambien en lo posible que los procesadores quedaran ociosos, de ahı que

en el diseno paralelo se haya decidido la replica de estructuras de datos en los

procesadores.

Teoricamente los algoritmos disminuyen el tiempo de ejecucion secuencial

y tienen buenas prestaciones asintoticas. La disminucion de tiempos de ejecu-

cion se ha podido comprobar experimentalmente en el cluster Kefren: todos los

algoritmos disminuyen sustancialmente los tiempos secuenciales, con lo que se

cumple el objetivo de disminuir costos temporales para resolver el PIAVS; una

muestra de este resultado se da a continuacion (con k = 1):

FB MI EP MIII

1.3 min 23 hrs 2.8 dıas 1 dıa

44 seg 11 hrs 1.4 dıas 12 hrs

26 seg 6.2 hrs 18 hrs 6.1 hrs

18 seg 4.3 hrs 12 hrs 4.4 hrs

15 seg 3.5 hrs 10 hrs 3.6 hrs

13 seg 2.9 hrs 9 hrs 3 hrs

13 seg 3 hrs 7.3 hrs 3.1 hrs

11 seg 2.4 hrs 5.6 hrs 2.4 hrs

10 seg 2.4 hrs 5.6 hrs 2.4 hrs

9 seg 1.9 hrs 5.4 hrs 1.9 hrs

m = 50 m = 3000 m = 3000 m = 3000

Ademas de la disminucion de tiempos de ejecucion, la paralelizacion en el

caso de FB ha permitido tambien aplicar este algoritmo a problemas de tamanos

que secuencialmente no pueden abordarse, como por ejemplo m ≥ 90.

El analisis del Speedup experimental de MI, EP y MIII indica que: todos

ellos tienen buenos Speedup con 2 y 4 procesadores en todos los experimentos y

el que mejores Speedup alcanza es EP hasta con 8 procesadores. FB, en general,

tiene buenos Speedup con 2 procesadores en todos los experimentos, pero es el

algoritmo con mas bajas prestaciones. Los algoritmos alcanzan el mejor Speedup

con los problemas de mayor tamano (m = 3000 para MI, EP y MIII; m = 70

para FB), un par de graficas de los Speedup para m = 70 y m = 3000 son las

siguientes:

106

Page 108: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

Procesadores

Spe

edup

Exp

erim

enta

l

FBm=70mFJ=2870

0 2 4 6 8 10 12 14 160

2

4

6

8

10

12

14

Procesadores

Spe

edup

Exp

erim

enta

l

MI EP MIII m=3000

Con respecto a la eficiencia, EP tiene la mejor y en todos los experimentos

FB, MI, EP y MIII tienen buenas eficiencias con 2 y 4 procesadores. Como

sucede con el Speedup, se obtienen mejores eficiencias cuando el tamano del

problema es grande, por ejemplo, las eficiencias experimentales para m = 70

(mFJ = 2870) y m = 3000 son:

Prc FB MI EP MIII

1 100 % 100 % 100 % 100 %

2 98 % 98 % 97 % 99 %

4 91 % 93 % 96 % 97 %

6 89 % 89 % 96 % 90 %

8 84 % 82 % 84 % 84 %

9 77 % 86 % 85 % 88 %

10 82 % 76 % 94 % 77 %

12 74 % 79 % 93 % 82 %

14 77 % 68 % 88 % 69 %

16 71 % 76 % 80 % 78 %

El algoritmo que mejor escala es EP, como ya se mostro en la Figura 4.7. En

general, MI y MIII escalan suficientemente bien, mientra que FB es el algoritmo

de menor escalabilidad.

En vista del analisis realizado, FB queda en calidad de una aproximacion

sencilla a la resolucion de PIAVS que paraleliza aceptablemente desde el punto

de vista de la disminucion de los tiempos de ejecucion secuenciales, permitiendo

resolver problemas que secuencialmente no podrıa hacerse. Sin embargo, ademas

de ser un algoritmo con importantes costos temporales y espaciales, su version

paralela no presenta muy buenas prestaciones.

MI, EP y MIII paralelos tambien cumplen con su cometido de disminuir

de manera importante los tiempos de ejecucion secuenciales. MI y MIII pre-

sentan comportamientos similares en su paralelizacion y sus prestaciones son

aceptables, pero en este rubro EP es el que presenta las mejores prestaciones,

107

Page 109: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

sin embargo es el que consume mayor tiempo de ejecucion, como se ha podido

observar en las pruebas experimentales presentadas.

Por lo tanto, el algoritmo que mejor equilibra costos temporales y presta-

ciones es MI, mientras que FB es el algoritmo que menos flexibilidad ofrece al

PIAVS.

Todos estos algoritmos se han disenado e implementado considerando que en

el PIAVS intervienen matrices Ai (i = 0, m) no estructuradas. Considerar ma-

trices estructuradas puede repercutir en beneficio de la complejidad de tiempo

de ejecucion de los algoritmos y del requerimiento de almacenamiento, topico

que se estudia en el siguiente capıtulo.

108

Page 110: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 5

Resolucion Paralela del

PIEVS

Como se vio en la introduccion, el Problema Invserso Estructurado de Va-

lores Singulares (PIEVS) puede verse como una particularizacion del PIAVS, al

ser las matrices Ai (i = 0, m) de tipo Toeplitz, lo que da posibilidad de aplicar

directamente cualquiera de los algoritmos estudiados en capıtulos anteriores

(FB, MI, EP, MIII); sin embargo, estos algoritmos no toman ventaja de la

estructura de las matrices tipo Toeplitz. Por lo tanto, el objetivo de este capıtulo

es disenar e implementar algoritmos que tomen ventaja de la estructura de las

matrices del PIEVS para construir algoritmos eficientes que lo resuelvan.

Los algoritmos desarrollados para la resolucion eficiente del PIEVS son los

algoritmos MI y EP redisenados y adaptados para explotar la estructura Toeplitz

de las matrices. MI y EP son dos metodos de caractersiticas complementarias:

MI de rapida convergencia local a una aproximacion de alta exactitud y EP de

lenta convergencia global a una aproximacion de mediana exactitud; MI paralelo

de medianas prestaciones y EP paralelo de buenas prestaciones.

Para alcanzar el objetivo de este capıtulo, en primera instancia (Seccion 5.1)

se hace un recordatorio del PIEVS y de los algoritmos MI y EP, aplicandolos

tal y como se han disenado e implementado para el PIAVS a la resolucion de

algunos PIEVS experimentales. Los resultados de estos experimentos serviran

para contrastar los resultados obtenidos con MI y EP adaptados al PIEVS.

En la Seccion 5.2 se disenan e implementan MIE (MI Estructurado, MI

adaptado el PIEVS) y EPE (EP Estructurado, EP adaptado al PIEVS) para

el PIEVS, especificando las estructuras de datos utilizadas para representar las

matrices Toeplitz. Se hace un analisis de como se lleva a cabo la adaptacion de

los algoritmos y la forma en que se logran disminuir los tiempos de ejecucion

a traves del uso de la FFT [VL92] en operaciones medulares de los metodos

(operaciones matriz Hankel-vector). Este tipo de operaciones aparecen al dejar

109

Page 111: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

de lado el uso de la rutina dgesvd de LAPACK (y pdgesvd de ScaLAPACK) para

calcula la svd de una matriz general y en su lugar disenar una rutina eficiente

que calcule la svd de una matriz tipo Hankel, matriz que resulta de transformar

una matriz tipo Toeplitz.

La paralelizacion de MIE y EPE se desarrolla en la Seccion 5.3, donde se

presenta el cuidado que se tiene en asegurar que los procesadores se mantengan

ociosos el mınimo de tiempo posible. En la Seccion 5.4 se estima la complejidad

de tiempo de MIE paralelo y EP paralelo y se presenta un conjunto de experi-

mentos para analizar sus prestaciones. Los experimentos se han realizado en el

cluster Kefren sobre casos Toep2.

5.1. Resoluciones Generales del PIEVS

En la introduccion se ha definido el PIEVS como sigue: dado el conjunto de

valores reales S∗ = {S∗1 , S∗

2 , ..., S∗n}, donde S∗

1 > S∗2 > ... > S∗

n > 0, se requiere

construir una matriz tipo Toeplitz T con valores singulares S∗, es decir:

T =

t0 t−1 t−2 ... t−(n−1)

t1 t0 t−1 ... t−(n−2)

t2 t1 t0 ... t−(n−3)

......

.... . .

...

t(n−1) t(n−2) t(n−3) ... t0

= Udiag(S∗)V t. (5.1)

Utilizando la siguiente notacion simplificada para representar una matriz

tipo Toeplitz:

toep(primer vector columna de T, primer vector renglon de T ),

la matriz Toeplitz de la ecuacion (5.1) se puede representar como:

T = toep([

t0, t1, ..., t(n−2), t(n−1)

],[t0, t−1, ..., t−(n−2), t−(n−1)

])

De acuerdo a los valores de las 2n − 1 incognitas t0, t1, ..., tn−1, t−1, t−2,

..., t−(n−1), T puede ser: simetrica, triangular inferior o no simetrica. El caso

simetrico ha sido estudiado en [Tre97] y [BV99]. Este trabajo, por lo tanto, se

enfoca en la resolucion de los casos triangular inferior (PIEVSti) y no simetrico

(PIEVSns).

En el caso PIEVSti, la matriz Toeplitz T es:

T =

t0 0 0 ... 0

t1 t0 0 ... 0

t2 t1 t0 ... 0...

......

. . ....

t(n−1) t(n−2) t(n−3) ... t0

(5.2)

110

Page 112: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

es decir

T = toep([

t0, t1, t2, ..., t(n−1)

], [t0, 0, 0, ..., 0]

),

que puede expresarse como:

T = t0In + t1

0 0 ... 0 0

1 0 ... 0 0

0 1 ... 0 0

...... 1

. . ....

0 0 ... 1 0

+ t2

0 0 0 ... 0

0 0 0 ... 0

1 0 0 ... 0

... 1...

. . ....

0 0 1 ... 0

+ ...

... + tn−2

0 0 0 ... 0

0 0 0 ... 0

0 0 0 ... 0

1...

.... . .

...

0 1 0 ... 0

+ tn−1

0 0 0 ... 0

0 0 0 ... 0

0 0 0 ... 0

......

.... . .

...

1 0 0 ... 0

,

si se etiqueta cada matriz Toeplitz de la ecuacion anterior, el PIEVSti toma la

siguiente estructura

T = t0G0 + t1G1 + t2G2 + ... + t(n−2)Gn−2 + t(n−1)Gn−1

que coincide con la estructura del PIAVS cuando

c = [c1, c2, c3, ..., cn]t = [t0, t1, t2, t3, ..., tn−1]t

y

A0 = 0, A1 = G0, A2 = G1, A3 = G2, ..., An = G(n−1).

En el caso PIEVSns, (5.1) puede expresarse como:

1

t0T =

1 t−1/t0 t−2/t0 ... t−(n−1)/t0

t1/t0 1 t−1/t0 ... t−3/t0

t2/t0 t1/t0 1 ... t−2/t0...

......

. . ....

t(n−1)/t0 t(n−2)/t0 t(n−3)/t0 ... 1

= U1

t0diag(S∗)V t,

y puede reescribirse como:

T =

1 t−1 t−2 ... t−(n− 1)

t1 1 t−1. . . t−(n−2)

t2 t1 1. . . t−(n−3)

......

.... . .

...

tn−1 tn−2 tn−3 ... 1

= Udiag(S∗)V t,

donde

ti =tit0

, para i = −(n− 1),−(n− 2), ..., 1, 2, ..., n− 2, n− 1

111

Page 113: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

y

S∗i =

S∗i

t0, para i = 1, n.

T en notacion simplificada queda como

T = toep([

1, t1, t2, ..., tn−12

, tn−12 +1, ..., tn−2, tn−1

]

,[

1, t−1, t−2, ..., t−(n−12 +1), t−(n−1

2 +2), ..., t−(n−2), t−(n−1)

])

, (5.3)

que tambien puede expresarse como

T = toep ([1, 0, 0, ..., 0, 0, ..., 0, 0] , [1, 0, 0, ..., 0, 0, ..., 0, 0]) +

+ t1toep ([0, 1, 0, ..., 0, 0, ..., 0, 0] , 0n) + t2toep ([0, 0, 1, ..., 0, 0, ..., 0, 0] , 0n) +

+ ... + tn−1toep ([0, 0, 0, ..., 0, 0, ..., 0, 1] , 0n) +

+ t−1toep (0n, [0, 1, 0, ..., 0, 0, ..., 0, 0]) + t−2toep (0n, [0, 0, 1, ..., 0, 0, ..., 0, 0]) +

+ ... + t−(n−1)toep (0n, [0, 0, 0, ..., 0, 0, ..., 0, 1]) , (5.4)

donde 0n es un vector de n ceros. En la ecuacion (5.4) se pueden identificar:

2n− 2 parametros ti (i = −(n− 1),−(n− 2), ..., 1, 2, ..., n− 1)

2n− 1 matrices tipo Toeplitz, donde

n× n es la dimension de cada matriz

y para poder expresarla como un PIAVS, sera necesario manejar:

n parametros ci (i = 1, 2, ..., n)

n + 1 matrices Ai (i = 0, 1, ..., n), donde

n× n es la dimension de cada matriz

Como la cantidad de parametros ti es mayor que la de ci (por consiguiente, la

cantidad de matrices tipo Toeplitz es mayor que la cantidad de matrices Ai),

se pueden asignar valores cualesquiera a n− 2 parametros ti. Por ejemplo, si se

asignan valores ai (i = 1, n− 2) a los siguientes parametros:

tn−12 +1, tn−1

2 +2, ..., tn−1, t−( n−12 +2), ..., t−(n−2), t−(n−1),

⇓ ⇓ ... ⇓ ⇓ ... ⇓ ⇓a1, a2, ..., an−1

2, an−1

2 +1, ..., an−3, an−2,

(5.3) queda como:

T = toep([

1, t1, t2, ..., tn−12

, a1, ..., an−12 −1, an−1

2

]

,[

1, t−1, t−2, ..., t−(n−12 +1), an−1

2 +1, ..., an−3, an−2

])

, (5.5)

112

Page 114: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

es decir,

T = toep([

1, 0, 0, ..., 0, a1, ..., an−12 −1, an−1

2,]

,[

1, 0, 0, ..., 0, a n−12 +1, ..., an−3, an−2

])

+

+ t1toep ([0, 1, 0, ..., 0, 0, ..., 0, 0] , 0n) + t2toep ([0, 0, 1, ..., 0, 0, ..., 0, 0] , 0n) + ...+

+ tn−12

toep ([0, 0, 0, ..., 1, 0, ..., 0, 0] , 0n) + t−1toep (0n, [0, 1, 0, ..., 0, 0, ..., 0, 0]) +

+t−2toep (0n, [0, 0, 1, ..., 0, 0, ..., 0, 0])+...+t−(n−12 +1)toep (0n, [0, 0, 0, ..., 1, 0, ..., 0, 0]) .

Etiquetando cada matriz Toeplitz de la ecuacion anterior con Fi (i = 0, n):

T = F0 + t1F1 + t2F2 + ... + t(n−12 )Fn−1

2+ t−1Fn−1

2 +1 + ... + t−( n−12 +1)Fn

es claro ver que se tienen n parametros ti y n + 1 matrices tipo Toeplitz, de

tamano n× n, que coincide con el PIAVS cuando

c = [c1, c2, ..., cn−12

, cn−12 +1, ..., cn]t = [t1, t2, tn−1

2, t−1, ..., t−( n−1

2 +1)]t

y

A0 = F0, A1 = F1, A2 = F2, ..., An−12

= Fn−12

, ..., An = F−( n−12 ).

Por lo tanto, se ha mostrado que el PIEVS puede expresarse como un PI-

AVS, por lo que se pueden utilizar, entre otros, los algoritmos MI y LP para

resolverlo. En capıtulos anteriores, estos algoritmos se han definido como:

Algoritmo MI

1. Calcular A = A0 +∑

i=1 ciAi

2. Calcular [U, diag(S), V ] = svd(A)

3. Para k=1,2,...Mientras ‖S − S∗‖2 > tol

a. Calcular J = [uiAjvti ]i,j=1,n

b. Calcular b = [uiA0vti − S∗

i ]i=i,n

c. Resolver Jc = b

d. Calcular A = A0 +∑n

i=1 ciAi

e. Calcular [U, diag(S), V ] = svd(A)

Algoritmo EP

1. Calcular Atr = [tr(Ati ∗Aj)]i,j=1,n

2. Para k=1,2,...Mientras ‖S − S∗‖2 > tol

a. Calcular A = A0 +∑n

i=1 ciAi

b. Calcular [U, diag(S), V ] = svd(A)

c. Calcular btr = [tr(Ati(Udiag(S∗)V t −A0))]i=1,n

d. cvieja = c

d. Resolver Atrc = btr

Hasta ‖c− cvieja‖2 < tol

113

Page 115: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

y la complejidad de tiempo para un problema de tamano n de los pasos que los

conforman se han estimado como:

TA(n) = 2n3tf

TJ(n) = (2n4 + O(n3))tf

Tb(n) = (2n3 + O(n2))tf

TAtr(n) = (n4 + O(n3))tf

Tbtr(n) = (4n3 + O(n2))tf

Tsvd(n) = 383 n3tf

TresolucionDeSistema(n) =(

23n3 + O(n2)

)tf

Algunos experimentos realizados para resolver el PIEVS con estos metodos

arrojan los resultados de la Tabla 5.1.

Tabla 5.1: Tiempos de ejecucion experimentales de MI y EP para el PIEVS

MI LP

n Iter ‖S − S∗‖2 Segundos Iter ‖S − S∗‖2 Segundos

20 3 8e-7 0.01 4867 1e-3 2.9

30 6 7e-7 0.03 1570 1e-3 2.3

39 4 2e-6 0.04 453 3e-4 1.4

40 3 5e-8 0.04 211 2e-4 0.69

50 4 3e-10 0.10 230 2e-4 1.3

60 – — — 77521 3e-2 691

90 7 6e-9 1.44 508 9e-4 15

100 5 1e-7 1.55 425 3e-4 17

150 4 3e-6 6.17 215 2e-4 36

200 3 8e-9 17.7 49 3e-4 35

250 4 2e-6 69 113 3e-4 173

300 3 6e-9 124 161 8e-4 454

350 – — — 55 4e-4 324

400 4 1e-7 532 267 7e-4 1893

450 – — — 58 3e-4 792

500 2 1e-6 644 56 2e-4 1199

Como es sabido (y ası se ve en la Tabla 5.1), la ventaja de MI es que re-

quiere pocas iteraciones para converger, siempre que se parta de un punto ini-

cial suficientemente cercano a la solucion (condicion que no se cumple para

n = {60, 350, 450}), mientras que LP siempre llega a una solucion, indepen-

dientemente del punto de partida, aunque debe realizar un numero elevado de

iteraciones para hacerlo. Se hace notar tambien otro hecho conocido con respecto

a la exactitud de MI que es de mejor calidad que la de EP.

Habiendo recordado MI y EP, en la siguiente seccion se desarrollan estos de

forma que tomen ventaja de la estructura de las matrices Toeplitz del PIEVS.

114

Page 116: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

5.2. Propuestas de Resoluciones Especıficas del

PIEVS

Con el objeto de resolver eficientemente el PIEVS, se ha adaptado el calculo

de A, J , b, Atr, btr y svd de los algoritmos MI y EP para manejar matrices

tipo Toeplitz, las cuales se representan como se especifica a continuacion. Una

matriz tipo Toeplitz de tamano n × n se representa con un vector de tamano

2n− 1, en este vector se almacena el primer renglon de la matriz tipo Toeplitz

(desde el ultimo hasta el primer componente), seguido de la primera columna,

como en el siguiente diagrama:

Matriz Toeplitz General Representacion Vectorial

t0 t−1 t−2 t−3 ... t−(n−1)

t1 t0 t−1 t−2 ... t−(n−2)

t2 t1 t0 t−1 ... t−(n−3)

t3 t2 t1 t0 ... t−(n−4)

.

.....

.

.....

. . ....

t(n−1) t(n−2) t(n−3) t(n− 4) ... t0

2− n t−(n−1)

..

....

−2 t−3

−1 t−2

0 t−1

1 t0

2 t1

3 t2

4 t3...

...

n t(n−1)

Para representar una matriz tipo Toeplitz de la forma Ai, como en el siguien-

te diagrama, de tamano n× n, se utiliza una estructura de ındices (RENS) en

cuya entrada i se almacena el numero de renglon donde Ai tiene un 1 (renglon

3):

Matriz Toeplitz Especıfica RENS (Representacion vectorial)

Ai =

0 0 0 0 ... 0

0 0 0 0 ... 0

1 0 0 0 ... 0

0 1 0 0 ... 0

......

......

. . ....

0 0 0 1 ... 0

0

0

...

i 3

.

..

j 0

...

0

Analogamente a la matriz Ai, para una matriz tipo Toeplitz como la Aj

siguiente, se almacena en el componente j del vector de ındices COLS el numero

de columna donde Aj tiene un 1 (columna 2):

115

Page 117: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Matriz Toeplitz Especıfica COLS (Representacion vectorial)

Aj =

0 1 0 0 ... 0

0 0 1 0 ... 0

0 0 0 1 ... 0

0 0 0 0 ... 0

......

......

. . . 1

0 0 0 0 ... 0

0

0

.

..

i 0

..

.

j 2

...

0

El almacenamiento de los datos requeridos para la resolucion del PIEVS

es drasticamente menor al requerido para la resolucion del PIAVS, basta con

estimar el monto de memoria requerido para almacenar Ai (i = 1, n) en ambos

problemas, como en la siguiente tabla:

PIAVS PIEVS

A0 1 matriz de tamano 1 vector de tamano

n× n 2n− 1

A1,2,...,n n matrices de tamano 2 vectores de ındices

n× n de tamano n

Total dobles n3 + 2n2 4n− 4

Total enteros 2n

El producto de una matriz como Ai o Aj por un vector v consiste solamente

en el corrimiento de los elementos del vector, por lo que esta operacion no tiene

costo de operaciones en punto flotante; por ejemplo, con las matrices Ai y Aj

anteriores se tiene que:

Aiv = Ai

v1

v2

v3

.

..

vn−1

vn

=

0

0

v1

.

..

vn−3

vn−2

; Ajv = Aj

v1

v2

v3

.

..

vn−1

vn−2

=

v2

v3

v4

.

..

vn

0

Bajo estas condiciones, calcular A = A0 +∑n

i=1 ciAi consiste en sustituir

las sumas y multiplicaciones involucradas originalmente por asignaciones de ci

en A, como se hace en el Algoritmo 40.

116

Page 118: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 40 CalculaAestucturado

1. A← dcopy(2 ∗ n− 1, A0)

2. j ← 1

3. Para i = 1, n

3.1. Si RENSi 6= 0 entonces

ARENSi← cj

j ← j + 1

4. Si j ≤ n entonces

4.1. Para i = 1, n

4.1.1. Si COLSi 6= 0 entonces

A2−COLSi← cj

j ← j + 1

Por otra parte, como A es una matriz tipo Toeplitz, se puede transformar

en una matriz tipo Hankel, H , permutando sus columnas con una matriz de

permutacion R de la forma:

R =

1

1

1

. ..

1

es decir, H = AR ⇒ A = HRt. Partiendo de este hecho, para calcular la

descomposicion en valores singulares de A, se obtiene la descomposicion en

valores propios de H (aprovechando que H es tipo Hankel y, por lo tanto,

simetrica):

H = Qdiag(L)Qt,

donde Q es ortogonal, L = {L1, L2, ..., Ln} es un conjunto de reales, con |L1| ≥|L2| ≥ ... ≥ |Ln|. Si se expresa diag(L) como

diag(L) = signos(diag(L))|diag(L)| = G|diag(L)|,

con

G = signos(diag(L)) =

signo(L1)

signo(L2)

. . .

signo(Ln)

y

|diag(L)| =

|L1||L2|

. . .

|Ln|

,

117

Page 119: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

entonces A = HRt queda como

A = QG|diag(L)|QtRt = Udiag(S)V t,

con U = QG, diag(S) = |diag(L)| y V = RQ. Una forma de obtener H =

Qdiag(L)Qt es tridiagonalizando H :

H = QTQt,

donde Q es ortogonal y T es la tridiagonal

T =

a1 b2

b2 a2 b3

b3 a3 b4

. . .. . .

. . .

bn−1 an−1 bn

bn an

;

y despues calculando la descomposicion en valores propios de T :

H = QPLP tQt,

de donde se define Q = QP . Con esto, los vectores U y V de la ecuacion (5.2), que

representan los vectores singulares izquierdos y derechos de A, respectivamente,

quedan definidos como:

U = QPG(diag(L)) (5.6)

y

V = RQP. (5.7)

Por lo tanto, calculando L, P , Q y G, se obtiene la descomposicion en valores

singulares de A. Estas operaciones minimizan los costos temporales de calculo

porque la tridiagonalizacion de una matriz tipo Hankel involucra operaciones

MatrizHankel−vector, que pueden calcularse eficientemente utilizando la FFT,

por lo que el tiempo teorico de ejecucion de la tridiagonalizacion mas el de la des-

composicion en valores propios de una matriz tridiagonal es de n2log2n+O(n2),

que es menor que el orden O(n3) de la descomposicion en valores singulares de

una matriz densa.

Se identifican, entonces, dos pasos fundamentales para la descomposicion en

valores singulares (svd) de una matriz tipo Toeplitz:

Paso 1. Tridiagonalizacion ortogonal de una matriz tipo Hankel

Paso 2. Descomposicion en valores propios de una matriz tridiagonal,

El Paso 1 tiene dos posibles implementaciones: la primera utilizando la

FFT [GvL96] (como en el algoritmo Tridiag1) y la segunda utilizando ruti-

nas de librerıas numericas, como dsytrd que tridiagonaliza una matriz y dorgtr

118

Page 120: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

que construye la matriz de transformacion Q, ambas de LAPACK (como en

el algoritmo Tridiag2). Estas implementaciones, que utilizan los vectores a y b

para representar la diagonal y subdiagonal de la matriz tridiagonal T , respecti-

vamente, son:

Algoritmo Tridiag1

1. Inicializa q1

2. Para j=1,m

a. r ← FFT (H, qj)

b. aj ← productoEscalar(qj , r)

c. r ← r − ajqj − bj−1qj−1

d. r ← reortogonaliza(r, Q)

e. bj ← norma2(r)

f. qj+1 ← r/bj

Algoritmo Tridiag2

1. [a, b, Tau, ReflecHouse]← dsytrd(H)

2. Q← dorgtr(ReflecHouse, Tau)

Algunos ejemplos del comportamiento temporal de ambas implementaciones

se dan enseguida:

n svd con Tridiag1 svd con Tridiag2

250 0.13 0.16

500 0.59 1.01

1000 2.83 6.47

1500 7.59 20.1

2000 15.3 47.3

Tiempo(Seg)

con los tiempos de ejecucion de estos experimentos se confirma que la svd de

una matriz Hankel es mas eficiente cuando se utiliza Tridiag1.

Ahora bien, el calculo de J y b del algoritmo MI involucra a los vectores

singulares de A definidos como en (5.6) y (5.7) y, por lo tanto, involucra las

siguientes operaciones:

Ji,j = uiAjvti = (QPiGii) Aj (RQPi) =

= Q Pi︸ ︷︷ ︸

producto matriz-vector

Gii

︸ ︷︷ ︸

escalamiento de vector

Aj R Q Pi︸ ︷︷ ︸

producto matriz-vector︸ ︷︷ ︸

permutacion de renglones de vector︸ ︷︷ ︸

corrimiento de elementos de vector︸ ︷︷ ︸

producto escalar

119

Page 121: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

bi = uiA0vti − S∗

i = (QPiGii) A0 (RQPi)− S∗i =

= Q Pi︸ ︷︷ ︸

producto matriz-vector

Gii

︸ ︷︷ ︸

escalamiento de vector

A0 R Q Pi︸ ︷︷ ︸

producto matriz-vector︸ ︷︷ ︸

permutacion de renglones de vector︸ ︷︷ ︸

multiplicacion FFT︸ ︷︷ ︸

producto escalar

−S∗i

cuyas complejidades de tiempo son

TJ(n) = 2n3 + O(n2)

y

Tb(n) = 2n3 + n2log2n + O(n2),

respectivamente. La complejidad de tiempo de J es menor que 2n4 + O(n3)

y la complejidad de tiempo de b es del mismo orden que 4n3 + O(n2), las

complejidades de tiempo del calculo de J y b con matrices no estructuradas,

respectivamente (como se vio en el Capıtulo 3).

Por otra parte, en el PIEVS la matriz Atr del algoritmo EP es una matriz

diagonal cuyos elementos son:

Atri,i =

{

n−RENSi + 1 si RENSi 6= 0

n− COLSi + 1 si COLSi 6= 0

Como los componentes del vector btr del algoritmo EP son

btri = tr(Ati(Udiag(S∗)V t −A0)) = tr(At

iX),

entonces X = Udiag(S∗)V t − A0 se calcula una sola vez. Las operaciones para

calcular X tambien utilizan los vectores singulares de A definidos en (5.6) y 5.7,

estas son:

X = Udiag(S∗)V t −A0 = (QPG)diag(S∗)(QPR)t −A0 =

QP︸︷︷︸

producto matriz-matriz

G

︸ ︷︷ ︸

escalamiento de columnas

diag(S∗)

︸ ︷︷ ︸

escalamiento de columnas

( QP︸︷︷︸

producto matriz-matriz

R)t

︸ ︷︷ ︸

permutacion de columnas

︸ ︷︷ ︸

producto matriz-matriz

−A0

︸ ︷︷ ︸

suma matriz-matriz

y su complejidad de tiempo es 6n3 +O(n2). Habiendo calculado X el calculo de

btr se reduce a seleccionar elementos de X :

120

Page 122: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

btri = tr(Ati X) =

n∑

j=1

AijXt

j︸ ︷︷ ︸

seleccion de un elemento del vectorXj

por lo que su complejidad de tiempo es 6n3+O(n2). En este caso no se involucran

matrices Toeplitz de las que se pueda tomar ventaja para minimizar los costos

del calculo de btr.

Con estas nuevas rutinas se pueden construir los algoritmos MIE (MI Es-

tructurado) y EPE (EP Estructurado) que resuelven el PIEVS eficientemente

y con un tiempo de ejecucion drasticamente menor al conseguido con MI y EP

aplicados al PIEVS, ya que el orden de complejidad de cada algoritmo es:

T (n)

MI (44/3)n3 + O(n) + k{2n4 + O(n3)}MIE log2n n2 + O(n2) + k{(20/3)n3 + 2log2n n2 + O(n2)}EP n4 + O(n3) + k{(46/3)n3 + O(n2)}EPE n + k{6n3 + log2n n2 + O(n2)}

es decir, MIE es de un orden menor que MI y EPE es dos ordenes menor que

EP en la operacion mas costosa localizada antes del ciclo (el calculo de Atr) y

la constante 46/3 de n3 de EP se reduce a 6 en EPE. La reduccion del orden

de complejidad se puede comprobar experimentalmente, algunos resultados de

pruebas realizadas en el cluster Kefren se muestra en la Tabla 5.2, que corres-

ponden a los mismos casos de la Tabla 5.1.

Tabla 5.2: Tiempos de ejecucion experimentales de MIE y EPE para el PIEVS

MIE EPE

n iter ‖S − S∗‖2 seg iter ‖S − S∗‖2 seg

20 3 8e-7 0.01 4867 1e-3 1.85

30 6 7e-7 0.01 1570 1e-3 1.48

40 3 5e-8 0.03 211 2-4 0.42

50 4 3e-10 0.03 230 2-4 0.79

90 7 6e-9 0.18 508 9-4 8.22

100 5 1e-7 0.19 425 3-4 9.01

150 4 3e-6 0.45 215 2-4 14.5

200 3 8e-9 0.76 49 3-4 7.73

250 4 2e-6 1.93 113 3-4 40

300 3 6e-9 2.84 161 8-4 107

400 4 1e-7 8.6 267 7-4 494

500 2 1e-6 9.48 56 2-4 183

El contraste de tiempos de ejecucion para estos experimentos entre MI y

MIE, y entre EP y EPE se ilustra en la Figura 5.1.

121

Page 123: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 50 100 150 200 250 300 350 400 450 5000

100

200

300

400

500

600

700

m

Tie

mpo

Exp

erim

enta

l (se

gund

os)

MI MIE

0 50 100 150 200 250 300 350 400 450 5000

200

400

600

800

1000

1200

1400

1600

1800

2000

m

Tie

mpo

Exp

erim

enta

l (se

gund

os)

EP EPE

Figura 5.1: Tiempos de ejecucion experimentales con algoritmos PIAVS vs PIEVS sobre los

mismos casis de prueba

Por lo tanto, se ha disenado e implementado MIE y EPE, un par de algorit-

mos eficientes que resuelven el PIEVS y cuyas complejidades de tiempo son de

un orden menor al ofrecido por MI y EP. En la siguiente seccion se plantean las

versiones paralelas de MIE y EPE con el fin de reducir aun mas los tiempos de

122

Page 124: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

ejecucion y poder resolver el PIEVS para n de mayor tamano.

5.3. Paralelizacion de Resoluciones Especıficas

del PIEVS

El kernel de MIE y EPE es la descomposicion en valores singulares (svd) de

una matriz tipo Hankel, ya que sus valores y vectores singulares se utilizan en

el calculo de J , b y btr; por lo tanto, la paralelizacion de MIE y EPE depende

de la paralelizacion de la svd.

Para paralelizar la svd se trata de aprovechar los bajos costos de la FFT

(operacion secuencial) y se trata de distribuir la carga de calculo entre los proce-

sadores, de modo que queden ociosos el menor tiempo posible.

Despues de haber probado varios disenos para paralelizar la svd de la matriz

Toeplitz A, teniendo en cuenta que el resultado de este calculo deje replicados los

valores singulares y distribuidos los vectores singulares de A en los procesadores,

se opto por el siguiente (el mas eficiente):

Suponer que se tiene una malla de Prc = Pr ×Pc procesadores. Cada proce-

sador aplica el algoritmo Tridiag1 para reducir la matriz Hankel RA a una

tridiagonal T :

RA = QTQt = Q

a1 b2

b2 a2 b3

b3 a3 b4

. . .. . .

. . .

bn−1 an−1 bn

bn an

Qt,

con esto los vectores a (diagonal de T ) y b (subdiagonal de T ) y la matriz

Q quedan replicados en los procesadores y listos para calcular en paralelo los

valores y vectores propios de T :

T = Pdiag(L)P t = P |diag(L)|GP t = Pdiag(S)GP t

Para calcular los valores propios de T se hace uso nuevamente de las estruc-

turas de datos longi, low y up para que cada procesador se encargue de calcular

un subconjunto de valores propios. Por ejemplo, si Prc = 2×2 y n = 9, entonces

Pr,Pc Procesador longi low up Valores propios calculados

0,0 0 3 1 3 {L1, L2, L3}0,1 1 2 4 5 {L4, L5}1,0 2 2 6 7 {L6, L7}1,1 3 2 8 9 {L8, L9}

123

Page 125: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Despues los valores propios se replican y se ordenan decrecientemente de

acuerdo a su valor absoluto (como se espera tener los valores singulares de A).

Por ejemplo, suponer que en el caso Prc = 2 × 2 y n = 9 los valores propios

quedan replicados en el siguiente orden:

|L5| > |L3| > |L1| > |L8| > |L2| > |L7| > |L4| > |L9| > |L6| =

= S1 > S2 > S3 > S4 > S5 > S6 > S7 > S8 > S9.

El siguiente paso es calcular los vectores propios de T . Este calculo debe

distribuirse a conveniencia para facilitar los futuros calculos de J , b y btr. Para

el caso de J (y analogamente para b):

Jik = utiAkvi = (RQPi)

tAk(QPiSgni)

cada renglon i de J requiere el i-esimo vector propio de T . Entonces, en el

ejemplo de Prc = 2 × 2 y n = 9, si el tamano de bloque es 2, J se encuentra

distribuida de acuerdo a ScaLAPACK como:

Procesador0,0 Procesador0,1

J11 J12 J15 J16 J19 J13 J14 J17 J18

J21 J22 J25 J26 J29 J23 J24 J27 J28

J51 J52 J55 J56 J59 J53 J54 J57 J58

J61 J62 J65 J66 J69 J63 J64 J67 J68

J91 J92 J95 J96 J99 J93 J94 J97 J98

Procesador1,0 Procesador1,1

J31 J32 J35 J36 J39 J33 J34 J37 J38

J41 J42 J45 J46 J49 J43 J44 J47 J48

J71 J72 J75 J76 J79 J73 J74 J77 J78

J81 J82 J85 J86 J89 J83 J84 J87 J88

por lo que cada procesador requiere de los siguientes subconjuntos de vectores

propios:

Procesador0,0 Procesador0,1

PS1PS2

PS5PS6

PS9PS1

PS2PS5

PS6PS9

PL5PL3

PL2PL7

PL6PL5

PL3PL2

PL7PL6

Procesador1,0 Procesador1,1

PS3PS4

PS7PS8

PS3PS4

PS7PS8

PL1PL8

PL4PL9

PL1PL8

PL4PL9

124

Page 126: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

cuya distribucion corresponde a una cıclica por renglones de procesadores. Por

lo tanto, los pasos para calcular los valores y vectores propios de T estan en el

Algoritmo 41, estos se esquematizan para el ejemplo Prc = 2× 2 y n = 9 como

sigue:

paso Procesador0,0 Procesador0,1

1 L = [L1, L2, L3,−,−,−,−,−,−] L = [−,−,−, L4, L5,−,−,−,−]

2 L = [L1, L2, L3, L4, L5, L6, L7, L8, L9] L = [L1, L2, L3, L4, L5, L6, L7, L8, L9]

3 S = [L5, L3, L1, L8, L2, L7, L4, L9, L6] S = [L5, L3, L1, L8, L2, L7, L4, L9, L6]

4 P = [P5, P3, P2, P7, P6] P = [P5, P3, P2, P7, P6]

5 G = [sig(L5), sig(L3), sig(L2), sig(L7), sig(L6)] G = [sig(L5), sig(L3), sig(L2), sig(L7), sig(L6)]

6 S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6] S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6]

S = [S1, S2, S3, S4, S5, S6, S7, S8, S9] S = [S1, S2, S3, S4, S5, S6, S7, S8, S9]

paso Procesador1,0 Procesador1,1

1 L = [−,−,−,−,−, L6, L7,−,−] L = [−,−,−,−,−,−,−, L8, L9]

2 L = [L1, L2, L3, L4, L5, L6, L7, L8, L9] L = [L1, L2, L3, L4, L5, L6, L7, L8, L9]

3 S = [L5, L3, L1, L8, L2, L7, L4, L9, L6] S = [L5, L3, L1, L8, L2, L7, L4, L9, L6]

4 P = [P1, P8, P4, P9] P = [P1, P8, P4, P9]

5 G = [sig(L1), sig(L8), sig(L4), sig(L9)] G = [sig(L1), sig(L8), sig(L4), sig(L9)]

6 S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6] S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6]

S = [S1, S2, S3, S4, S5, S6, S7, S8, S9] S = [S1, S2, S3, S4, S5, S6, S7, S8, S9]

Notar en el esquema anterior (y en el Algoritmo 41) que el paso 1 es una ope-

racion paralela distribuida entre todos los procesadores de la malla, y los pasos

4 y 5 son operaciones distribuidas entre renglones de procesadores.

Algoritmo 41 ParaleloCalculaEigJb

1. Llow:up ← dstebz(longi, a, b)

2. L← Replicar(L) /* Dispersion Todos a Todos */

3. S ← OrdenarPorValorAbsoluto(L)

4. P:,1:n/Pr← dstein(n/Pc, S1:n/Pr

, a, b)

5. Sgn← sig(S)

6. S ← abs(S)

Para el caso btr:

btri = tr(AtiX), (i = 1, n) (5.8)

donde

X = Udiag(S∗)V t −A0 = QPGdiag(S∗)(RQP )t −A0 (5.9)

la idea es distribuir el calculo de la multiplicacion matriz-matriz QP entre todos

los procesadores, haciendo uso de longi, low y up; para el ejemplo Prc = 2× 2

y n = 9 la distribucion serıa la siguiente:

125

Page 127: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Procesador0,0 Procesador0,1

QP:,1:3 = U:,1:3 QP:,4:5 = U:,4:5

Procesador1,0 Procesador1,1

QP:,6:7 = U:,6:7 QP:,8:9 = U:,8:9

por lo que cada procesador requiere de los siguientes subconjuntos de vectores

propios de T :

Procesador0,0 Procesador0,1

PS1PS2

PS3PS4

PS5

PL5PL3

PL1PL8

PL2

Procesador1,0 Procesador1,1

PS6PS7

PS8PS9

PL7PL4

PL9PL6

En este caso, para calcular los valores y vectores propios de T se tiene el Algo-

ritmo 42, cuyo esquema para el ejemplo Prc = 2× 2 y n = 9 es:

paso Procesador0,0 Procesador0,1

1 L = [L1, L2, L3,−,−,−,−,−,−] L = [−,−,−, L4, L5,−,−,−,−]

2 L = [L1, L2, L3, L4, L5, L6, L7, L8, L9] L = [L1, L2, L3, L4, L5, L6, L7, L8, L9]

3 S = [L5, L3, L1, L8, L2, L7, L4, L9, L6] S = [L5, L3, L1, L8, L2, L7, L4, L9, L6]

4 P = [P5, P3, P1,−,−,−,−,−,−] P = [−,−,−, P8, P2,−,−,−,−]

5 Sgn = [sig(L5), sig(L3), sig(L1),−,−,−,−,−,−] Sgn = [−,−,−, sig(L8), sig(L2),−,−,−,−]

6 S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6] S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6]

S = [S1, S2, S3, S4, S5, S6, S7, S8, S9] S = [S1, S2, S3, S4, S5, S6, S7, S8, S9]

paso Procesador1,0 Procesador1,1

1 L = [−,−,−,−,−, L6, L7,−,−] L = [−,−,−,−,−,−,−, L8, L9]

2 L = [L1, L2, L3, L4, L5, L6, L7, L8, L9] L = [L1, L2, L3, L4, L5, L6, L7, L8, L9]

3 S = [L5, L3, L1, L8, L2, L7, L4, L9, L6] S = [L5, L3, L1, L8, L2, L7, L4, L9, L6]

4 P = [−,−,−,−,−, P7, P4,−,−] P = [−,−,−,−,−,−,−, P9, P6]

5 Sgn = [−,−,−,−,−, sig(L7), sig(L4),−,−] Sgn = [−,−,−,−,−,−,−, sig(L9), sig(L6)]

6 S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6] S = abs[L5, L3, L1, L8, L2, L7, L4, L9, L6]

S = [S1, S2, S3, S4, S5, S6, S7, S8, S9] S = [S1, S2, S3, S4, S5, S6, S7, S8, S9]

En este esquema, tanto el paso 1, como los pasos 4 y 5, estan completamente

paralelizados, pues los calculos involucrados estan distribuidos entre todos los

procesadores de la malla.

126

Page 128: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 42 ParaleloCalculaEigbtr

1. Llow:up ← dstebz(longi, a, b)

2. L← Replicar(L) /* Dispersion Todos a Todos */

3. S ← OrdenarPorValorAbsoluto(L)

4. P:,low:up ← dstein(longi, Slow:up, a, b)

5. Sgn← sig(S)

6. S ← abs(S)

Ya sea que se utilice el Algoritmo 41 o 42, la svd de la matriz Hankel RA

sigue los pasos del Algoritmo 43.

Algoritmo 43 ParaleloCalculaSVD

1. [a, b, Q]← Tridiag1(H)

2. [P, S, Signos]← ParaleloCalculaEig(a, b)

Al igual que en el caso secuencial, otra alternativa para tridiagonalizar la

matriz Hankel es utilizar la rutina paralela de ScaLAPACK pdsytrd. Si se susti-

tuye esta rutina en el paso 1 del Algoritmo ParaleloCalculaSVD, experimentos

numericos muestran en la Tabla 5.3 que los tiempos de ejecucion resultantes son

mayores que cuando se utiliza Tridiag1.

Tabla 5.3: Tiempos de ejecucion experimentales de dos implementaciones paralelas de la svd

SVD Paralelo usando

n Prc Trid1 pdsytrd

500 1 0.61 1.14

2 0.41 1.03

4 0.34 1.25

1000 1 2.8 7.01

2 2.1 5.81

4 1.6 5.31

1500 1 7.7 12.9

2 5.9 17.1

4 5.1 14.8

2000 1 15.8 52.1

2 12.2 39.9

4 10.8 34.4

Segundos

Habiendo paralelizado la svd de la matriz Toeplitz A, la tarea ahora es

disenar los algoritmos paralelos para calcular J , b y btr. Con la distribucion

adecuada de P y Sgn que da el Algoritmo 41 para calcular J y b se utiliza

el Algoritmo 44 que deja la matriz J y el vector b particionados en bloques y

distribuidos cıclicamente en los procesadores conforme la distribucion ScaLA-

PACK.

127

Page 129: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 44 ParaleloCalculaJbEstructurado

1. Para i = 1,n/Pr

1.1. v ← dgemm(n, n, n, Q, Pi)

1.2. u← reverso(v)

1.3. x← multRapFourier(n, n, ut, A0)

1.4. v ← dscal(n, Sgni, v)

1.5. bi ← S∗iglobal − ddot(n, x, v)

1.6. Para k=1,n/Pc

1.6.1. Si RENSkglobal 6= 0

xRENSkglobal :n ← v1:n−RENSkglobal

1.6.2. Si COLSkglobal 6= 0

x1:n−COLSkglobal← vCOLSkglobal:n

1.6.3. Ji,k ← ddot(n, u, x)

Para calcular en paralelo el vector btr (de acuerdo a 5.8) se utiliza la distribu-

cion de P y Sgn dada por el Algoritmo 42, que permite, como se especifico en

parrafos anteriores, la distribucion de la multiplicacion matriz-matriz QP de la

ecuacion (5.9) entre todos los procesadores, como se ve en el paso 1 del siguiente

esquema:

paso Procesador0,0 Procesador0,1

1 [U1, U2, U3] = Q[P1, P2, P3] [U4, U5] = Q[P4, P5]

2 [V1, V2, V3] = [U1, U2, U3] [V4, V5] = [U4, U5]

3 [U1, U2, U3] = [G11U1,G22U2,G33U3] [U4, U5] = [G44U4,G55U5]

4 [U1, U2, U3] = [S∗1U1, S∗

2U2, S∗3U3] [U4, U5] = [S∗

4U4, S∗5U5]

5 Replicar U ,V (Replicar QPGdiag(S∗), QP )

6 V =permuta renglones(V ) V =permuta renglones(V )

7

2

6

4

(Ut)1

(Ut)2

(Ut)3

3

7

5=

2

6

4

(Ut)1

(Ut)2

(Ut)3

3

7

5V t

"

(Ut)4

(Ut)5

#

=

"

(Ut)4

(Ut)5

#

V t

8 Replicar U (Replicar Udiag(S∗)V t)

9 aux← Udiag(S∗)V t − A0 aux← Udiag(S∗)V t − A0

10 btr1,2,3 = tr(auxAt1,2,3) btr4,5 = tr(auxAt

4,5)

paso Procesador1,0 Procesador1,1

1 [U6, U7] = Q[P6, P7] [U8, U9] = Q[P8, P9]

2 [V6, V7] = [U6, U7] [V8, V9] = [U8, U9]

3 [U6, U7] = [G66U6, G77U7] [U8, U9] = [G88U8,G99U9]

4 [U6, U7] = [S∗6U6, S∗

7U7] [U8, U9] = [S∗8U8, S∗

9U9]

5 Replicar U ,V (Replicar QPGdiag(S∗), QP )

6 V =premuta renglones(V ) V =permuta renglones(V )

7

"

(Ut)6

(Ut)7

#

=

"

(Ut)6

(Ut)7

#

V t

"

(Ut)8

(Ut)9

#

=

"

(Ut)8

(Ut)9

#

V t

8 Replicar U (Replicar Udiag(S∗)V t)

9 aux← Udiag(S∗)V t − A0 aux← Udiag(S∗)V t − A0

10 btr6,7 = tr(auxAt6,7) btr8,9 = tr(auxAt

8,9)

Despues se hace una copia de U en V (paso 2 del esquema anterior) para

128

Page 130: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

escalar V con Sgn y U con S∗ (pasos 3 y 4 del esquema anterior). El siguiente

paso (paso 5) es hacer una replica de U (QPS∗) y V (QPSgn) para proseguir

con el calculo replicado de RQPS∗ que se consigue con el reverso de U (paso

6) y con el calculo distribuido de (RQPS∗)(QPSgn)t = UV t en el paso 7 del

mismo esquema (con lo que se ha conseguido realizar la operacion US∗V t, donde

U y V denotan los vectores izquierdos y derechos de A, respectivamente). En el

paso 8 se replica U para calcular replicadamente la ecuacion 5.9 (paso 9). Por

ultimo, cada procesador calcula un subconjunto de elementos de btr, como en

el paso 10 del esquema anterior, los elementos de btr quedan distribuidos en los

procesadores. Este procedimiento es el de los Algoritmos 45 y 46.

Algoritmo 45 ParaleloCalculabtrEstructurado (parte 1/2)

1. /* U:,low:up ← QP:,low:up */

U:,low:up ← dgemm(m, longi, m, Q, P:,low:up)

2. V:,low:up ← U:,low:up

3. /* U:,low:up ← G(QP ):,low:up */

Para i = low, up

U:,i ← dscal(n, Gii, U:,i)

4. /* U:,low:up ← (QPG):,low:updiag(S∗) */

Para i = low, up

U:,i ← dscal(n, S∗i , U:,i)

5. /* Replica U y V (dispersion todos a todos, mensajes de longitud n2/Prc) */

Para i = 0, Prc − 1

Si procesador i {enviar}dgebs2d(′All′, m, longi, U:,low:up)

dgebs2d(′All′, m, longi, V:,low:up)

sino {recibir}U:,low:up ← dgebr2d(′All′, m, longi, U:,low:up)

V:,low:up ← dgebr2d(′All′, m, longi, V:,low:up)

6. /* V ← RQP */

V ←permutaRenglones(V )

7. /* Ulow:up,: ← (QPGdiag(S∗))low:up,:(RQP )t */

Ulow:up,: ← dgemm(longi, m, m, Ulow:up,:, Vt)

8. /* Replica U (dispersion todos a todos, mensaje de longitud n2/Prc) */

Para i = 0, Prc − 1

Si procesador i /*enviar*/

dgebs2d(′All′, longi, n, Ulow:up,:)

sino /*recibir*/

Ulow:up,: ← dgebr2d(′All′, longi, n, Ulow:up,:)

129

Page 131: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 46 ParaleloCalculabtrEstructurado (parte 2/2)

9. /* aux← Udiag(S∗)V t −A0 */

9.1. Para i = n, n− 1, n− 2, ..., 1

Si (A0(i) 6= 0)

ren← i; col ← 1

Mientras (ren ≤ n) & (col ≤ n)

auxren,col ← Uren,col −A0i

ren← ren + 1; col ← col + 1

9.2. ii← 2

9.3. Para i = 0,−1,−2, ..., 2− n

Si (A0i6= 0)

col ← ii; ren← 1

Mientras(col ≤ n) & (ren ≤ n)

auxren,col ← Uren,col −A0i

ren← ren + 1; col ← col + 1

ii← ii + 1

10. /* bT ri ← tr((Udiag(S∗)V t −A0)Ati) */

10.1. i← 1

10.2. Para ii = low, up

Si (RENSii 6= 0)

ren← RENSii; col← 1

Mientras (col ≤ n) & (ren ≤ n)

bT ri = bT ri + auxren,col

ren← ren + 1; col ← col + 1

i← i + 1

10.3.i← 1

10.4. Para ii = low, up

Si (COLSii 6= 0)

col← COLSii; ren← 1

Mientras (col ≤ n) & (ren ≤ n)

bT ri ← bT ri + auxren,col

ren← ren + 1; col ← col + 1

i← i + 1

El calculo paralelo de Atr se da en el Algoritmo 47, que al igual que btr,

deja a Atr distribuida entre todos los procesadores. Por ser Atr diagonal, la

resolucion del sistema Atrc = btr se reduce a dividir cada elemento de btr por el

correspondiente elemento de la diagonald de Atr.

130

Page 132: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 47 ParaleloCalculaAtrEstructurado

1. j ← 1

2. Para i = 1,n/Prc

2.1. Si (RENSi 6= 0) Atrj = n−RENSi + 1

2.2. Si (COLS − i 6= 0) Atrj = Atrj + n− COLSi + 1

2.3. j ← j + 1

Ası, MIE paralelo y EPE paralelo estan en los Algoritmos 48 y 49, respecti-

vamente.

Algoritmo 48 MIEParalelo

1. A← CalculaAestructurado(A0, ..., An, c) /* operacion replicada */

2. [P, Q, diag(S), G]← ParaleloCalculaSVD(AR)

3. error ← ParaleloCalculaError(S, S∗)

4. Para k=1,2,...Mientras error > tol

4.1. [J, b]← ParaleloCalculaJbEstructurado(P, Q, S∗, G, A1, ...An)

4.2. c← pdgesv(J, b)

4.3. c← pdgemr2d( nPr

, c) /* redistribuye c */

4.4. Si procesador 0 entonces /* envıa para replicar c */

dgebs2d(′All′, n, c)

Sino /* recibe para replicar c */

c← dgebr2d(′All′, n, c)

4.5. A← CalculaAestructurado(A0, ..., An, c) /* operacion replicada */

4.6. [P, Q, diag(S), G]← ParaleloCalculaSVD(AR)

4.7. error ← ParaleloCalculaError(S, S∗)

131

Page 133: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 49 EPEParalelo

1. Atr ← ParaleloCalculaAtrEstructurado(A1, A2, ..., An)

2. Para k=1,2,...

2.1. A← CalculaAestructurado(A0, ..., An, c) /* operacion replicada */

2.2. [P, Q, diag(S), G]← ParaleloCalculaSVD(AR)

2.3. btr ← ParaleloCalculabtrEstructurado(A0, ..., An, P, Q, S∗, G)

2.4. cvieja← c

2.5. Para i = low, up

ci ← btri/Atri

2.6. Para i = 0, Prc − 1 /* replica c */

Si procesador i entonces /* envıa */

dgebs2d(′All′, longi, clow:up)

Sino /* recibe */

c← dgebr2d(′All′, longi, clow:up)

2.7 error ← ParaleloCalculaError(c, cvieja)

Hasta error < tol

5.4. Prestaciones de Resoluciones Paralelas del

PIEVS

Es de esperar, al igual que en el caso secuencial, que la paralelizacion del MIE

y EPE tengan una complejidad de tiempo de menor orden que los algoritmos

paralelos del PIAVS (MI y EP), como se observa en los tiempos aritmeticos:

MI paralelo:

44n3

3Prc+ O

(n

Prc

)

+ k

{2n4

Prc+ O

(n3

Prc

)}

MIE paralelo:

n2log2n + O

(n2

Prc

)

+ k

{8n3

3Prc+

2n3

Pr+ n2log2n +

n2log2n

Pr+ O

(n2

Pr

)}

EP paralelo:

n4

Prc+ O

(n3

Prc

)

+ k

{56n3

3Prc+ O

(n2

Prc

)}

EPE paralelo:

k

{4n3

Prc+ n2log2n + n2 + O

(n2

Prc

)}

en los tiempos de establecimiento de comunicacion:

MI paralelo:

17n + k{

2log2

Prcn2 + O

(√

Prcn)}

132

Page 134: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

MIE paralelo:

3

2(Pr + Pc) + k

{

nlog2Prc +3

2(Pr + Pc) + O(n)

}

EP paralelo: √Prcn

2

2+ O

(√

Prcn)

+ k

{√Prcn

2

}

EPE paralelo:

kO(√

Prc

)

y en los tiempos de transferencia:

MI paralelo:

14log2Prcn2

√Prc

+ k

{2log2

√Prcn

3

√Prc

+ O(√

Prcn2)}

MIE paralelo:

n

Pc+

n

Pr+ k

{log2Prc

4

n2

√Prc

+n

Pc+

n

Pr

}

EP paralelo:√

Prcn2

4+ O

(√

Prcn)

+ k

{14log2Prcn

2

√Prc

+ O(√

Prcn)}

EPE paralelo:

k

{6n2

√Prc

+ O

(n√Prc

)}

Con estos tiempos de ejecucion se puede estimar la tendencia asintotica del

Speedup de los algoritmos, obteniendose los siguientes resultados:

limn→∞

SMIE(n, Prc) = limn→∞

T (n, 1)

T (n, Prc)

(3Prc

14n3tf

)(3Prc

14n3tf

)−1

≈ 7Pr

3= O(Pr)

limn→∞

SEPE(n, Prc) = limn→∞

T (n, 1)

T (n, Prc)

(Prc

4n3tf

)(Prc

4n3tf

)−1

= Prc;

los Speedup de MIE y EPE indican que se tienen prestaciones optimas para

valores grandes de n, pero en el caso de MIE el optimo se alcanza cuando se

utilizan vectores columnas de procesadores, es decir mallas de la forma Prc =

Pr × 1, lo que no es de sorprender si se remite a la distribucion adecuada de

los vectores propios de la matriz Hankel RA para calcular J y b (los pasos mas

costosos de MIE) que consiste en una distribucion cıclica por renglones. Para

corroborar esta observacion se han realizado algunas pruebas numericas en el

cluster Kefren para n = 1500; los resultados que se han obtenido son:

133

Page 135: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Prc MIE (seg) EPE (seg)

1× 4 27 14.69

4× 1 15 14.69

2× 2 19 14.68

1× 8 23 10.61

8× 1 10 10.61

2× 4 15 10.60

4× 2 12 10.61

en estos se constata que con la malla Prc = 4 × 1 y Prc = 8 × 1 MIE obtiene

mejores tiempos de ejecucion, mientras que EPE los obtiene practicamente con

cualquier malla.

A continuacion, se presentan algunos resultados experimentales para diferen-

tes tamanos de n considerando la ejecucion de una sola iteracion de los metodos.

En las Tabla 5.4 estan los tiempos de ejecucion medidos y los correspondientes

Speedups de MIE.

Tabla 5.4: Tiempos de ejecucion y Speedup experimentales de MIE paralelo

MIE n n

Prc 1000 1500 2000 2500 3000 1000 1500 2000 2500 3000

1 14.8 44 101 200 342 1 1 1 1 1

2 8.3 26 53 114 194 1.8 1.7 1.8 1.7 1.8

4 5.3 15 35 65 109 2.8 2.8 2.8 3.1 3.1

6 4.5 12 28 51 84 3.3 3.6 3.6 3.9 4.1

8 3.8 10 23 44 74 3.9 4.2 4.3 4.5 4.6

10 4.1 9.7 21 40 67 3.6 4.5 4.7 5.0 5.1

14 3.9 9.5 19 35 57 3.7 4.6 5.3 5.7 6.0

16 3.7 8.6 18 33 54 3.9 5.1 5.6 6.1 6.3

Tiempo (seg) SpeedUp

Se observan decrementos significativos de tiempos de ejecucion para los casos

grandes de n; sin embargo, con respecto al Speedup, aunque este va mejorando

conforme n crece, las prestaciones son buenas con 2 procesadores y aceptables

con 4, y a partir de 6 procesadores el Speedup empieza a degradarse. El mismo

fenomeno se observa para EPE en la Tabla 5.5.

134

Page 136: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 5.5: Tiempos de ejecucion y Speedup experimentales de EPE paralelo

EPE n n

Prc 1000 1500 2000 2500 3000 1000 1500 2000 2500 3000

1 12 39 89 174 293 1 1 1 1 1

2 7.3 23 51 100 166 1.7 1.7 1.7 1.7 1.8

4 4.8 14 32 62 103 2.5 2.8 2.8 2.8 2.8

6 4.1 11 26 50 81 3.0 3.3 3.4 3.5 3.6

8 3.6 10 23 44 71 3.4 3.7 3.9 3.9 4.1

10 3.5 9.9 21 40 65 3.5 3.9 4.1 4.3 4.3

14 3.2 9.1 19 36 58 3.8 4.2 4.5 4.6 4.8

16 3.1 8.9 18 35 56 3.9 4.4 4.8 4.9 5.2

Tiempo (seg) SpeedUp

El comportamiendo del Speedup de estos algoritmos se debe, en primer lu-

gar, a que la version secuencial de los mismos ha resultado ser un algoritmo

altamente eficiente, por lo que se necesitarıan versiones paralelas en las que

la mayorıa de sus operaciones deberıan ejecutarse en paralelo con el mınimo

numero de comunicaciones. Sin embargo, en los algoritmos paralelos que se han

disenado no todas las operaciones se han paralelizado, algunas por ser altamente

eficientes secuencialmente (como la FFT involucrada en la tridiagonalizacion de

una matriz tipo Hankel, lo que implica que la svd de una matriz tipo Hankel

este parcialmente paralelizada) y otras, por evitar comunicaciones entre proce-

sadores, se ejecutan replicadamente en cada procesador. Estos factores se ven

reflejados en el orden de complejidad de tiempo del algoritmo secuencial:

Tsvd secuencial =(n2log2n + O(n2)

)tf

contrastado con el orden de complejidad de tiempo del algoritmo paralelo:

Tsvd paralelo =

(

n2log2n + O

(n2

√Prc

))

tf + O(√

Prc

)

tm + O

(m√Prc

)

tv

en el caso de MIE y

Tsvd paralelo =

(

n2log2n + O

(n2

Prc

))

tf + O(√

Prc

)

tm + O

(m√Prc

)

tv

en el caso de EPE. Graficamente el Speedup de MIE y EPE estan en la Figu-

ra 5.2.

135

Page 137: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

0 2 4 6 8 10 12 14 161

2

3

4

5

6

7

Procesadores

Spe

edup

de

MIE

n=500 n=1000n=1500n=2000n=3000

0 2 4 6 8 10 12 14 161

1.5

2

2.5

3

3.5

4

4.5

5

5.5

Procesadores

Spe

edup

de

EP

E

n=500 n=1000n=1500n=2000n=3000

Figura 5.2: Speedup experimentales de MIE y EPE en el cluster Kefren

La eficiencia de MIE y EPE se han calculado en las Tablas 5.6 y 5.7, respec-

tivamente.

Tabla 5.6: Eficiencia Experimental de MIE

Prc Aprovechamiento

1 100 % 100 % 100 % 100 % 100 %

2 90 % 85 % 90 % 85 % 90 %

4 70 % 70 % 70 % 77 % 77 %

6 55 % 60 % 60 % 65 % 68 %

8 48 % 52 % 53 % 56 % 57 %

10 36 % 45 % 47 % 50 % 51 %

14 26 % 32 % 37 % 40 % 42 %

16 24 % 31 % 35 % 38 % 39 %

n 1000 1500 2000 2500 3000

Tabla 5.7: Eficiencia Experimental de EPE

Prc Aprovechamiento

1 100 % 100 % 100 % 100 % 100 %

2 85 % 85 % 85 % 85 % 85 %

4 62 % 70 % 70 % 70 % 70 %

6 50 % 55 % 56 % 58 % 58 %

8 42 % 46 % 48 % 48 % 48 %

10 35 % 39 % 41 % 43 % 43 %

14 27 % 30 % 32 % 32 % 32 %

16 24 % 27 % 30 % 30 % 30 %

n 1000 1500 2000 2500 3000

Para el PIEVS MIE es el algoritmo paralelo que mejor aprovecha los proce-

sadores que intervienen en su resolucion, pues alcanza eficiencas aceptables (de

al menos 70%) para 4 procesadores en todos los experimentos, mientras que

136

Page 138: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

EPE lo hace tambien con 4 procesadores, pero a partir de n = 1500. A partir de

6 procesadores las mejores eficiencias empiezan a decrecer en ambos algoritmos.

La escalabilidad de los algoritmos se ha medido haciendo crecer en la misma

proporcion el tamano del problema y el numero de procesadores. Consideran-

do que, en terminos de orden superior, la complejidad de tiempo de MIE y

EPE es O(n3), se han realizado experimentos para n ={1000, 1259, 1582, 1817,

2000, 2154, 2410, 1519}, correspondientemente con Prc ={1, 2, 4, 6, 8, 10, 14,

16}. Graficamente se oberva el Speedup escalado obtenido en la Figura 5.3. En

general, los algoritmos presentan baja escalabilidad.

0 2 4 6 8 10 12 14 161

2

3

4

5

6

7

Procesadores

Spe

edup

Esc

alad

o

MIE

0 2 4 6 8 10 12 14 161

1.5

2

2.5

3

3.5

4

4.5

5

5.5

Procesadores

Spe

edup

Esc

alad

o

EPE

Figura 5.3: Speedup Escalado de los algoritmos paralelos del PIEVS

5.5. Conclusiones

Se ha disenado e implementado un algoritmo eficiente para el calculo de la

descomposicion en valores singulares (svd) de una matriz tipo Hankel, basado

en la multiplicacion rapida de Fourier de una matriz Hankel por un vector. Este

algoritmo reduce considerablemente los costos computacionales de las rutinas

LAPACK y ScaLAPACK que calculan la svd de una matriz general, lo que

representa un aporte de este trabajo.

Con base en el algoritmo eficiente construido para la svd y en las caracterısti-

cas estructurales de las matrices que intervienen en el PIEVS se han construido

MIE y EPE, dos algoritmos que resuelven el PIEVS eficientemente, siendo este

uno de los objetivos de este capıtulo que se han alcanzado satisfactoriamente.

Se ha constatado que los algoritmos MI y EPE del PIAVS mejoran sustancial-

mente sus costos computacionales cuando se disenan e implementan tomando

ventaja de la estructura de las matrices tipo Toeplitz del PIEVS, como se ha

mostrado en la complejidad de tiempo y experimentos numericos de MIE y EPE,

constrastados con los obtenidos con MI y EP.

EL MIE y PIE tambien se han paralelizado. Los costos computacionales de

137

Page 139: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

estos algoritmos paralelos se han reducido respecto de los correspondientes MI y

EP para el PIAVS. Con MIE y EPE paralelos se ha podido disminuir el tiempo

de ejecucion secuencial para resolver el PIEVS.

Las prestaciones de los algoritmos paralelos MIE y EPE se han visto afec-

tadas escencialmente por dos causas: por una parte, el algoritmo secuencial

tomado como referencia para medir las prestaciones es altamente eficiente, por

lo que sus tiempos de ejecucion son difıciles de mejorar sustancialmente cuando

se utiliza mas de un procesador; por otra parte, aunque hay rutinas altamente

paralelizables, como es el caso del calculo de J , b y btr, las prestaciones se ven

mermadas por las secciones de codigo que deben ejecutarse secuencialmente, ya

porque los tiempos secuenciales son altamente eficientes, ya por evitar comuni-

caciones entre procesadores. Sin embargo, al menos con 2 y 4 procesadores MIE

y EPE presentan prestaciones aceptables para problemas de tamanos grandes.

138

Page 140: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 6

Algoritmos para la

Resolucion del PIVSVP

En este capıtulo se aborda el Problema Inverso de Valores Singulares y

Valores Propios (PIVSVP) que consiste en construir una matriz A ∈ <n×n

cuyos valores singulares sean S∗ = {S∗1 , S∗

2 , ..., S∗n} y cuyos valores propios sean

L∗ = {L∗1, L

∗2, ..., L

∗n}, con S∗

1 ≥ S∗2 ≥ ... ≥ S∗

n y L∗1 ≥ L∗

2 ≥ ... ≥ L∗n, dos

conjuntos de valores reales dados bajo ciertas restricciones, como se definiran

en las secciones de este capıtulo.

En la Seccion 6.1 se resuelve lo que se puede considerar un caso particular

del PIVSVP, al asumir que L∗1 = L∗

2 = ... = L∗n = 1, y que los elementos de S∗

satisfacen las condiciones de Weyl; para esto se aplica un algoritmo dado por

Kosowsky y Smoktunowicz en [KA00], que en este capıtulo se denominara MTri-

IU, que construye una matriz triangular inferior unidad. Se presentan dos im-

plementaciones paralelas de este algoritmo, una bajo el modelo de memoria

distribuida y otro bajo el modelo de memoria compartida, siendo esta ultima la

mas adecuada para el tipo de algoritmo que se maneja. Los experimentos se han

realizado con los casos de prueba del tipo TriIU. La implementacion del algorit-

mo bajo el modelo de memoria distribuida se ha realizado en el cluster Kefren

y la implementacion bajo el modelo de memoria compartida se ha realizado en

el cluster Aldebaran, que es el mas adecuado para este tipo de algoritmos.

En la Seccion 6.2 se presenta un metodo, aporte de este trabajo de tesis, que

resuelve una generalizacion del PIVSVP, al considerar que los valores singulares

dados S∗ y los valores propios dados L∗ satisfacen las condiciones Weyl-Horn,

que establecen un vınculo entre los valores singulares y los valores propios de una

matriz. El metodo, al que se denomina MBidiag, construye una matriz bidiago-

nal a traves de la resolucion de un PIVP. Se presentan resultados experimentales

de MBidiag y se realiza una comparacion con respecto a resultados experimen-

tales arrojados por un metodo dado por Chu en [Chu00] y por otro dado por Li

139

Page 141: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

y Mathias en [LM01], que tambien se ocupan de la construccion de una matriz

(Chu de una cuasitriangula superior, y Li y Mathias de una triangular inferior)

con valores singulares y valores propios prestablecidos y que cumplen las condi-

ciones de Weyl-Horn. Para los experimentos se han tomado casos de prueba del

tipo Bidiag sobre el cluster Kubrick.

6.1. Metodo MTriIU

El problema de construir una matriz triangular inferior unidad A ∈ Rn×n,

tal que los valores singulares de A sean S∗1 ≥ S∗

2 ≥ ... ≥ S∗n, fue propuesto por

Kosowski y Smoktunowicz en [KA00]. Este problema puede verse como un caso

particular del PIVPVS:

Encontrar una matriz triangular inferior unidad A ∈ Rn×n, tal que

los valores singulares de A sean S∗1 ≥ S∗

2 ≥ ... ≥ S∗n, y los valores

propios de A sean L∗i = 1, para i = 1, n.

La resolucion de este problema esta garantizada por Horn [Hor54] que ha

demostrado que dicha matriz A existe si y solo si se satisfacen las condiciones

de Weyl:

S∗1S∗

2S∗3 ...S∗

i ≥ 1, (i = 2, n) (6.1)

S∗1S∗

2S∗3 ...S∗

n = 1. (6.2)

Para resolver este problema Kosowski y Smoktunowicz se basan en la idea de

construir una secuencia de matrices triangulares inferiores unidad A(i) (i = 1, n)

equivalentes a la matriz diagonal diag(S∗1 , S∗

2 , ..., S∗n). Se sabe que dos matrices

M y N son unitariamente equivalentes si existen matrices unidad U , V tales que

M = UNV t; bajo estas condiciones M y N tienen los mismos valores singulares.

La primera matriz de la sucesion A(1) = diag(S∗1 , S∗

2 , ..., S∗n) posee los valores

singulares deseados, pero no los valores propios deseados Li = 1 (i = 1, n); para

esto se construye una matriz unitariamente equivalente a A(1) haciendo uso del

siguiente Lema:

Lema 1 Dos numeros reales S∗i , S∗

j > 0 tales que S∗i ≥ 1 ≥ S∗

j o S∗j ≥ 1 ≥ S∗

i ,

son los valores singulares de la matriz[

1 0√

(S∗2i − 1)(1− S∗2

j ) S∗i S∗

j

]

.

Este lema lleva a tomar submatrices 2 × 2 de A(i) (i = 1, n) de la forma

diag(di, dj) tales que di, dj cumplan

di ≥ 1 ≥ dj o bien dj ≥ 1 ≥ di. (6.3)

140

Page 142: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Para garantizar que 6.3 se cumpla, Kosowski et.al. hacen uso del siguiente

lema:

Lema 2 Si los numeros reales S∗1 ≥ S∗

2 ≥ ... ≥ S∗n > 0 satisfacen las condi-

ciones de Weyl, existe una permutacion {d1, d2, ..., dn} de {S∗1 , S∗

2 , ..., S∗n} tal

que

d1d2...di−1 ≥ 1 ≥ di o di ≥ 1 ≥ d1d2...di−1 (i = 2, n). (6.4)

Partiendo entonces, no de la matriz diag(S∗1 , S∗

2 , ..., S∗n) sino de la matriz

A(1) = diag(d1, d2, ..., dn) y como d1 y d2 cumplen (6.3), entonces la siguiente

matriz existe:

L(2)2×2 =

[

1 0√

(d21 − 1)(1− d2

2) d1d2

]

con valores singulares d1, d2. Entonces, se puede construir A(2) como

A(2) =

1 0√

(d21 − 1)(1− d2

2) d1d2

diag(d3, d4, ..., dn)

=

[

L(2)2×2

D(1)n−2×n−2

]

.

A(2) es equivalente a A(1) porque existen matrices unitarias U(2)2×2 y V

(2)2×2

tales que

L(2)2×2 = U

(2)2×2 diag(d1, d2) V

(2)t2×2 .

Una vez que A(2) ha sido construida, empieza un proceso iterativo para

construir A(3), A(4), ..., A(n). Por ejemplo, la construccion de A(3) se basa en la

descomposicion en valores singulares (SVD) de la matriz L(3)2×2:

L(3)2×2 =

[

1 0√

(d21d

22 − 1)(1− d2

3) d1d2d3

]

= U(3)2×2 diag(d1d2, d3) V 2× 2(3)t;

(6.5)

entonces A(3) se puede expresar como A(3) = Q(3)A(2)Z(3)t, donde

Q(3) =

1 0 0 0 ... 0

0 u(3)11 u

(3)12 0 ... 0

0 u(3)21 u

(3)22 0 ... 0

0 0 0 1 ... 0

.

.....

.

.....

. . ....

0 0 0 0 ... 1

=

I1×1

U(3)2×2

In−3×n−3

,

141

Page 143: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

A(2) =

1 0 0 0 ... 0q

(d2i − 1)(1 − d2

j ) d1d2 0 0 ... 0

0 0 d3 0 ... 0

0 0 0 d4 ... 0

......

......

. . ....

0 0 0 0 ... dn

=

=

B(2)1×1

C(2)2×1 diag(d1d2, d3)

D(2)n−3×n−3

,

Z(3)t =

1 0 0 0 ... 0

0 v(3)11 v

(3)21 0 ... 0

0 v(3)12 v

(3)22 0 ... 0

0 0 0 1 ... 0

.

.....

.

.....

. . ....

0 0 0 0 ... 1

=

I1×1

V(3)t2×2

In−3×n−3

;

entonces A(3) se expresa como

A(3) =

2

6

6

4

B(2)1×1

U(3)2×2C

(2)2×1 U

(3)2×2diag(d1d2, d3)

D(2)n−3×n−3

3

7

7

5

2

6

4

I1×1

V(3)t2×2

In−3×n−3

3

7

5=

=

2

6

6

4

B(2)1×1

U(3)2×2C22×1 U

(3)2×2diag(d1d2, d3)V

(3)t2×2

D(2)n−3×n−3

3

7

7

5

=

=

2

6

6

4

B(2)1×1

U(3)2×2C

(2)2×1 L

(3)2×2

D(2)n−3×n−3

3

7

7

5

El mismo procedimiento se sigue para calcular A(4), A(5), ..., A(n). El resul-

tado final sera la matriz triangular inferior unidad A(n), cuyos valores singulares

son S∗ y cuyos valores propios son L∗i = 1 (i = 1, n).

Si se definen los numeros pi y zi como:

pi = d1d2...di, (i = 1, n); (6.6)

zi =√

(p2i−1 − 1)(1− d2

i ), (i = 2, n); (6.7)

A(n) tiene la forma:

A(n) =

[B

(n−1)n−2×n−2

U(n)2×2C

(n−1)2×n−2 L

(n)2×2

]

donde B(n−1)n−2×n−2, U

(n)2×2C

(n−1)2×n−2 y L

(n)2×2 son:

B(n−1)n−2×n−2 =

1 0 ... 0

u(3)11 z2 1 ... 0

u(4)11 u

(3)21 z2 u

(4)11 z3 ... 0

......

. . ....

u(n−1)11 u

(n−2)21 ...u

(3)21 z2 u

(n−1)11 u

(n−2)21 ...u(4)z3 ... 1

, (6.8)

142

Page 144: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

U(n)2×2C

(n−1)2×n−2 =

u(n)11 u

(n−1)21 ...u

(3)21 z2 u

(n)11 u

(n−1)21 ...u

(4)21 z3 ... u

(n)11 zn−1

u(n)21 u

(n−1)21 ...u

(3)21 z2 u

(n)21 u

(n−1)21 ...u

(4)21 z3 ... u

(n)21 zn−1

,

(6.9)

L(n)2×2 =

1 0

zn pn

=1 0

zn 1. (6.10)

Para automatizar este proceso, denominado en este trabajo como metodo

MTriIU, en la siguiente seccion se discute el Algoritmo secuencial correspondi-

ente y se proporcionan pruebas numericas.

6.1.1. Algoritmo Secuencial del Metodo MTriIU

Antes de entrar de lleno a la construccion de las matrices A(i) (i = 1, n), hay

que garantizar que los valores singulares deseados S∗, que cumplen las condi-

ciones de Weyl (6.1) y (6.2), tambien cumplan la condicion (6.3). Basandose en

el Lema 2, es posible encontrar una permutacion de S∗ con la que se cumpla esa

condicion (6.3). El algoritmo correspondiente a este proceso es el Algoritmo 50.

Algoritmo 50 Construyed

1. S ← ordenaMenorMayor(S∗)

2. /* Localiza el ındice k del mayor valor de S menor que 1 */

Para i = 1, n

Si (Si < 1)

k ← i

3. /* Construye vector d que cumpla Lema 2 */

d1 ← Sk; d2 ← Sk+1

aa← Sk; bb← Sk+1

izq ← k − 1; der ← k + 2

k ← 3

Mientras (k ≤ n)

tempo← aa ∗ bb

Si (tempo < 1)

dk ← Sder

der ← der + 1

Sino

dk ← Sizq

izq ← izq − 1

aa← tempo

bb← dk

k ← k + 1

Ahora, de las ecuaciones (6.8), (6.9) y (6.10) es claro que A(n) puede constru-

irse con los componentes de la primera columna de las matrices U (i) (i = 3, n) y

143

Page 145: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

con los valores de los vectores pi (i = 1, n) (ecuacion 6.6), zi (i = 2, n) (ecuacion

6.7) y di (i = 1, n) (algoritmo 50), donde U (i) es la matriz de vectores singulares

izquierdos de

L(i) =

[

1 0

zi pi

]

, (6.11)

por lo que A(n) puede construise directamente, sin necesidad de construir ex-

plıcitamente A(2), A(3),...,A(n−1). Entonces, una vez calculadas di (i = 1, n), el

siguiente paso para construir A(n) es calcular zi (i = 2, n) y U (i) (i = 3, n) con

el Algoritmo 51.

Algoritmo 51 CalculazU

1. p1 ← d1

2. Para i = 2, n

2.1. pi ← pi−1di

3. z1 ← sqrt((p1 − 1)(1− d2)(p1 + 1)(1 + d2))

4. Para i = 3, n

4.1. zi−1 ← sqrt((pi−1 − 1)(1− di)(pi−1 + 1)(1 + di))

4.2. L←[

1 0

zi−1 pi

]

4.3. [Q, S, V ]← dgesvd(2, L)

4.4. Si (pi−1 < di)

dswap(Q:,1, Q:,2)

4.5. U:,i−2 ← Q:,1

El resultado del Algoritmo 51 es el vector z y la matriz U siguientes:

1 2 ... n− 1

z = z2 z3 ... zn

U =

1 2 ... n− 2

u(3)11 u

(4)11 ... u

(n)11 1

u(3)21 u

(4)21 ... u

(n)21 2

;

con estos datos en el Algoritmo 52 se construye A ≡ A(n), que es la matriz

triangular inferior unidad con valores singulares S∗.

Algoritmo 52 CalculaMatTriU

1. A← In

2. Para i = 2, n− 1 /* Ai:i+1,1:i−1 ← U:,i−1Ai,1:i−1 */

Ai:i+1,1:i−1 ← dgemm(2, i− 1, 1, U:,i−1, Ai,1:i−1)

3. Para i = 1, n− 1 /* Ai+1:n,i ← ziAi+1:n,i */

Ai+1:n,i ← dscal(n− i, zi, Ai+1,i)

144

Page 146: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Por lo tanto, el proceso completo para calcular A esta en el Algoritmo 53.

Algoritmo 53 MTriIU

1. d← Construyed(S∗)

2. [z, U ]← CalculazU(d)

3. A←CalculaMatTriU(z, U)

Este Algoritmo tiene una complejidad de tiempo de:

T (n) =

(

n2 +328n

3

)

tf

Algunos resultados de experimentos numericos del Algoritmo MTriIU estan

en la Tabla 6.1, donde S denota los valores singulares de la matriz A calculada.

En todos los casos se observan buenos resultados.

Tabla 6.1: Resultados del caso Triu con MTriIUn 4 5 8 30 50 100 150 300 500

‖S∗ − S‖2 4e-16 4e-16 5e-16 1e-15 1e-15 2e-14 4e-14 8e-15 1e-14

En la siguiente seccion se analiza la forma en que puede paralelizarse este

algoritmo, aprovechando que no es necesario el calculo de matrices triangulares

inferiores unidad previas a A(n).

6.1.2. Paralelizacion del Algoritmo MTriIU

Recordar que para calcular A ≡ A(n) se requiere de U (i) (i = 3, n) que de-

pende de la SVD de L(i), y que L(i) (ver (6.11)) depende de pi y zi (definidas

en (6.6) y (6.7), respectivamente). Cada elemento de p puede calcularse inde-

pendientemente de los otros; como zi depende de pi−1 y di, zi tambien puede

calcularse en paralelo con zj (j = 2, n; j 6= i). Entonces, la SVD de las matrices

L(i) pueden calcularse en paralelo y los componentes de U (i) tambien.

Por otra parte, en la seccion anterior se vio que A puede construirse sin

calcular explıcitamente la sucesion A(i) (i = 1, n−1). Para eliminar operaciones

en punto flotante innecesarias, se pueden ordenar los productos involucrados en

cada renglon de A como en el siguiente esquema (para el caso n = 6 y el renglon

5):

con U(6): ⇒ A6,1:6 = u(6)11 1

con U(5): A6,4u(5)21 ⇒ A6,1:6 = u

(6)11 u

(5)21 u

(6)11 1

con U(4): A6,3u(4)21 ⇒ A6,1:6 = u

(6)11 u

(5)21 u

(4)21 u

(6)11 u

(5)21 u

(6)11 1

con U(3): A6,2u(3)21 ⇒ A6,1:6 = u

(6)11 u

(5)21 u

(4)21 u

(3)21 u

(6)11 u

(5)21 u

(4)21 u

(6)11 u

(5)21 u

(6)11 1

145

Page 147: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Las expresiones generales de este procedimiento son:

Ai,i−2 = u(i−2)21 ; Ai,j = Ai,j+1u

(j)21 ; (i = n; j = i− 3, i− 2, ..., 1); (6.12)

Ai,i−1 = u(i−1)11 ; Ai,j = Ai,j+1u

(j)21 ; (i = 2, n−1; j = i−2, i−3, ..., 1). (6.13)

Para finalizar la construccion de A, las columnas de su triangular inferior

(excepto la diagonal) se multiplican con los valores de z, esta operacion se puede

expresar como:

Aij = zjAij ; (i = 2, n; j = 1, i− 1). (6.14)

Entonces, los renglones de A se pueden calcular simultaneamente si los valores

de la matriz U y el vector z se han calculado ya.

Por lo tanto, hay tres secciones del algoritmo MTriIU (Algoritmo 53) que

pueden paralelizarse: el calculo de las columnas de la matriz U , de los compo-

nentes del vector z y de los renglones de A. La paralelizacion, entonces, consiste

en la distribucion de los n− 1 componentes de z, los n− 2 componentes de U y

los n−1 renglones de A (A2,1:1, A3,1:2, A4,1:3, ..., An,n−1) entre Prc procesadores.

Para controlar la distribucion de carga entre los procesadores, se utilizan dos

estructuras de ındices: low y up, las que indican los lımintes del subintervalo

de componentes de U y z que cada procesador debe calcular. Por ejemplo, si

n = 19 y Prc = 4, la distribucion del calculo de z y U queda como:

Proc low up Calcula

0 3 7 U (3), U(4), U(5), U(6), U(7) y z3, z4, z5, z6, z7

1 8 11 U (8), U(9), U(10), U(11) y z8, z9, z10, z11

2 12 15 U (12), U(13), U(14), U(15) y z12, z13, z14, z15

3 16 19 U (16), U(17), U(18), U(19) y z16, z17, z18, z19, z2

La distribucion del trabajo necesario para calcular A se controla mediante las

estructuras de ındices ren y contaRen; contaRen indica cuantos y ren que ren-

glones de A debe calcular cada procesador, distribuyendo los renglones por pare-

jas entre los procesadores para equilibrar la carga computacional. Por ejemplo,

si n = 20 y Prc = 7, se forman las siguientes parejas de renglones:

parejas (2,20) (3,19) (4,18) (5,17) (6,16) (7,15) (8,14) (9,13) (10,12) (11)

flops 36 38 38 38 38 38 38 38 38 19

donde las parejas se eligen tomando renglones extremos de modo que la cantidad

de flops a calcular sea aproximadamente igual para cada procesador. Formadas

las parejas, en este ejemplo a cada procesador le corresponde una pareja; el

resto de las parejas ((9,13), (10,12) y (11)) se distribuyen entre los procesadores,

quedando ren y contaRen con los siguientes valores:

146

Page 148: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Proc ren contaRen

0 2 20 9 3

1 3 19 13 3

2 4 18 10 3

3 5 17 12 3

4 6 16 11 3

5 7 15 2

6 8 14 2

Para implementar esta idea en una computadora paralela de Memoria Dis-

tribuida, las estructuras: ren, contaRen, U y z deben estar disponibles en todos

los procesadores, por lo que en el proceso paralelo para calcular A hay dos etapas

de comunicacion, como se ilustra a continuacion para el caso n = 19, Prc = 4:

Proc0 Proc1 Proc2 Proc3

Construye d1:n d1:n d1:n d1:n

Calcula z3:7 z8:11 z12:15 z16:19,2

Calcula U (3)...U(7) U(8)...U(11) U(12)...U(15) U(16)...U(19)

⇐ −−−−−−−−−−−−−−−−−−−−−−−−−− ⇒

Dispersion Todos a Todos para replicar U y z

⇐ −−−−−−−−−−−−−−−−−−−−−−−−−− ⇒

A2,1, A19,1:18 A3,1:2, A18,1:17 A4,1:3, A17,1:16 A5,1:4, A16,1:15

Calcula A16,1:15, A15,1:14 A7,1:6, A14,1:13 A8,1:7, A13,1:12 A9,1:8, A12,1:11

A11,1:10 A10,1:9

⇐ −−−−−−−−−−−−−−−−−−−−−−−−−−−

Reduccion Todos a Uno para construir A en Proc0

⇐ −−−−−−−−−−−−−−−−−−−−−−−−−−−

Los algoritmos del calculo paralelo de z, U y A se describen en los Algoritmos

54, 55 y 56.

Algoritmo 54 ParaleloCalculazU

1. p1 ← d1

2. Para i = 2, n

2.1. pi ← pi−1di

3. Si procesador Prc

z1 ← sqrt((p1 − 1)(1− d2)(p1 + 1)(1 + d2))

4. Para i = low, up

4.1. zi−1 ← sqrt((pi−1 − 1)(1− di)(pi−1 + 1)(1 + di))

4.2. L←[

1 0

zi−1 pi

]

4.3. [Q, diag(S), V ]← dgesvd(2, L)

4.4. Si (pi−1 < di)

dswap(Q:,1, Q:,2)

4.5. U:,i ← Q:,1

147

Page 149: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 55 ParaleloCalculaMatTriU

1. A← In

2. Para k = 1, contaRenproc

2.1. i← renproc,k

2.2. Si (i = n)

Ai,i−2 ← U2,i−2

Para j = i− 3, i− 4, i− 5, ..., 1

Ai,j ← Ai,j+1U2,j

Ai,j+1 ← Ai,j+1zj+1

Sino

Ai,i−1 ← U1,i−1

Para j = i− 2, i− 3, i− 4, ..., 1

Ai,j ← Ai,j+1U2,j

Ai,j+1 ← Ai,j+1zj+1

2.3. Ai,1 ← Ai,1z1

148

Page 150: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 56 MTriIUParalelo

1. d← Construyed(S∗) /* operacion replicada */

2. [z, U ]← ParaleloCalculazU(d)

3. /* Dispersion Todos a Todos de un mensaje de longitud n−2Prc

+ 1 para

replicar ll y de un mensaje de longitud 2× n−2Prc

para replicar U */

Para i = 0, Prc − 1

Si procesador i /*enviar*/

dgebs2d(′All′, 2, n−2Prc

+ 1, U)

dgebs2d(′All′, n−2Prc

, 1, ll)

Sino /*recibir*/

U ← dgebr2d(′All′, 2, n−2Prc

+ 1, U)

ll← dgebr2d(′All′, n−2Prc

, 1, ll)

4. A← ParaleloCalculaMatTriU(ll, U)

5. /* Reduccion TODOS a UNO de un mensaje de longitud

contaRen×max(renproc,:) para construir A en el procesador P0 */

Si procesador NO 0

Para i = 1, contarenproc

Nbytes← max(Nbytes, renproc,i − 1)

paquete←MPI Pack(Aren(proc,i),1:ren(proc,i)−1, renproc,i − 1)

MPI Send(paquete, Nbytes, MPI PACKED)

Sino

Para p = 1, Prc − 1

paquete←MPI Recv(paquete, Nbytes)

Para i = 1, contarenp

Aren(p,i),1:ren(p,i)−1 ←MPI Unpack(paquete, renp,i − 1)

6.1.3. Analisis de Prestaciones e Implementaciones del Al-

goritmo Paralelo MTriIU

Analizando teoricamente las prestaciones del Algoritmo paralelo MTriIU, el

Speedup se ve afectado por la construccion de A en el procesador Proc0, pues

comunica una cantidad de datos del orden O(

n2√

Prc

)

, como se ve en su tiempo

de ejecucion teorico:

TMTriIU (n, Prc) =

(n2

Prc+

322n

3Prc+ 2n− 656

3Prc

)

tf + 5√

Prctm +n2 + 4n√

Prc

tv,

por lo que su Speedup no alcanza el optimo asintoticamente, de acuerdo a la

siguiente expresion:

limn→∞

SMTriIU (n, Prc) = limn→∞

T (n, 1)

T (n, Prc)

(Prc

n2tf

)(Prc

n2tf

)−1

=Prc

1 +√

Prctv

tf

.

149

Page 151: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algunas muestras experimentales tomadas en el cluster Kefren ilustran este

comportamiento en la Tabla 6.2, donde es evidente que los tiempos de ejecucion

no disminuyen al aumentar el numero de procesadores.

Tabla 6.2: Tiempos de Ejecucion Experimentales de MTriIU en Kefren, construyendo A en

Proc0P Segundos

1 1.3 4.2 8.5 14 47 78 226 344

2 2.4 8.9 19 37 210 316 600 964

4 2.9 10.1 23 43 141 209 422 678

6 3.0 11.1 25 45 124 179 361 580

8 3.3 12.2 27 49 113 167 332 533

10 3.5 12.4 28 51 110 163 314 504

12 3.5 12.9 29 52 106 154 299 493

14 3.8 13.1 30 53 105 152 290 479

16 4.0 13.6 31 55 104 152 288 466

n 500 1000 1500 2000 2500 3000 4000 5000

El costo teorico del mismo algoritmo sin la construccion final de A en el

procesador Proc0 es:

TMTriIU (n, Prc) =

(n2

Prc+

322n

3Prc+ 2n− 656

3Prc

)

tf + 4√

Prctm +6n√Prc

tv ,

que muestra que el grado de paralelismo logrado en el calculo de U , z y A es

teoricamente bueno, ya que el Speedup alcanza el optimo asintoticamente:

limn→∞

SMTriIU (n, Prc) = limn→∞

T (n, 1)

T (n, Prc)

(Prc

n2tf

)(Prc

n2tf

)−1

= Prc.

Los tiempos de ejecucion experimentales con el algoritmo paralelo MTriIU que

no construye A pueden verse en la Tabla 6.3. En estos experimentos se reducen

los tiempos de ejecucion cuando se utiliza mas de un procesador, excepto en

algunos casos donde es necesario utilizar muchos procesadores para reducir el

tiempo secuencial (n = {2500, 3000}), pero este fenomeno tiende a desaparecer

cuando el tamano del problema se incrementa. Los Speedup de estos experi-

mentos estan en la Figura 6.1. Ademas se espera que multiplicando el numero

de procesadores por algun entero k, el Speedup obtenido sea k, como en los

resultados de la Tabla 6.4 (tomando datos de la Tabla 6.3) que muestran apro-

ximadamente este comportamiento cuando n crece.

150

Page 152: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.3: Tiempos de Ejecucion Experimentales de MTriIU en Kefren, SIN construır A en

Proc0P Segundos

1 1.3 4.2 8.5 14 47 78 226 344

2 0.91 3.2 6.8 11 164 235 420 646

4 0.76 2.5 5.6 9.6 86 125 222 337

6 0.80 2.4 5.2 9.0 61 88 157 234

8 0.75 2.4 5.1 8.7 48 69 123 184

10 0.67 2.3 4.9 8.5 40 58 103 153

12 0.74 2.3 4.8 8.3 36 51 91 131

14 0.67 2.3 4.7 8.4 32 46 81 117

16 0.65 2.3 4.7 7.7 29 42 74 105

n 500 1000 1500 2000 2500 3000 4000 5000

Tabla 6.4: Speedup experimental de MTriIU en Kefren, sin construir A en Proc0, multiplicando

el numero de procesadores por 2 y por 4

k P Speedup

2 2 1.19 1.27 1.20 1.19 1.89 1.88 1.89 1.91

4 1.01 1.07 1.1 1.1 1.79 1.81 1.8 1.83

8 1.15 1.04 1.08 1.13 1.66 1.64 1.66 1.75

4 2 1.21 1.37 1.32 1.30 3.38 3.40 3.41 3.51

4 1.16 1.12 1.19 1.24 2.98 2.97 3 3.2

n 500 1000 1500 2000 2500 3000 4000 5000

500 1000 1500 2000 2500 3000 3500 4000 4500 5000

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Tamaño del Problema (n)

Spe

edup

de

WE

, Mem

oria

Dis

trib

uida

P=2P=4P=6P=8

500 1000 1500 2000 2500 3000 3500 4000 4500 50001.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3

3.2

Tamaño del Problema (n)

Spe

edup

de

WE

, Mem

oria

Dis

trib

uida

P=10P=12P=14P=16

Figura 6.1: Speedup experimental de MTriIU en Kefren, SIN construir A en Proc0

El analisis anterior muestra que, dejando de lado las comunicaciones nece-

sarias para contener la matriz A en un solo procesador, la resolucion del PIVSVP

ha sido razonablemente paralelizada. El escollo de las comunicaciones es tratado

en la siguiente subseccion.

151

Page 153: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Implementacion en el Modelo de Memoria Compartida

El analisis de costos de la implementacion bajo el modelo de Memoria Distri-

buida del algoritmo paralelo MTriIU muestra que las comunicaciones necesarias

para construir la matriz triangular inferior unidad A en un solo procesador,

danan seriamente las prestaciones de la implementacion.

En una implementacion bajo el modelo de Memoria Compartida, no es nece-

sario realizar este ultimo paso, con lo que, de manera natural, se mejoran las

prestaciones de este algoritmo. Esta implementacion se ha realizado emplean-

do directivas de compilador de OpenMP [CDK+01], tales como omp parallel

do para paralelizar ciclos, omp parallel para paralelizar una seccion de codigo,

omp barrier para sincronizar hilos de ejecucion y omp do para definir trabajo

compartido en un ciclo.

Utilizando H hilos de procesamiento y asumiento que cada hilo se ejecuta en

un procesador (Prc = H), cada hilo se puede encarga de calcular un subconjunto

de componentes de z, U y A, pues ya se ha visto en la seccion anterior que no

hay problemas de dependencias de datos.

La distribucion de z, U y A podrıa efectuarse por el programador, como en

el caso de la implementacion en Memoria Distribuida (mediante los ındices low,

up, Ren y ContaRen). Sin embargo, en este caso es mas eficiente dejar este

trabajo al compilador utilizando las directivas adecuadas, como: omp parallel

do y omp do, que dividen el trabajo entre hilos de procesamiento de manera

automatica. En el siguiente diagrama se muestra esquematicamente como se

proceden los calculos:

Hilos hilo0 hilo1 hilo2 hilo3

Construir d1:n −−−−− −−−−− −−−−−

Calcular z3:7 z8:11 z12:15 z16:19,2

Calcular U (3)...U(7) U(8)...U(11) U(12)...U(15) U(16)...U(19)

⇐ −−− Barrera de Sincronizacion −−− ⇒

A2,1, A3,1:2 A6,1:5, A7,1:8 A10,1:9, A11,1:10 A14,1:13, A15,1:14

Calcular A4,1:3, A5,1:4 A8,1:7, A9,1:8 A12,1:11 , A13,1:12 A16,1:15, A17,1:16

A18,1:17 A19,1:18

Comparando este diagrama con el de Memoria Distribuida, es claro que

las etapas de comunicaciones desaparecen, ası que se espera que la eficiencia del

algoritmo paralelo MTriIU se incremente. Este proceso esta escrito en detalle en

el algoritmo 57, donde se utiliza omp parallel para crear hilos de procesamiento

(hilo1, hilo2, ..., hiloH−1) y ejecutar en paralelo un segmento de codigo; y en

los algoritmos 58 y 59, donde se utiliza la directiva omp do para distribuir las

iteraciones (del ciclo ”Para”) entre los hilos de procesamiento creados con omp

parallel.

152

Page 154: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 57 ParaleloShMTriIU

d← Construyed(S∗) /* ejecutado por hilo0 (hilo maestro) */

!$omp parallel private(hilo) /* hilo0 crea hilos esclavos hilo1, ..., hiloH−1 */

[z, U ]← ParaleloShzU(d)

!$omp barrier

A← ParaleloShA(z, U)

!$omp end parallel /* esclavos finalizados por hilo hilo0 */

Algoritmo 58 ParaleloShzU

!$omp do /* Se distribuyen las iteraciones entre los hilos */

Para i = 3, n

zi−1 ← calcular z(p, d) /* de acuerdo con (6.7) */

L← calcular L(zi−1, pi) /* de acuerdo con (6.11) */

[Q, diag(S), V ]← dgesvd(2,L)

U1:2,i−2 ← Q:,1

!$omp enddo

Si hilo = hiloH−1 z1 ← calcular z(p, d)

Algoritmo 59 Algorithm ParaleloShA

!$omp do /* Se distribuyen las iteraciones entre los hilos */

Para i = 2, n

Ai,1:i−1 ← calcula A(z, U) /* de acuerdo a (6.12-6.14) */

!$omp enddo

Pruebas experimentales del Algoritmo 57 se han realizado en el cluster Alde-

baran, que por ser un multiprocesador de memoria logicamente compartida,

aunque fısicamente distribuida (memoria compartida distribuida), es el adecua-

do para ejecutar este tipo de implementaciones. En la Tabla 6.5 se tienen algunos

tiempos de ejecucion obtenidos.

153

Page 155: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.5: Tiempos de Ejecucion Experimentales de MTriIU en Aldebaran, bajo el modelo de

Memoria Compartida

Hilos Segundos

1 1.3 4.9 10.1 22 26 37 68 95

2 1.0 3.1 6.1 12 14 20 35 48

3 0.64 2.1 4.3 9.0 10 14 23 31

4 0.55 1.6 3.4 7.4 7.1 10 18 23

6 0.45 1.1 2.7 5.0 3.2 9 16 18

8 0.44 1.1 2.6 4.3 5.5 8 13 17

10 0.33 1.2 2.3 3.7 4.8 7 10.3 16

12 0.35 1.0 2.6 3.7 4.6 6.1 10.2 13

14 0.32 0.9 2.2 3.3 4.2 6.0 9.8 11

16 0.25 0.8 2.1 3.2 4.1 5.4 9.6 10

n 500 1000 1500 2000 2500 3000 4000 5000

Los Speedup correspondientes a los tiempos anteriores estan en la Figura 6.2.

Con 2 hilos de procesamiento el Speedup ya es aceptable para n = 1000 y a partir

de n = 2000 es bueno para 2 procesadores mientras que para 3 y 4 empieza a

ser aceptable. Buenos Speedup para 3 y 4 procesadores se obtienen a partir de

n = 3000. En el caso de 6 procesadores, el Speedup es aceptable en el tamano

de problema mas grande que se ha probado (n = 5000).

2 4 6 8 10 12 14 161

2

3

4

5

6

7

Numero de Hilos (H)

Spee

dup

de W

E, M

emor

ia C

ompa

rtid

a

n=500n=1000n=1500n=2000

2 4 6 8 10 12 14 161

2

3

4

5

6

7

8

9

10

Numero de Hilos (H)

Spe

edup

de

WE

, Mem

oria

Com

part

ida

n=2500n=3000n=4000n=5000

Figura 6.2: Speedup experimentales de MTriIU en Aldebaran. Modelo de Memoria Compartida

La eficiencia correspondiente a estos experimentos (Tabla 6.6) son buenos

con tamanos de problema relativamente pequenos. Con n = 1000 y dos hilos la

eficiencia es de 81%; para n = 2000 la eficiencia es muy buena hasta con 4 hilos

y aceptable con 6. Para el caso experimental mas grande que se ha probado

(n = 5000) la eficiencia con 6 procesadores tambien es buena.

154

Page 156: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.6: Eficiencia Experimental de MTriIU en Aldebaran. Modelo de Memoria Compartida

Hilos Aprovechamiento

2 66 % 81 % 83 % 91 % 92 % 92 % 97 % 98 %

3 70 % 78 % 78 % 81 % 87 % 88 % 98 % 98 %

4 61 % 76 % 74 % 92 % 91 % 92 % 94 % 95 %

6 50 % 74 % 62 % 73 % 69 % 68 % 71 % 88 %

8 38 % 56 % 49 % 64 % 59 % 58 % 65 % 69 %

10 41 % 41 % 44 % 59 % 54 % 53 % 66 % 59 %

12 32 % 41 % 34 % 49 % 47 % 50 % 55 % 61 %

14 30 % 36 % 36 % 47 % 44 % 44 % 49 % 63 %

16 34 % 35 % 30 % 43 % 39 % 43 % 44 % 59 %

n 500 1000 1500 2000 2500 3000 4000 5000

Para analizar la escalabilidad de este algoritmo se ha hecho crecer en la

misma proporcion el tamano del problema y el numero de hilos (el numero de

procesadores); como el algoritmo MTriIU es O(n2), se han tomando tiempos

de ejecucion para n = {1000, 1400, 2000, 2800, 3400, 4000} con un hilo de proce-

samiento y respectivamente con H = {1, 2, 4, 8, 12, 16} hilos (procesadores). Los

resultados estan en la Figura 6.3 y muestran una buena escalalibidad.

0 2 4 6 8 10 12 14 160

1

2

3

4

5

6

7

8

Numero de Hilos (H)

Spe

edup

Esc

alad

o de

WE

, M

emor

ia C

ompa

rtid

a

n=1000

n=1400

n=2800

n=2000

n=3400

n=4000

Figura 6.3: Speedup Escalado de MTriIU en Aldebaran. Memoria Compartida

6.2. Metodo MBidiag

Se pueden encontrar en [Chu00] y [LM01] metodos para la resolucion del

PIVSVP propuestos por Chu y por Li y Mathias, respectivamente. Chu se basa

en la construccion de una matriz cuasitriangular inferior y Li y Mathias en una

matriz triangular superior con valores propios y valores singulares prestableci-

dos.

En esta seccion se propone un metodo alternativo a los ya mencionados para

155

Page 157: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

resolver el PIVSVP, mediante la construccion de una matriz bidiagonal con

con valores propios y valores singulares prestablecidos, los cuales satisfacen las

restricciones que establece el siguiente teorema.

Teorema 1 Dada una matriz An×n, con valores propios L1, L2, ..., Ln y valores

singulares S1, S2, ..., Sn, tales que

|L1| ≥ |L2| ≥ ... ≥ |Ln| y S1 ≥ S2 ≥ ... ≥ Sn,

entonces

|L1||L2|...|Li| ≤ S1S2...Si (i = 1, n− 1) (6.15)

|L1||L2|...|Ln| = S1S2...Sn (6.16)

Entonces, el PIVSVP se puede enunciar como: dados los conjuntos de valores

reales S∗ = {S∗1 , S∗

2 , ..., S∗n} y L∗ = {L∗

1, L∗2, ..., L

∗n}, tales que S∗

1 ≥ S∗2 ≥ ... ≥

S∗n y L∗

1 ≥ L∗2 ≥ ... ≥ L∗

n, y que cumplen las condiciones (6.15) y (6.16), construir

una matriz bidiagonal A ∈ <n×n cuyos valores propios sean L∗ y cuyos valores

singulares sean S∗. Como A es bidiagonal, se puede conseguir facilmente que

posea los valores propios L∗ si toma la forma

A(c) =

L∗1

c1 L∗2

c2 L∗3

. . .. . .

cn−1 L∗n

, (6.17)

quedando por calcular los parametros c1, c2, ..., cn−1 tales que los valores sin-

gulares de A(c) sean S∗. Para ello, se define la matriz simetrica

T (c) = A(c)A(c)t =

L∗21 L∗

1c1

L∗1c1 c2

1 + L∗22 L∗

2c2

L∗2c2 c2 + L∗2

3

. . .. . .

L∗n−1cn−1 c∗n−1 + L∗2

n

(6.18)

que se puede expresar como

T (c) = diag(L∗2

1 , L∗22 , ..., L∗2

n

)+

+ c21e2e

t2 + c2

2e3et3 + ... + c2

n−1enetn+

+ c1L∗1(e2e

t1 + e1e

t2) + c2L

∗2(e3e

t2 + e2e

t3) + ...+

+ cn−1L∗n−1(enet

n−1 + en−1etn) (6.19)

156

Page 158: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

donde ei es el i−esimo vector canonico (i = 1, n). Como T (c) se ha construido

de acuerdo a (6.18), los valores propios de T (c) son el cuadrado de los valores

singulares de A(c). Como se desea que A(c) tenga los valores singulares S∗,

entonces se tiene el problema de calcular el vector c ∈ <n−1 tal que los valores

propios de T (c), denotados con Li(c) (i = 1, n), sean S∗2i (i = 1, n). Para

resolver este problema se define el sistema de n − 1 ecuaciones no lineales con

n− 1 incognitas F (c) = 0 de la forma

F (c) = [Fi(c)]i=1,n−1 =[Li(c)− S∗2

i

]

i=1,n−1= 0. (6.20)

Resolver (6.20) implica que se ha encontrado la matriz T (c) (de la ecuacion

(6.18) o (6.19)) que tiene los n− 1 valores propios deseados S∗2i (i = 1, n− 1),

es decir, que se ha encontrado la matriz A(c) (de la ecuacion (6.17)) que tiene

los n− 1 valores singulares deseados S∗i (i = 1, n− 1). Como se ha partido del

supuesto de que S∗ y L∗ satisfacen (6.16):

|L∗1||L∗

2|...|L∗n| = S∗

1S∗2 ...S∗

n ⇒ S∗n =|L∗

1||L∗2|...|L∗

n|S∗

1S∗2 ...S∗

n−1

,

por lo que, resolver (6.20) es construir A(c) con los n valores singulares deseados

S∗.

Para resolver el sistema de ecuaciones no lineales (6.20) se utiliza el algoritmo

de Newton. Para ello, es necesario calcular la matriz Jacobiana de F (c), la que

esta definida como

J(c) =

[∂Fi(c)

∂cj

]

i,j=1,n−1

=

[∂Li(c)

∂cj

]

i,j=1,n−1

. (6.21)

A partir de la descomposicion en valores propios de T (c),

T (c) = Q(c)diag (L1(c), L2(c), ..., Ln(c)) Q(c)t,

donde Q(c) es ortogonal, es decir, a partir de

diag (L1(c), L2(c), ..., Ln(c)) = Q(c)tT (c)Q(c),

si se definen L ≡ L(c), Q ≡ Q(c) y T ≡ T (c), se tiene que

Li = qtiTqi (i = 1, n)

⇒ ∂Li

∂cj=

∂ (qtiTqi)

∂cj=

∂qti

∂cjTqi + qt

i

∂T

∂cjqi + qt

iT∂qi

∂cj

(i = 1, n; j = 1, n− 1). (6.22)

Definiendo J ≡ J(c) y sustituyendo (6.22) en (6.21), se tiene que

Jij = qti

∂T (c)

∂cjqi (i, j = 1, n− 1), (6.23)

157

Page 159: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

lo que se justifica porque, al ser Q ortogonal, qtiqi = 1 (i = 1, n), es decir

(qi)21 + (qi)

22 + ... + (qi)

2n = 1

⇒ 2 (qi)21

∂ (qi)1∂cj

+ 2 (qi)22

∂ (qi)2∂cj

+ ... + 2 (qi)2n

∂ (qi)n

∂cj= 0

⇒[∂ (qi)1∂cj

∂ (qi)2∂cj

...∂ (qi)n

∂cj

]

[(qi)1 (qi)2 ... (qi)n]t= 0.

⇒[

∂qi

∂cj

]t

ij=1,n−1

= 0

Por otra parte, la derivada parcial de T , definida en (6.19), con respecto a

cj es∂T

∂cj= 2cjej+1e

tj+1 + L∗

j

(ej+1e

tj + eje

tj+1

)(j = 1, n− 1),

que al sustituirla en (6.23), da como resultado

Jij = qti

[2cjej+1e

tj+1 + L∗

j

(ej+1e

tj + eje

tj+1

)]qi =

= 2cjqtiej+1e

tj+1qi + L∗

jqti

(ej+1e

tj + eje

tj+1

)qi =

= 2cjqj+1,ietj+1qi + L∗

jqj+1,ietjqi + L∗

jqj,ietj+1qi =

= 2cjqj+1,iqj+1,i + L∗jqj+1,iqj,i + L∗

jqj,iqj+1,i =

= 2cjq2j+1,i + 2L∗

jqj,iqj+1,i = 2cjq2j+1,i + 2L∗

jqj,iqj+1,i (i = 1, n− 1). (6.24)

Definida la matriz jacobiana de F (c), se puede aplicar la iteracion de Newton:

c(k) = c(k−1) − J (k−1)−1F (k−1), k = 1, 2, ...

que convergera cuadraticamente si se parte de un vector c(0) suficientemente

cercano a la solucion del sistema (6.20). Cuando el algoritmo de Newton haya

calculado dicha aproximacion, se podra construir la matriz A(c) con valores

propios L∗ y valores singulares S∗. El algoritmo correspondiente a este procedi-

miento y experimentos numericos se dan en la siguiente seccion.

6.2.1. Algoritmo MBidiag y Experimentos Numericos

El algoritmo mediante el cual se construye una matriz bidiagonal A(c) con

valores propios L∗ y valores singulares S∗ dados, esta en el Algoritmo 60.

Algunos experimentos numericos se han realizado utilizando casos del tipo

Bidiag, ejecutando el Algoritmo MBidiag en el cluster Kipling. Dado que MBidi-

ag es un algoritmo tipo Newton, se han utilizado diferentes vectores iniciales c(0),

algunos mas cercanos y otros mas alejados del vector solucion (controlada esta

distancia con δ), mostrando los resultados que este es un metodo robusto dado

que ha convergido en la mayorıa de los casos.

158

Page 160: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Algoritmo 60 MBidiag

1. Calcular T (c(0)) y A(c(0)) de acuerdo a (6.19) y (6.17)

2. Calcular la descomposicion en valores propios de T (c(0))[Q(0), diag(L(0))

]← dsyev(T (c(0)))

3. Calcular los valores singulares de A(c(0))

diag(S(0))← dgesvd(A(c(0)))

4. Para k = 0,1,2,..., Mientras ‖S(k) − S∗‖2 > tol

4.1. Calcular J (k) de acuerdo a (6.24)

4.2. Calcular F (k) de acuerdo a (6.20)

4.3. Resolver el sistema J (k)x(k) = −F (k)

x(k) ← dgesv(J (k),−F (k))

4.4. c(k+1) ← c(k) + x(k)

4.5. Calcular T (c(k+1)) y A(c(k+1)) de acuerdo a (6.19) y (6.17)

4.6. Calcular la descomposicion en valores propios de T (c(k+1))[Q(k+1), diag(L(k+1))

]← dsyev(T (c(k+1))

4.7. Calcular los valores singulares de A(c(k+1))

diag(S(k+1))← dgesvd(A(c(k+1)))

Los resultados de experimentos para tamanos pequenos pueden verse en la

Tabla 6.7, donde k denota el numero de iteraciones que MBidiag ha requerido

para converger. Para los tamanos n = {25, 50, 100} se tienen algunos problemas

de convergencia para los casos donde c(0) esta mas alejado de la solucion.

159

Page 161: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.7: Resultados del caso Bidiag con MBidiag, para n = {4, 10, 25, 50, 100}, con c(0)i =

c∗i + δ (i = 1, n)

n δ ‖S(0) − S∗‖2 ‖L(0) − L∗‖2 k ‖S(k) − S∗‖2 ‖L(k) − L∗‖2

4 1e-3 9e-4 0 3 3e-16 0

1e-2 9e-3 0 3 1e-14 0

1e-1 9e-2 0 5 8e-17 0

1e+0 1e+0 0 11 4e-14 0

1e+1 1e+1 0 13 5e-16 0

1e+2 1e+2 0 13 4e-16 0

10 1e-3 1e-3 0 3 4e-15 0

1e-2 1e-2 0 3 6e-15 0

1e-1 1e-1 0 4 4e-15 0

1e+0 2e+0 0 241 7e-15 0

1e+1 2e+1 0 713 2e-15 0

1e+2 2e+2 0 188 1e-14 0

25 1e-3 3e-3 0 3 1e-14 0

1e-2 3e-2 0 4 1e-14 0

1e-1 3e-1 0 13 1e-14 0

1e+0 3e+0 0 — — —

1e+1 3e+1 0 56 4e-13 0

1e+2 4e2 0 — — —

50 1e-3 4e-3 0 1106 4e-14 0

1e-2 4e-2 0 67 4e-14 0

1e-1 4e-1 0 — — —

1e+0 4e+0 0 — — —

1e+1 4e+1 0 6 3e-12 0

100 1e-3 6e-3 0 3 2e-13 0

1e-2 6e-2 0 3 1e-12 0

1e-1 6e-1 0 9 3e-13 0

1e+0 6e+0 0 — — —

1e+1 6e+1 0 3 1e-9 0

En la Tabla 6.8 se tienen otros resultados para casos de mayor tamano. En

todos los experimentos realizados se ha logrado converger a una solucion. Por

la forma en que se construye la matriz bidiagonal A(c), mientras que los valores

singulares deseados S∗ se aproximan mediante el metodo de Newton, los valores

propios deseados L∗ siempre son exactos, como lo muestra el error absoluto

‖L(k) − L∗‖2.

160

Page 162: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.8: Resultados del caso Bidiag con MBidiag, para n = {150, 200, 400, 500, 1000}, con

c(0)i = c∗i + δ (i = 1, n)

n δ ‖S(0) − S∗‖2 ‖L(0) − L∗‖2 k ‖S(k) − S∗‖2 ‖L(k) − L∗‖2

150 1e-1 8e-1 0 7 7e-13 0

1e+0 8e+0 0 5 4e-11 0

1e+1 6e+1 0 3 1e-9 0

1e+2 8e+2 0 72 4e-9 0

200 1e-3 9e-3 0 1 1e-8 0

1e-2 9e-2 0 1 1e-8 0

1e-1 9e-1 0 2 1e-8 0

1e+0 9e+0 0 2 3e-8 0

1e+1 9e+1 0 4 5e-9 0

1e+2 9e+2 0 5 1e-8 0

400 1e-3 1e-2 0 1 4e-8 0

1e-2 1e-1 0 1 4e-8 0

1e-1 1e+0 0 2 4e-8 0

1e+0 1e+1 0 5 4e-8 0

1e+1 1e+2 0 3 4e-8 0

500 1e-3 1e-2 0 6 4e-8 0

1e-2 1e-1 0 3 4e-8 0

1e-1 1e+0 0 27 4e-8 0

1e+0 1e+1 0 18 4e-8 0

1e+1 1e+2 0 25 4e-8 0

1e+2 1e+3 0 4 2e-8 0

1000 1e-3 2e-2 0 1 3e-7 0

1e-2 2e-1 0 1 1e-7 0

1e-1 2e+0 0 2 1e-7 0

1e+0 2e+1 0 2 2e-7 0

1e+1 2e+2 0 3 1e-7 0

1e+2 2e+3 0 5 1e-7 0

Se han implementado los metodos propuestos por Chu [Chu00] y Li y Ma-

thias [LM01] con el fin de compararlos con el metodo MBidiag, para lo que se

han tomado casos de prueba del tipo Bidiag y se han probado numericamente

con los tres metodos. Los resultados estan en la Tabla 6.9, donde

eaS = ‖S − S∗‖2, erS =‖S − S∗‖2‖S∗‖2

,

eaL = ‖L− L∗‖2, erL =‖L− L∗‖2‖L∗‖2

,

son los errores finales alcanzados por los algoritmos; S denota los valores sin-

gulares de las matrices construidas por los algoritmos y L denota los valores

propios de las mismas.

161

Page 163: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Tabla 6.9: Metodos de Chu v.s. Li-Mathias v.s. MBidiag

MBidiag Metodo Chu Metodo Li-Mathias

n eaS erS eaL erL eaS erS eaL erL eaS erS eaL erL

5 3e-16 1e-16 0 0 6e-16 1e-16 2e-16 6e-17 1e-15 2e-16 4e-16 1e-16

10 1e-14 1e-15 0 0 2e-15 1e-16 1e-15 1e-16 1e-15 1e-16 2e-15 2e-16

25 1e-14 2e-16 0 0 1e-14 2e-16 4e-15 1e-16 1e-14 2e-16 4e-15 1e-16

50 3e-12 2e-16 0 0 3e-12 2e-16 1e-12 1e-16 1e-12 2e-16 1e-12 1e-16

100 1e-9 3e-16 0 0 1e-9 3e-16 4e-10 1e-16 1e-9 3e-16 1e-9 3e-16

150 3e-9 4e-16 0 0 3e-9 4e-16 8e-10 1e-16 2e-9 3e-16 1e-9 2e-16

200 5e-9 1e-16 0 0 6e-9 5e-16 1e-9 1e-16 4e-9 4e-16 2e-8 2e-15

400 4e-8 1e-15 0 0 3e-8 9e-16 3e-9 1e-16 1e-8 5e-16 1e-7 4e-15

500 2e-8 5e-16 0 0 3e-8 7e-16 4e-9 1e-16 3e-8 6e-16 1e-8 4e-16

750 8e-8 9e-16 0 0 8e-8 1e-15 8e-9 1e-16 5e-8 6e-16 3e-7 4e-15

1000 1e-7 1e-15 0 0 1e-7 1e-15 1e-8 1e-16 5e-8 4e-16 3e-7 5e-15

1250 4e-7 2e-15 0 0 3e-7 1e-15 1e-8 1e-16 8e-8 4e-16 1e-6 1e-14

1500 2e-7 9e-16 0 0 3e-7 1e-15 2e-8 1e-16 1e-7 4e-16 7e-7 3e-15

2000 3e-7 1e-15 0 0 6e-7 1e-15 3e-8 1e-16 2e-7 6e-16 2e-6 1e-15

Los resultados de la Tabla 6.9 muestran que los tres metodos tienen el mis-

mo comportamiento con respecto a los valores singulares de las matrices que

construyen, sin embargo, la matriz construida por el metodo MBidiag siempre

tiene los valores propios deseados exactos, mientras que los otros metodos los

aproximan.

6.3. Conclusiones

El problema de la construccion de una matriz triangular inferior unidad con

valores singulares prestablecidos, visto en la Seccion 6.1, es una muestra de

un problema cuya resolucion se aborda mas natural y convenientemente bajo

un esquema de memoria compartida. Esta conclusion se da a partir del estu-

dio y analisis de diversas implementaciones de sus correspondientes algoritmos

secuenciales y paralelos.

El codigo paralelo disenado para el modelo de Memoria Distribuida alcanza

buenos niveles de paralelismo en cuanto a la fase de computo se refiere. Sin

embargo, una vez que la matriz A se ha calculado, esta queda distribuida de

forma que es necesario reunir todos sus componentes en un solo procesador;

las comunicaciones para realizar este paso merman las ganancias obtenidas del

codigo paralelo. Este problema puede tratarse si el mismo algoritmo se adapta

a un esquema de Memoria Compartida, donde las comunicaciones finales para

reunir A en un procesador no son necesarias. Mas aun, las comunicacinoes nece-

sarias para replicar z y U en el modelo de Memoria Distribuida tampoco son

necesarias en el esquema de Memoria Compartida.

162

Page 164: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Una comparativa de los modelos de Memoria Distribuida y Memoria Com-

partida del algoritmo MTriIU para el PIVSVP se resumen en la siguiente tabla:

Memoria Compartida Memoria Distribuida

* Facilidad de implementacion * Implementation Compleja

* * No requere estructuras de * Require estructuras de datos

datos adicionales de control

* * Distribucion de carga * Distribucion manual (por parte

mediante el uso de directivas del programador) de carga de trabajo

de compilador adecuadas

* * Eficiencia aceptable mayor * No alcanza prestaciones aceptables

que 90% hasta con 4 hilos por las etapas de comunicaciones

Por lo tanto, bajo el esquema de Memoria Compartida se han logrado dis-

minuir los tiempos de ejecucion secuenciales del algoritmo MTriIU y se han

obtenido muy buenas prestaciones hasta con 4 hilos de ejecucion: logrando un

Speedup de, al menos, 1.8, 2.6 y 3.6 con 2, 3 y 4 hilos de procesamiento co-

rrespondientemente, para los casos n ≥ 2000 (Figura 6.2), lo que corresponde a

una eficiencia > 90% (Tabla 6.6), obteniendo tambien una buena escalalibidad

hasta con 4 hilos. Las prestaciones se ven mermadas con mas de 4 hilos de eje-

cucion por ser Aldebaran, aunque un multiprocesador logicamente, fısicamente

una multicomputadora, por lo que, finalemente, se realizan pasos de mensajes

entre unidades de procesamiento, aunque esto sea transparente al programador.

En muchos problemas la programacion paralela bajo el esquema de memoria

compartida es mas adecuada que la de memoria distribuida, por la naturaleza

de la resolucion del problema que se esta tratando, como el presentado en este

trabajo, pues la distribucion de los calculos ha resultado ser muy sencilla y

adaptada naturalmente al esquema de memoria compartida.

Por otra parte, el metodo MBidiag para la construccion de una matriz bi-

diagonal con valores propios y valores singulares prestablecidos, propuesto en la

Seccion 6.2, ha resultado ser de alta robustez experimental, ya que en la mayorıa

de los casos probados, se ha obtenido una matriz cuyos valores singulares son

aproximados con alta exactitud para los casos de tamano pequeno y con una

exactitud aceptable para los casos de mayor tamano; mientras que los valores

propios de tal matriz estan dados directamente en su diagonal.

Ante algoritmos que resuelven el mismo problema, como el de Chu [Chu00]

y el de Li-Mathias [LM01], construyendo matrices cuasitriangular superior y

triangular inferior, respectivamente, el metodo MBidiag ha resultado ser tan

bueno como estos, alcanzando aproximaciones a los valores singulares con el

163

Page 165: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

mismo orden de exactitud. Mientras que estos autores construyen matrices trian-

gulares, MBidiag construye una matriz que es aun mas simple en estructura, ya

que construye una matriz bidiagonal, que tanto en el almacenamiento como en

los calculos para manipularla es menos costosa que las triangulares.

Con los algoritmos MTriIU y MBidiag se dan los precedentes para la inves-

tigacion de metodos que resuelven el PIVS y el PIVP simultaneamente.

164

Page 166: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Capıtulo 7

Conclusiones y Perspectivas

Esta tesis constituye una de las etapas de diseno, desarrollo e implementacion

de una biblioteca numerica secuencial y paralela que agrupa rutinas eficientes

y portables que resuelven el Problema Inverso de Valores Propios (PIVP) y el

Problema Inverso de Valores Singulares (PIVS). Especıficamente, en esta tesis

se ha estudiado un conjunto de metodos y se han disenado e implementado algo-

ritmos secuenciales y paralelos correspondientes para la resolucion del Problema

Inverso de Valores Singulares (PIVS), el que se ha clasificado en este trabajo co-

mo: Problema Inverso Aditivo de Valores Singulares (PIAVS), Problema Inverso

Estructurado de Valores Singulares (PIEVS) y Problema Inverso de Valores Sin-

gulares y Valores Propios (PIVSVP).

Para la resolucion del PIAVS, se ha tomado como base un conjunto de cua-

tro metodos tipo Newton que Friedland, Nocedal y Overton han propuesto

en [FNO87] para la resolucion de PIVP, denominados Method I, Method II,

Method III y Method IV. Lift&Project es otro metodo que constituye la base

sobre la que se ha resuelto el PIAVS. Lift&Project es un metodo que resuelve

el PIVP y que ha sido propuesto por Chen y Chu en [CC96].

Ası, en el Capıtulo 2 se han introducido los metodos FB, MI, EP y MIII para

resolver el PIAVS. FB es un metodo tipo Newton de concepcion muy sencilla que

ha sido desarrollado en esta tesis como una primera alternativa para resolver el

PIAVS cuando este constituye directamente un sistema de ecuaciones no lineales.

MI y MIII son adaptaciones de Method I y Method III, respectivamente, la

primera ha sido realizada en este trabajo y la segunda ha sido desarrollada por

Chu en [Chu92a]. EP es una adaptacion de Lift&Project y ha sido desarrollada

tambien en esta tesis.

Los algoritmos de FB, MI, EP y MIII son todos de un alto costo com-

putacional, tanto espacial como temporal. FB es el mas costoso de todos con

un orden de complejidad de tiempo de O(n6) y de complejidad de espacio de

O(n4), mientras que el resto de los algoritmos estan en el orden de O(n4) en el

165

Page 167: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

tiempo y O(n3) en el espacio. Se han identificado dos tipos de algoritmos: los de

convergencia local y los de convergencia global. FB, MI y MIII se consideran de

convergencia local (a los que les lleva pocas iteraciones converger a una solucion,

siempre que partan de una aproximacion inicial cercana a la esta), mientras que

EP se considera de convergencia global (al que le le lleva muchas iteraciones

converger a una solucion, independientemente de la aproximacion inicial dada).

De acuerdo a sus caracterısticas, MI ha sido el algoritmo mas eficiente y FB el

menos. EP ha sido el algoritmo que ha demandado menos almacenaje que MI,

MIII y FB (el que es altamente costoso). Los resultados mas importantes que se

han expuesto en este parrafo corresponden a los obtenidos del estudio teorico y

numerico de los algoritmos que se ha realizado en el Capıtulo 3.

El diseno paralelo y la implementacion de los algoritmos de los metodos

que resuelven el PIAVS son aportes de esta tesis y han derivado en rutinas

paralelas que han cumplido con el cometido de disminuir los tiempos de ejecucion

secuenciales. Se ha detallado el diseno paralelo de cada metodo en el Capıtulo 4.

En todos los disenos se ha tratado de evitar en lo posible la redistribucion de

datos y de minimizar el trafico de mensajes entre procesadores. Se han estimado

los tiempos de ejecucion teoricos que han resultado ser buenas aproximaciones de

los tiempos que se han medido de los diversos experimentos que se han realizado,

de esta forma se ha podido analizar el comportamiento de los algoritmos en

situaciones hipoteticas.

En terminos generales, MI y MIII han observado un comportamiento similar;

las prestaciones de los algoritmos paralelos correspondientes han sido suficien-

temente buenas desde el punto de vista del Speedup y la Eficiencia; ambos

pueden considerarse algoritmos paralelos con escalabilidad aceptable. El algo-

ritmo paralelo EP ha mejorado las prestaciones de MI y MIII cuando el numero

de procesadores se ha incrementado y tambien ha presentado un mejor compor-

tamiento respecto de la escalabilidad. Por otra parte, FB ha requerido de intensa

redistribucion de datos en el algoritmo paralelo correspondiente, lo que ha ido

en detrimento de sus prestaciones, sin embargo, el paralelismo da la posibilidad

de manejar problemas cuyo tamano serıa imposible de manejar secuencialmente.

Los algoritmos secuenciales y paralelos FB, MI, EP y MIII han sido disenados

sin distinguir estructuras especiales de las matrices involucradas en el PIAVS;

sin embargo, se puede incidir en la mejora del tiempo de ejecucion y de los

requerimientos de memoria al explotar las caracterısticas estructurales de las

matrices. En esta tesis se ha considerado la particularizacion de las matrices del

PIAVS en matrices tipo Toeplitz en el Capıtulo 5, definiendose ası el PIEVS.

Las caracterısticas estructurales de las matrices tipo Toeplitz, han dado lu-

gar al diseno e implementacion de un algoritmo eficiente para el calculo de los

valores singulares de una matriz tipo Hankel, basado en la FFT; de este modo,

como aporte en esta tesis se ha conseguido desarrollar un algoritmo de orden

166

Page 168: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

O(n2logn) que es de un orden de complejidad de tiempo menor que el orden

O(n3) correspondiente a la descomposicion en valores singulares de una matriz

no estructurada. Sobre esta rutina eficiente descansa la adaptacion de los algo-

ritmos MI y EP que se han redisenando para aprovechar la estructura Toeplitz,

lo que ha dado lugar a los algoritmos MIE y EPE, cuya version secuencial ha

resuelto el PIEVS eficientemente y ha disminuido los tiempos de ejecucion de

MI y EP secuenciales, correspondientemente.

Se han desarrollado tambien algoritmos paralelos MIE y EPE que han lo-

grado el objetivo de disminuir los tiempos de ejecucion secuenciales. Aunque las

prestaciones de estos algoritmos estan por debajo de las de MI y EP paralelos, al

menos con 2 y 4 procesadores presentan prestaciones aceptables para problemas

de tamano grandes.

Un problema que combina tanto el PIVP y el PIVS es el Problema Inverso

de Valores Singulares y Valores Propios (PIVSVP). Una primera aproximacion

a la resolucion del PIVSVP se ha dado en el Capıtulo 6 de esta tesis a traves

del algoritmo denominado MTriIU que resuelve un caso particular del PIVSVP.

MTriIU ha sido desarrollado por Kosowski y Smoktunowicz en [KA00]. Se han

propuesto dos algoritmos paralelos, uno disenado bajo el modelo de memoria

distribuida y otro bajo el modelo de memoria compartida. Por la naturaleza

del algoritmo MTriIU, su paralelizacion ha resultado ser mas adecuada bajo el

modelo de memoria compartida, logrando disminuir los tiempos de ejecucion se-

cuenciales y obteniendose un algoritmo con escalabilidad aceptable y con buenas

prestaciones con respecto a Speedup y Eficiencia.

Por ultimo se ha desarrollado en esta tesis un metodo denominado MBi-

diag que, al igual que los presentados por Chu en [Chu00] y por Li y Mathi-

as en [LM01], construye una matriz con valores singulares y valores propios

prestablecidos y que, a diferencia de ellos, que construyen matrices cuasi trian-

gular superior y triangular inferior, respectivamente, construye matrices bidiag-

onales, lo que supone un bajo costo computacional. Resultados experimentales

han mostrado que el metodo MBidiag ha sido altamente robusto al dar solu-

ciones satisfactorias al PIVSVP, pudiendo equipararse a los algoritmos de Chu

y Li-Mathias.

Todos los algoritmos implementados en esta tesis han sido codificados en

Fortran y han utilizado rutinas portables y eficientes de bibliotecas de libre

distribucion tales como: bibliotecas secuenciales del algebra lineal numerica,

como BLAS y LAPACK; bibliotecas paralelas del algebra lineal numerica, co-

mo PBLAS y ScaLAPACK; bibliotecas de comunicaciones a traves de paso de

mensajes, como BLACS y el entorno MPI. Dado que se han implementado al-

goritmos bajo una arquitectura de memoria compartida, se ha hecho uso del

modelo de programacion paralela OpenMP a traves de directivas de compilador

de Fortran. El uso de estas herramientas software soportan las caracterısticas

167

Page 169: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

de eficiencia y portabilidad de los algoritmos implementados.

Las arquitecturas de computadoras que han sido utilizadas en la imple-

mentacion y experimentacion de los algoritmos han sido multicomputadoras

de memoria distribuida, especıficamente clusters de PCs, ası como multiproce-

sadores de memoria compartida distribuida. Estas computadoras han sido para-

metrizadas con respecto a tiempo de flop, tiempo de latencia y ancho de banda

para estimar teoricamente el comportamiento temporal de los algoritmos, lo

que ha resultado en aproximaciones que han predicho suficientemente bien el

comportamiento experimental, de tal suerte que con este tipo de analisis se ha

podido prever el comportamiento de los algoritmos, identificando secciones de

baja productividad paralela, y ha permitiendo aplicar las medidas pertinentes

para mejorar los puntos debiles de los algoritmos siempre que ha sido posible.

A diferencia de los experimentos numericos reportados hasta el momento en

la literatura (con tamanos de problemas del orden de O({100, 101})), en esta

tesis se han realizado experimentos con problemas de gran tamano (del orden de

O({102, 103})), tanto secuencial como paralelamente, introduciendo matrices ra-

zonablemente grandes. Se han realizado experimentos numericos con diferentes

tipos de matrices, desde matrices generales (sin estructura particular ni valores

especıficos) hasta matrices estructuradas como tipo Toeplitz y triangulares.

Por lo tanto, los objetivos propuestos en esta tesis han sido alcanzados.

Se han dado los primeros pasos para la resolucion del Problema Inverso de

Valores Singulares mediante el diseno e implementacion de algoritmos paralelos

eficientes y portables.

Perspectivas

Un trabajo inmediato que se desprende del presentado en esta tesis es el

diseno adecuado y la implementacion bajo el modelo de memoria compartida

de los algoritmos que resuelven el PIAVS.

Tambien puede realizarse un estudio de los metodos propuestos para el PI-

AVS para extenderlos al manejo de valores singulares replicados, S∗1 = S∗

2 =

· · · = S∗p > S∗

p+1 · · · > S∗n; valores singulares nulos, S∗

1 > S∗2 > · · · > S∗

p =

S∗p+1 = · · · = S∗

n = 0; o al manejo de un subconjunto de valores singulares,

S∗1 > S∗

2 > · · · > S∗p , con p < n.

El diseno optimo de un algoritmo secuencial y el diseno, implementacion,

analisis teorico de prestaciones y experimentacion de un algoritmo paralelo co-

rrespondiente al metodo MBidiag es un desarrollo que se tiene previsto brinde

una nueva rutina paralela, eficiente y portable que forme parte de la biblioteca

del PIVSVP, teniendo con esto un trabajo que queda por realizar en el futuro.

Un problema fundamental en los metodos de tipo Newton es la seleccion de

la aproximacion inicial a la solucion, a partir de la cual se calculan sucesivas

168

Page 170: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

aproximaciones. Este constituye un problema abierto en esta tesis, el cual forma

parte del que llamaremos problema de globalizacion, cuya resolucion consiste,

en terminos generales, en desarrollar tecnicas que permitan resolver el PIAVS

bajo cualesquiera condiciones (entre otras, partiendo de cualquier aproximacion

inicial o partiendo de una de facil calculo y que garantice la convergencia del

algoritmo), obteniendo algoritmos que convergen bajo cualquier circunstancia,

contribuyendo ası a la robustez de los mismos.

Un tarea importante que queda por realizar es la implementacion en el cluster

MareNostrum de todos los algoritmos disenados en este trabajo, de modo que se

pueda tomar ventaja de las caracterısticas de alto rendimiento de este cluster.

Los resultados que de ello se obtengan, permitiran analizar el comportamiento

de los algoritmos y compararlos con los resultados de implementaciones en otros

clusters, como los reportados en este trabajo, para la mejora de las prestaciones

paralelas de algoritmos de alto costo computacional.

Publicaciones

El desarrollo de esta tesis ha sido soportado por el proyecto de investi-

gacion Desarrollo y Optimizacion de Codigo Paralelo para Sistemas de Audio

3D (TIC2003-08238-C02-02), subvencionado por la Comision Interministerial

de Ciencia y Tecnologıa del 1 de Diciembre de 2003 al 30 de Noviembre del 2006.

Las publicaciones al respecto de este trabajo de tesis son:

G.B.Flores, P.V. Alberti , A.M.Vidal. Solucion Paralela del Problema Inverso

Simetrico Multiplicativo de Valores Propios. XIII Jornadas de Paralelismo. Ac-

tas de las XIII Jornadas de Paralelismo. ISBN: 84-8409-159-7. Septiembre, 2002.

Lleida, Espana.

G.Flores, A.M.Vidal. Paralelizacion del Metodo de Elevacion y Proyeccion para

la Resolucion del Problema Inverso de Valores Singulares. Congreso interna-

cional de Computacion Paralela, Distribuida y Aplicaciones. Actas del Congre-

sos. ISBN: 968-5823-04-09. Septiembre, 2003. Linares, Mexico.

Georgina Flores Becerra, Antonio M. Vidal Macia. Parallel Global and Local

Convergent Algorithms for Solving the Inverse Additive Singular Value Problem.

4th WSEAS International Conference on Systems Theory and Scientific Com-

putation (ISTASC’ 04). Actas en CD. ISBN: 960-8547-06-8. Diciembre, 2004.

Puerto de la Cruz (Espana).

Publicacion en: Wseas Transactions on Circuits and Systems (ISSN: 1109-2734).

Volumen: 3, Issue 10, pp 2241-2246. Diciembre, 2004.

169

Page 171: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

D.A.Campo, F.J.Correa, G.Flores, A.M.Vidal. Parallel Global Convergent Algo-

rithms for solving the Inverse Additive Singular Value Problem. IADIS Interna-

tional Conference 2005. Proceedings of the Conference. Febrero, 2005. Algarve

(Portugal).

Georgina Flores Becerra, Vıctor M. Garcıa, Antonio M. Vidal. Numerical Ex-

periments on the Solution of the Inverse Additive Singular Value Problem. Inter-

national Conference on Computacional Science 2005. Proceedings of the Con-

ference. Mayo, 2005. Atlanta (USA).

Publicacion en: Lecture Notes in Computer Science (ISSN:0302-9743). Volumen:

3514, pp 17-24. Mayo, 2005.

Georgina Flores Becerra, Vıctor M. Garcıa, Antonio M. Vidal. Parallelization of

a Method for the Solution of the Inverse Additive Singular Value Problem. 8th

WSEAS International Conference on APPLIED MATHEMATICS (aceptado).

Diciembre, 2005. Islas Canarias (Espana).

Georgina Flores Becerra, Vıctor M. Garcıa, Antonio M. Vidal. Efficient Parallel

Algorithm for Constructing a Unit Triangular Matrix with Prescribed Singular

Values. 7th International Meeting on High Performance Computing for Compu-

tational Science (VECPAR’06) (sometido). Julio, 2006. Rıo de Janeiro, Brasil.

170

Page 172: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

Bibliografıa

[ABB+95] E. Anderson, Z. Bai, C. Bishof, Demmel J., and Dongarra J. LA-

PACK User Guide; Second edition. SIAM, 1995.

[BCC97] L.S. Blackford, J. Choi, and A. Clearly. ScaLAPACK User’s

Guide. SIAM, 1997.

[BMX03] Zheng−jian Bai, Benedetta Morini, and Shu−fang Xu. The inter-

cept method for inverse singular value problems. 2003.

[Bro91] R.W. Brockett. Dynamical sustems that sort lists and solve

the linear programming problems. Proc. 27th IEEE Conf. De-

cision and Control and Linear Alg. Appl., -,146:799–803,79–91,

1988,1991.

[BV99] J.M. Badıa and A.M. Vidal. Resolucion paralela del problema in-

verso de los valores propios de matrices de toeplitz reales simetri-

cas. Technical Report DI01-04/99, Departamento de Informatica,

Universidad Jaime I, 1999.

[CBM03] Raymond H. Chan, Zheng−jian Bai, and Benedetta Morigi. On

the convergence rate of a newton-like method for inverse eigenva-

lue and inverse singular value problems. International Journal of

Applications Mathematics, 3, 2003.

[CC96] Xuzhou Chen and Moody T. Chu. On the least squares solu-

tion of inverse eigenvalue problems. SIAM,Journal on Numerical

Analysis, 33(6), 1996.

[CCFV05] D.A. Campo, F.J. Correa, G. Flores, and A.M. Vidal. Parallel

global convergent algorithms for solving the inverse additive sin-

gular value problem. Proceedings of the IADIS International Con-

ference. Applied Computing, pages 49–56, 2005.

[CDD+95] J. Choi, J. Demmel, I. Dhillon, J Dongarra, S. Ostrouchov, A. Pe-

titet, K. Stanley, D Walker, and R.C. Whaley. Scalapack: A

171

Page 173: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

portable linear algebra library for distributed memory computers.

design issues and performance. 1995.

[CDK+01] R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, and

R. Menon. Parallel Programming in OpenMP. Morgan Kaufmann

Publishers, 2001.

[CDO+95] J. Choi, J. Dongarra, S. Ostrouchov, A. Petittet, and D. Walker.

A proposal for a set of parallel basic linear algebra subprograms.

Technical report ut−cs−95−292, Department of Computer Scien-

ce, University of Tennessee, 1995.

[Chu92a] Moody T. Chu. Numerical methods for inverse singular value

problems. SIAM, Journal Numerical Analysis, 29, 1992.

[Chu92b] M.T. Chu. Matrix differential equations: A continuous realiza-

tion process for linear algebra problems. Nonlinear Anal., TMA,

1(12):1125–1146, 1992.

[Chu98] Moody T. Chu. Inverse eigenvalue problems. SIAM, Review, 40,

1998.

[Chu99] Moody T. Chu. On constructing matrices with prescribed singular

values and diagonal elements. Journal Linear Algebra and its

Applications, 288:11–22, 1999.

[Chu00] Moddy T. Chu. A fast recursive algorithm for constructing ma-

trices with prescribed eigenvalues and singular values. SIAM,

Journal on Numerical Analysis, 37(3):1004–1020, 2000.

[Cor03] Intel Corporation. Intel(R) Fortran Language Reference (online

version). 2003.

[Cor04] Intel Corporation. Intel (R) Math Kernel Library. Reference Ma-

nual. 2004.

[DD95] J. Dongarra and T. Dunigan. Message-passing performance of

various computers. Technical Report, UT-CS-95-299. Department

of Computer Science, University of Tennessee, 1995.

[DHvdV93] J. Demmel, M. Heath, and H. van der Vorst. Parallel numerical

linear algebra. 1993.

[DS83] J.E. Dennis and R.B. Schnabel. Numerical Methods for Uncon-

strained Optimization and Nonlinear Equations. Prentice Hall,

1983.

172

Page 174: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

[FBGV05] G. Flores-Becerra, V.M. Garcıa, and A.M. Vidal. Numerical ex-

periments on the solution of the inverse additive singular value

problem. ICCS 2005: 5th International Conference. Proceedings,

Part I, pages 17–24, 2005.

[FBVM03] Georgina Flores Becerra and Antonio M. Vidal Macia. Parale-

lizacion del metodo de elevacion y proyeccion para la resolucion

del problema inverso de valores singulares. Primer Congreso In-

ternacional de Computacion Paralela, Distribuida y Aplicaciones,

2003. Linares,Mexico.

[FNO87] S. Friedland, J.Nocedal, and M.L. Overton. The formulation and

analysis of numerical methods for inverse eigenvalue problems.

SIAM, Journal on Numerical Analysis, 24(3), 1987.

[FVA02] G. B. Flores, A. M. Vidal, and P. V. Alberti. Solucion paralela

del problema inverso simetrico multiplicativo de valores propios.

XIII Jornadas de Paralelismo, 2002. Lleida, Espana.

[Giu02] Mauro Giudici. Some problems for the applicat of inverse tech-

niques to environmental modelling. IndAM Workshop, Inverse

Problems and Applications, 2002.

[GLS94] W. Groupp, E. Lusk, and A. Skjellum. Using MPI: Portable Pa-

rallel Programming with Message Passing Interface. MIT Press,

1994.

[Gra98] Norman Gray. Course: Numerical astronomy 1. inverse problems.

Department of Physics and Astronomy. University of Glasgow,

1998.

[Gro99] Charles W. Groetsch. Inverse Problems. Activities for Undergra-

duates. The mathematical association of America, 1999.

[GvL96] G.H. Golub and C.F. van Loan. Matrix computations. Johns

Hopkins University Press, 1996.

[HDDCH88] S. Hammarling, J. Dongarra, J. Du Croz, and Richard J. Hanson.

An extended set of fortran basic linear algebra subroutines. ACM

Trans. Mathemathical Software, 1988.

[Hor54] A. Horn. On the eigenvalues of a matrix with prescribed singular

values. Proc. Amer. Math. Soc., 5:4, 1954.

[KA00] Przemyslaw Kosowski and Smoktunowicz Alicja. On constructing

unit triangular matrices with prescribed singular values. Compu-

ting, 64(3):279–285, 2000.

173

Page 175: Algoritmos Secuenciales y Paralelos para la Resoluci on ... · Estimaci on de la complejidad de tiempo y tiempos de eje- ... Ejemplaresde este tipo de problemas son los ... permitan

[Kel95] C. Kelley. Iterative Methods for Linear and Nonlinear Equations.

SIAM, 1995.

[KGGKrp94] V. Kumar, A. Grama, A. Gupta, and G. Kary pis. Introduction

to Parallel Computing. Desing and analysis algorithms. The Ben-

jamin/Cummings Publishing Company, 1994.

[LM01] Chi-Kwong Li and Roy Mathias. Construction of matrices with

prescribed singular values and eigenvalues. BIT, 41(1):115–126,

2001.

[MT97] I. Martin and F. Tirado. Relationships beteen efficiency and exe-

cution time of full multigrid methods on parallel computers. IEEE

Transactions on Parallel and Distributed Systems, 8(6), 1997.

[Pol03] Tiziano Politi. A discrete approach for the inverse singular value

problem in some quadratic group. Workshop: Numerical Methods

for Structured System. International Conference on Computation-

al Science, 2003.

[SG03] Inc. Silicon Graphics. Scientific Computing Software Li-

brary(SCSL) User’s guide. 2003.

[TF03] S. M. Tan and Colin Fox. Inverse problems. lecture courses. De-

partment of Physics, The University of Auckland, 2003.

[Tre97] W.F. Trench. Numerical solution of the inverse eigenvalue pro-

blem for real symmetric toeplitz matrices. SIAM, Journal on

Scientific Computing, 18(6):1722–1736, 1997.

[TV82] Albert Tarantola and Bernard Valette. Generalized nonlinear in-

verse problems solved using the least squares criterion. Reviews

of Geophysics and Space Physics, 20(2), 1982.

[VA01] A.M. Vidal and P.V. Alberti. Una implementacion paralela de una

solucion de mınimos cuadrados para el problema inverso aditivo

de valores propios. XII Jornadas de Paralelismo, 2001. Valen-

cia,Espana.

[VA02] A.M. Vidal and P.V. Alberti. Una aproximacion paralela al pro-

blema inverso aditivo de valores propios. Metodos Numericos en

Ingenierıa V, SEMNI, 2002.

[VL92] C. Van Loan. Computational Frameworks for the Fast Fourier

Transform. SIAM, 1992.

[VP00] A.M. Vidal and J.L. Perez. Introduccion a la programacion en

MPI. Publicaciones Universidad Politecnica de Valencia, 2000.

174


Recommended