TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG...

174
Departamento de Arquitectura de Computadores Universidad de M´ alaga TESIS DOCTORAL Simulaci´ on en arquitecturas paralelas de la propagaci´ on de ondas en medios excitables Eva Mart´ ınez Ortigosa M´alaga, febrero de 2002

Transcript of TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG...

Page 1: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Departamento de Arquitectura de ComputadoresUniversidad de Malaga

TESIS DOCTORAL

Simulacion en arquitecturas paralelas de lapropagacion de ondas en medios excitables

Eva Martınez Ortigosa

Malaga, febrero de 2002

Page 2: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 3: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Dr. Luis Felipe Romero Gomez Dr. Juan I. Ramos SobradosTitular de Universidad del Catedratico de Universidad delDepartamento de Arquitectura Departamento de Lenguajes yde Computadores Ciencias de la ComputacionUniversidad de Malaga Universidad de Malaga

CERTIFICAN:

Que la memoria titulada “Simulacion en arquitecturas paralelas de la propagacionde ondas en medios excitables”, ha sido realizada por Da. Eva Martınez Ortigosa bajonuestra direccion en el Departamento de Arquitectura de Computadores de la Uni-versidad de Malaga y concluye la Tesis que presenta para optar al grado de DoctoraIngeniera en Informatica.

Malaga, a 8 de febrero de 2002

Fdo: Dr. Luis Felipe Romero Gomez Fdo: Dr. Juan I. Ramos SobradosDirector de la Tesis Doctoral Director de la Tesis Doctoral

Fdo: Dr. Emilio Lopez ZapataDirector del Departamento deArquitectura de Computadores

Page 4: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 5: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Agradecimientos

Han sido muchas las personas que me han ayudado, tanto en el plano profesional comoen el personal, y a las que quiero expresar mi enorme agradecimiento.

En primer lugar quiero agradecer a D. Luis Felipe Romero Gomez su constantededicacion a mi trabajo y su apoyo personal e incondicional, y a D. Juan IgnacioRamos Sobrados su inestimable asesoramiento en el complejo mundo de los metodosnumericos. A ambos agradezco la excelente direccion que han llevado a cabo en estatesis y su valiosa ayuda durante todo el proceso de realizacion del trabajo.

Agradezco tambien a D. Emilio Lopez Zapata, director del departamento, el rigorcientıfico que ha exigido siempre en esta tesis y la confianza que ha depositado en mı.

A todos los companeros del departamento de Arquitectura de Computadores de laUniversidad de Malaga, por formar una gran familia, y con quienes trabajar resultauna agradable tarea. Especialmente a Javi, por su animo y apoyo constantes y suinagotable paciencia; a Jose Ma, por la motivacion que siempre supo transmitirme; ya Sergio, por sus consejos y comentarios en numerosos temas relacionados con estatesis. Tambien a Mario, Felipe, Ma Carmen, Magda, Manolo, Ma Antonia, Eladio,Oscar, Gerardo, Francisco, Julian y Andres, con quienes he compartido muchos buenosmomentos. Agradezco a Patricia, antigua companera del departamento, su ayuda yapoyo permanentes.

Al centro de supercomputacion complutense (CSC) de la Universidad Complutensede Madrid, y al centro de computacion paralela de Edimburgo (EPCC), por habernospermitido el acceso a sus plataformas Origin2000, Cray T3E, SUN HPC6500 y SUNSunfire 6800.

Al Ministerio de Educacion y Cultura que, mediante la concesion de una beca deFormacion del Personal Docente e Investigador, ha hecho posible la realizacion de estetrabajo, y sin cuyo soporte hubiera sido muy difıcil poder introducirme en el mundode la investigacion. Agradecemos tambien el soporte y financiacion de este trabajo alproyectos TIC2000-1658, y al programa TRACS (Training and Research on AdvancedComputing Systems) del EPCC de Edimburgo.

A la memoria de mi madre, quien siempre estuvo preocupada por mi felicidad, lo-grando con su dulzura, carino y dedicacion reconfortarme en todo momento. A ella ledebo ser quien soy. A mi familia, por su apoyo incondicional en todas mis decisiones,y por su inestimable ayuda en todas las ocasiones que la he requerido. A mi hermanaPilar, a la que debo tanto, porque su carino y especial dedicacion han sido imprescindi-bles para poder seguir adelante; tiene mi admiracion y devocion. A mi hermana Marıa,porque su carino, comprension y companıa han sido indispensables para mı en estosultimos anos.

Finalmente, a Antonio, porque sin su apoyo, su paciencia, su comprension, suspalabras de animo y su inagotable confianza en mı, no podrıa haber realizado estatesis. Sin su ayuda no habrıa llegado hasta aquı.

Page 6: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 7: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A mi madre

Page 8: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 9: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

There are 3 rules to follow when parallelizing large codes. Unfortunately, no oneknows what these rules are.

W. Somerset Maugham y Gary Montry

The underlying physical laws necessary for the mathematical theory of a large partof physics and the whole of chemistry are thus completely known, and the difficulty isonly that the exact solution of these laws leads to equations much too complicated to besoluble.

Dirac, 1929

Page 10: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 11: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Indice general

Indice general VII

Indice de figuras XI

Prologo XV

1.- Ondas espirales 1

1.1. Modelo de Belousov–Zhabotinskii . . . . . . . . . . . . . . . . . . . . . 2

1.1.1. Breves notas historicas . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.2. Ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2. Referencias bibliograficas . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Problemas propuestos para ondas espirales en tres dimensiones . . . . . 6

1.3.1. Efectos de la iluminacion . . . . . . . . . . . . . . . . . . . . . . 7

1.3.2. Efectos de los campos de adveccion . . . . . . . . . . . . . . . . 9

1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.- Metodos numericos 13

2.1. Tipos de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2. Metodos de diferencias finitas . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1. Discretizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.2. Errores, estabilidad y convergencia . . . . . . . . . . . . . . . . 19

2.2.3. Metodos explıcitos . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.4. Metodos implıcitos . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3. Tecnicas de linealizacion . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4. Sistemas lineales de ecuaciones algebraicas . . . . . . . . . . . . . . . . 25

2.5. Matrices dispersas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

vii

Page 12: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

VIII INDICE GENERAL

2.5.1. Tipos de matrices dispersas . . . . . . . . . . . . . . . . . . . . 30

2.5.2. Tecnicas de almacenamiento . . . . . . . . . . . . . . . . . . . . 32

2.6. Requisitos computacionales . . . . . . . . . . . . . . . . . . . . . . . . 33

3.- Integracion numerica e implementacion paralela 35

3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1.1. El sistema de ecuaciones diferenciales . . . . . . . . . . . . . . . 36

3.1.2. El dominio computacional . . . . . . . . . . . . . . . . . . . . . 36

3.2. Integracion del sistema de ecuaciones . . . . . . . . . . . . . . . . . . . 37

3.2.1. Metodo Θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.2. Metodo del Gradiente Conjugado . . . . . . . . . . . . . . . . . 40

3.2.3. Metodo AF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.3. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3.2. Paralelismo de los metodos . . . . . . . . . . . . . . . . . . . . . 45

3.3.3. Paradigmas de programacion . . . . . . . . . . . . . . . . . . . 48

3.3.4. Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.3.5. Reordenacion de la computacion . . . . . . . . . . . . . . . . . . 52

3.3.6. Variante de Gear et al. para PCG . . . . . . . . . . . . . . . . . 54

3.3.7. Metodo de Gear con reordenacion . . . . . . . . . . . . . . . . . 54

3.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.4.1. Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.4.2. Analisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . 59

3.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.- Implementacion optima del metodo PCG para matrices en banda 67

4.1. Implementacion optima del metodo PCG para matrices en banda . . . 67

4.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.2.1. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.3. Codigo mixto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.3.2. Implementacion del codigo mixto . . . . . . . . . . . . . . . . . 77

Page 13: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

INDICE GENERAL IX

4.3.3. Intercambio de mensajes y sincronizacion . . . . . . . . . . . . . 80

4.3.4. Equilibrio de carga . . . . . . . . . . . . . . . . . . . . . . . . . 82

4.3.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.3.6. Analisis de los resultados . . . . . . . . . . . . . . . . . . . . . . 85

4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.- Resultados numericos 89

5.1. Aspectos generales de las simulaciones numericas . . . . . . . . . . . . 90

5.2. Propagacion de ondas espirales en un medio excitable 3D . . . . . . . 90

5.2.1. Analisis de los resultados . . . . . . . . . . . . . . . . . . . . . . 91

5.3. Efectos de la iluminacion . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.3.1. Iluminacion localizada compacta . . . . . . . . . . . . . . . . . . 94

5.3.2. Iluminacion localizada “en banda” . . . . . . . . . . . . . . . . . 97

5.4. Efectos de los campos de adveccion . . . . . . . . . . . . . . . . . . . . 101

5.4.1. Campo irrotacional . . . . . . . . . . . . . . . . . . . . . . . . . 103

5.4.2. Campo rotacional . . . . . . . . . . . . . . . . . . . . . . . . . . 106

5.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.- Conclusiones y principales aportaciones 117

A.- Computacion paralela 121

A.1. Arquitecturas paralelas . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

A.2. Modelos de programacion paralela . . . . . . . . . . . . . . . . . . . . . 127

A.2.1. Modelo de programacion de paso de mensajes . . . . . . . . . . 128

A.2.2. Modelo de programacion de memoria compartida . . . . . . . . 129

A.2.3. Modelo de paralelismo de datos . . . . . . . . . . . . . . . . . . 129

A.3. Medidas para la evaluacion de los algoritmos paralelos . . . . . . . . . 130

B.- Tecnicas de visualizacion 135

B.1. Isosuperficies con MATLAB . . . . . . . . . . . . . . . . . . . . . . . . 136

B.2. Opacidad variable con Ogle y AVS . . . . . . . . . . . . . . . . . . . . 136

C.- Ordenamientos topologicos 141

Page 14: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

X INDICE GENERAL

D.- Obtencion del metodo de Jacobi a partir de PCG 143

Bibliografıa 145

Page 15: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Indice de figuras

1.1. Dominio computacional Ω. . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2. (a) Iluminacion localizada compacta. (b) Iluminacion localizada en banda. . . . 8

2.1. Dominios continuos y discretos. . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2. Matriz tridiagonal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3. Matriz dispersa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4. Diferentes patrones para un mismo sistema. . . . . . . . . . . . . . . . . . . 31

2.5. Distribucion por bloques de una matriz en banda. . . . . . . . . . . . . . . . 31

3.1. Patron de la matriz de discretizacion. . . . . . . . . . . . . . . . . . . . . . 39

3.2. DBCD en AF: (a) para resolucion en x e y, (b) para resolucion en z. . . . . . 46

3.3. Eficiencia relativa de los metodos AF y PCG. . . . . . . . . . . . . . . . . . 47

3.4. Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-

dicionador de Cholesky (b). Cada nodo representa una operacion de calculo del

correspondiente escalar o vector. Las lıneas punteadas indican dependencias entre

iteraciones diferentes y los cırculos negros mensajes. . . . . . . . . . . . . . . 53

3.5. Metodo de Gear et al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.6. Reordenacion de operaciones para el metodo de Gear et al. . . . . . . . . . . . 56

3.7. Tiempos de ejecucion del programa de memoria compartida para diferentes ta-

manos de malla (Origin2000). En el eje x se representa la resolucion en cada una

de las tres dimensiones espaciales. . . . . . . . . . . . . . . . . . . . . . . . 62

3.8. Tiempos de ejecucion (unidad= 10−5 segundos) del programa SHMEM para

diferentes tamanos de malla (Origin2000, 8 procesadores). Las flechas indican el

incremento en el tiempo de ejecucion debido al coste del desequilibrio de carga. 63

3.9. Numero de operaciones en punto flotante por procesador, para diferentes tamanos

de malla y 8 procesadores. El factor de escala es 720 (110 flops por nodo para

el calculo del sistema, 6 flops para la actualizacion de la solucion y 604 para el

gradiente conjugado, en el cual se ejecutan 54 operaciones en cada una de las 10

iteraciones empleadas). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.10. Tiempos de ejecucion SHMEM para diferentes valores de g comparados con el

numero de operaciones en punto flotante. . . . . . . . . . . . . . . . . . . . 64

xi

Page 16: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

XII INDICE DE FIGURAS

4.1. Codigos mixtos para arquitecturas mixtas. . . . . . . . . . . . . . . . . . . . 76

4.2. Valores de las variables implicadas en el reparto de una malla de 10 × 10 × 50puntos entre dos nodos, seguido de un reparto de cada nodo entre dos hebras. . 79

4.3. Codigo mixto. Reduccion en dos fases. . . . . . . . . . . . . . . . . . . . . . 81

4.4. Codigo mixto. Reduccion en una fase. . . . . . . . . . . . . . . . . . . . . . 82

5.1. Isosuperficies de u = 0,72 en los tiempos (de izquierda a derecha, de arriba a

abajo) t =90,008, 90,176, 90,288, 90,536, 90,640, 90,792, 90,880, 91,016 y 91,120. 92

5.2. Isosuperficies de v = 0,18 en los tiempos (de izquierda a derecha, de arriba a

abajo) t =90,008, 90,176, 90,288, 90,536, 90,640, 90,792, 90,880, 91,016, y 91,120. 93

5.3. Evolucion temporal de u y v en los puntos de monitorizacion: (25δ,25δ,25δ) y

(37δ,37δ,13δ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.4. Concentracion del activador, u, en los tiempos (de izquierda a derecha, de arriba

a abajo) t =60,00, 60,20, 60,38, 60,56, 60,78, 61,00, 61,10, 61,20 y 61,30. . . 95

5.5. Concentracion del activador, v, en los tiempos (de izquierda a derecha, de arriba

a abajo) t =60,00, 60,20, 60,38, 60,56, 60,78, 61,00, 61,10, 61,20 y 61,30. . . 96

5.6. Evolucion temporal de u y v en los puntos de monitorizacion: (25δ,25δ,25δ) y

(37δ,37δ,13δ), para iluminacion localizada compacta. . . . . . . . . . . . . . 97

5.7. Concentracion del activador, u, en los tiempos (de izquierda a derecha, de arriba

a abajo) t =62,50, 62,60, 62,66, 62,70, 62,82, 62,86, 62,90, 62,98 y 63,04. . . 98

5.8. Concentracion del inhibidor, v, en los tiempos (de izquierda a derecha, de arriba

a abajo) t =62,50, 62,60, 62,66, 62,70, 62,82, 62,86, 62,90, 62,98 y 63,04. . . 99

5.9. Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y

(37δ,37δ,13δ), para iluminacion en banda. . . . . . . . . . . . . . . . . . . . 100

5.10. Isosuperficies de u = 0,90·umax donde umax(t) = max[u(x, y, z, t)] para (x, y, z) ∈ Ωen (de izquierda a derecha, de arriba a abajo) t = 94,440, 94,500, 94,644, 94,724,

94,740, 94,764, 94,948, 94,996 y 95,076 para m = n = p = 1. . . . . . . . . 104

5.11. Isosuperficies de v =0,90·vmax donde vmax(t) = max[v(x, y, z, t)] para (x, y, z) ∈ Ωen (de izquierda a derecha, de arriba a abajo) t = 94,505, 94,532, 94,844, 94,924,

94,956, 94,980, 95,004, 95,100 y 95,204 para m = n = p = 1. . . . . . . . . 105

5.12. Concentracion de u en los tiempos (de izquierda a derecha, de arriba a abajo) t

= 94,440, 94,500, 94,644, 94,724, 94,740, 94,764, 94,948, 94,996 y 95,076 para

m = n = p = 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

5.13. Concentracion de v en los tiempos (de izquierda a derecha, de arriba a abajo) t

= 94,505, 94,532, 94,844, 94,924, 94,956, 94,980, 95,004, 95,100 y 95,204 para

m = n = p = 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.14. Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y

(37δ,37δ,13δ), para el caso m = p = n = 1 . . . . . . . . . . . . . . . . . . 108

Page 17: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

INDICE DE FIGURAS XIII

5.15. Isosuperficies de u = 0,72 en (de izquierda a derecha, de arriba a abajo) t =

93,032, 93,208, 93,216, 93,312, 93,368, 93,384, 93,432, 93,554 y 93,568 para

m = p = 1 y n = 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

5.16. Isosuperficies de u = 0,72 en (de izquierda a derecha, de arriba a abajo) t =

93,600, 93,624, 93,648, 93,680, 93,704, 93,728, 93,912, 93,936 y 94,016 para

m = p = 1 y n = 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

5.17. Concentraciones de u en (de izquierda a derecha, de arriba a abajo) t = 93,032,

93,208, 93,216, 93,312, 93,368, 93,384, 93,432, 93,554 y 93,568 para m = p = 1y n = 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

5.18. Concentraciones de u en (de izquierda a derecha, de arriba a abajo) t = 93,600,

93,624, 93,648, 93,680, 93,704, 93,728, 93,912, 93,936 y 94,016 para m = p = 1y n = 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

5.19. Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y

(37δ,37δ,13δ), para el caso m = p = 1 y n = 3. . . . . . . . . . . . . . . . 113

A.1. Estructura de un computador SISD. . . . . . . . . . . . . . . . . . . . . . . 123

A.2. Estructura de un computador MISD. . . . . . . . . . . . . . . . . . . . . . . 123

A.3. Estructura de un computador SIMD. . . . . . . . . . . . . . . . . . . . . . . 124

A.4. Estructura de un computador MIMD en memoria compartida. . . . . . . . . . 125

A.5. Estructura de un computador MIMD en memoria distribuida. . . . . . . . . . 126

A.6. Estructura de un computador MIMD en memoria compartida/distribuida. . . . 127

B.1. Esquema generico en AVS para un renderizado de volumenes. . . . . . . . . . 138

B.2. Esquema completo de AVS para visualizacion de ondas espirales. . . . . . . . . 138

Page 18: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 19: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Prologo

Un modelo nos permite representar simplificadamente el mundo que nos rodea o aque-llo que nos gustarıa conocer y no esta a nuestro alcance. Desde el plano de una ciudadhasta la composicion mas abstracta de Kandinsky, nos encontramos rodeados de mo-delos. Muchos de ellos se utilizan simplemente para expresar un sentimiento, evocar unrecuerdo o agradar al observador. Sin embargo, en la mayorıa de los casos, el modelotiene una funcion mas pragmatica: resolver problemas mediante un proceso simple,eficiente e inocuo.

Con las primeras civilizaciones surgio un interes por modelar el comportamiento delos sistemas fısicos mediante leyes. Sin embargo, ni los egipcios, ni despues los griegos,tuvieron a su disposicion las herramientas adecuadas para formalizar simbolicamenteestas reglas. Fueron los indios y los arabes los que, con la introduccion de un sistema denumeracion posicional y del algebra, pusieron en manos de los cientıficos de la epoca losmedios adecuados para el desarrollo de las leyes fısicas. Pero las matematicas existentesen aquel perıodo tenıan ciertas limitaciones que impedıan modelar el comportamientode sistemas mas complejos. Durante el siglo XVII, Newton y Leibnitz desarrollaronlos conceptos fundamentales del calculo diferencial e integral, lo cual supuso un pasode gigante en la exactitud de las representaciones. Sin embargo, no siempre fue posi-ble la resolucion de ecuaciones diferenciales por metodos analıticos exactos. En 1768,Euler utilizo aproximaciones a los operadores diferenciales para conseguir una solucionaproximada de este tipo de ecuaciones. Y aunque este hito marco el nacimiento de losmetodos numericos para ecuaciones diferenciales ordinarias, estos no se pudieron uti-lizar eficazmente hasta el siglo XX, debido al gran numero de operaciones algebraicasque habıa que realizar, y que, sin la ayuda de calculadoras, no hubieran sido abordables.

Inicialmente, las calculadoras electromecanicas, y posteriormente los computado-res electronicos digitales han hecho posible la resolucion de problemas cada vez mascomplejos y de forma cada vez mas rapida. Sin embargo, el incremento en la capaci-dad de calculo de los computadores durante las ultimas decadas ha despertado en loscientıficos el interes por problemas de gran complejidad, que hasta ahora se considera-ban intratables. La potencia de los computadores actuales no solo permite modelar deforma fidedigna sistemas de gran complejidad, sino tambien incorporar una evoluciontemporal al modelo acorde con la realidad propia del sistema. Es lo que se conoce comosimulacion.

Esta tesis trata sobre la simulacion de un sistema fısico: ondas espirales que sepropagan en un medio reactivo–difusivo tridimensional, un fenomeno que se presentaen la realidad con mucha mas frecuencia de lo que en principio pudiera parecer; enefecto, las ondas espirales se encuentran presentes en fenomenos de combustion, en

xv

Page 20: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

XVI Prologo

la dispersion atmosferica, e incluso ayudan a explicar la forma de las galaxias. Perotal vez la razon mas importante que justifica su estudio es su vinculacion con unade las principales causas de muerte en nuestra sociedad: el infarto de corazon. Sonnumerosos los estudios que han puesto de manifiesto la presencia de ondas espiralesen los fenomenos de arritmias cardıacas, por lo que un conocimiento profundo de sucomportamiento puede darnos las pistas necesarias para combatirlas y evitar los danosque producen.

La propagacion de estas ondas, al igual que otros muchos problemas fısicos, sedescriben mediante ecuaciones diferenciales en derivadas parciales; en particular, sonecuaciones no lineales de reaccion–difusion que deben ser resueltas mediante meto-dos numericos y por ello, desarrollaremos en este trabajo una herramienta fiable parasimular su comportamiento y conocer su evolucion.

La mayorıa de los estudios relacionados con este problema se han desarrollado enmedios de dos dimensiones. Esto se debe, en gran parte, al coste de las computaciones entres dimensiones, y al hecho de que la mayorıa de los estudios experimentales conciernena fenomenos bidimensionales. Existe, por tanto, la necesidad de estudiar y resolver elproblema en medios excitables tridimensionales para poder aplicar los resultados asistemas reales en los que se presenten ondas espirales.

Para obtener una solucion suficientemente fiable de un problema de alta complejidadcomo el que se plantea en este trabajo, es necesaria una potencia de calculo que superela capacidad de los computadores secuenciales actuales. Se hace imprescindible el usode arquitecturas paralelas para obtener soluciones adecuadas en tiempos razonables.La computacion paralela tiene como objetivo producir los mismos resultados que lasecuencial, pero empleando menos tiempo gracias al uso de multiples procesadores.

El coste en desarrollo de software paralelo es muy alto, ya que el programador, en eldiseno de sus programas, debe considerar aspectos propios de la arquitectura de la ma-quina y analizar el algoritmo que trata de paralelizar desde una perspectiva diferente.Para explotar el paralelismo de un programa secuencial se necesita conocer su com-portamiento, algo que no siempre resulta sencillo. Ademas, una buena paralelizaciona menudo requiere cambiar el comportamiento del codigo secuencial, ya sea reprogra-mando partes del algoritmo, o modificando las estructuras de datos involucradas.

Existen bibliotecas paralelas que facilitan la programacion de los computadores pa-ralelos (MPI, PVM, OpenMP, etc.). Con ellas, es el programador quien lleva a cabo casiıntegramente la paralelizacion. Tambien se han desarrollado compiladores que generancodigo paralelo a partir del codigo secuencial; sin embargo, los resultados no son muysatisfactorios, especialmente cuando se trabaja con problemas irregulares. Es frecuenteque se pierda eficiencia a medida que se automatiza la paralelizacion del programa.Hoy en dıa puede afirmarse que los programas paralelos mas eficientes se generan deforma no automatica.

Un objetivo importante de este trabajo es el desarrollo de una aplicacion paralelaeficiente que reduzca significativamente los tiempos de ejecucion de las simulaciones,aportando soluciones cuya validez sea extrapolable a numerosas aplicaciones cientıficas.Esta tarea no se puede realizar sin tener en cuenta el abundante material existente,por lo que sera preciso un analisis de las herramientas mas relevantes para detectar

Page 21: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Prologo XVII

sus deficiencias, de forma que las soluciones propuestas tengan el mayor ambito deaplicacion.

A continuacion se resumen los capıtulos en los que se ha estructurado esta memoria.

En el capıtulo uno se introduce el problema de las ondas espirales y su descripcionmediante un modelo simplificado de las ecuaciones de cinetica quımica de Belousov–Zhabotinskii — modelo Oregonator—. Ademas se presenta una recopilacion bibliografi-ca de los trabajos mas relevantes sobre ondas espirales, y se plantean matematicamentelas cuestiones concretas que se resuelven en este trabajo.

Las ecuaciones del modelo Oregonator en medios excitables tridimensionales no sepueden resolver de forma analıtica dada su complejidad, por lo que se hace imprescin-dible el uso de algun metodo numerico. En el capıtulo dos se describen los metodosnumericos que permiten resolver este tipo de ecuaciones y se han seleccionado los masadecuados para este problema.

En el capıtulo tres se presentan las tecnicas de integracion empleadas para la resolu-cion numerica del problema y se analizan en detalle sus caracterısticas computacionales.Se estudian las arquitecturas paralelas disponibles actualmente, los modelos de progra-macion y bibliotecas mas utilizados, y todos aquellos aspectos que pueden incidir enla implementacion paralela del modelo. A partir de ese estudio se implementan y seevaluan diferentes versiones paralelas.

En el capıtulo cuatro se presenta una nueva version de la aplicacion paralela optimi-zada para el problema particular de ondas espirales en medios excitables tridimensiona-les. Esta version se basa en una implementacion optima del metodo PCG para matricesen banda. La implementacion se ha realizado utilizando un modelo de programacion pa-ralela mixto que reduce significativamente los tiempos de ejecucion de las simulaciones,aportando soluciones cuya validez es extrapolable a numerosas aplicaciones cientıficas.

En el capıtulo cinco se utiliza la solucion optima presentada en el capıtulo anterior,para realizar un estudio detallado del problema fısico considerado en este trabajo.Concretamente se resuelven los problemas propuestos en el capıtulo dos.

Por ultimo, en el capıtulo seis se exponen las conclusiones y principales aportacionesde este trabajo, y las posibles lıneas de investigacion futuras.

Ademas, al final de la memoria se han incluido cuatro apendices que contieneninformacion complementaria sobre computacion paralela, tecnicas de visualizacion, ob-tencion del metodo de Jacobi a partir de PCG, y ordenamientos topologicos.

Page 22: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de
Page 23: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1Ondas espirales

La formacion de patrones (pattern formation) en sistemas fısicos en estados no es-tacionarios proporciona un substrato muy fertil para la investigacion y desarrollo denuevos conceptos en el campo de la fısica no lineal, situandose a medio camino entre laestabilidad debilmente no lineal y el caos y la turbulencia. Uno de los fenomenos masinteresantes y con, posiblemente, mayor aplicacion en otras ramas de la ciencia es laformacion y propagacion de ondas espirales.

Una onda espiral es una estructura espacial periodica en el tiempo, que gira entorno a un punto o un eje, en ausencia de forzamiento, conveccion, inestabilidades,etc., y que en cada instante de tiempo presenta el aspecto de una espiral. Este tipode estructura aparece con frecuencia en sistemas en los que se combinan fenomenosde reaccion (quımica o biologica) y de difusion espacial, gobernados por sistemas deecuaciones diferenciales en derivadas parciales (pdes) no lineales. Tambien aparecen ensuperconductores como soluciones de la ecuacion de Ginzburg–Landau.

Uno de los ejemplos mas conocidos de sistemas de reaccion–difusion que exhibenondas espirales es el de Belousov–Zhabotinskii [15], que modela la produccion de bro-mo ionico en un medio acido a partir de iones, una reaccion quımica que, en 1951,maravillo a Boris P. Belousov por la belleza de los patrones visuales que formaban lasconcentraciones de los reactantes.

En este capıtulo se introduce el problema fısico que se va a resolver en este tra-bajo: la propagacion de ondas espirales en un medio excitable tridimensional descritamediante un modelo simplificado de las ecuaciones de la cinetica quımica de Belousov–Zhabotinskii (modelo Oregonator).

En la seccion 1.1 se presentan las ecuaciones que rigen este modelo, y tambien unasbreves notas historicas acerca de su origen.

En la seccion 1.2 se exponen de forma resumida algunos de los trabajos que se hanencontrado en la literatura sobre ondas espirales; la mayorıa desarrollados en domi-nios de dos dimensiones. De entre estas referencias bibliograficas pueden destacarse los

1

Page 24: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2 Capıtulo 1: Ondas espirales

trabajos en los que se analizan los efectos de la adveccion y de la iluminacion (o for-zamiento) en la dinamica de la onda espiral en un medio excitable de dos dimensiones(2D). Resultan especialmente interesantes ya que uno de los objetivos de este trabajoes el estudio de tales efectos en un medio excitable tridimensional (3D). De hecho,consideramos que la principal aportacion de esta tesis desde el punto de vista fısico esla presentacion de los primeros resultados conocidos sobre estos problemas en mediosde tres dimensiones. Como las ecuaciones de reaccion–difusion modelan otro tipo deproblemas en diferentes ramas de la ciencia, los resultados pueden aplicarse a todosellos.

Por ultimo, en la seccion 1.3 se describen detalladamente los problemas concretosa resolver en esta tesis: los efectos de la iluminacion y de los campos de adveccion. Losresultados numericos se presentaran en el capıtulo 5.

1.1. Modelo de Belousov–Zhabotinskii

La propagacion de ondas espirales en un medio excitable esta gobernada por ecuacionesno lineales de reaccion–difusion. La mayorıa de los estudios se han relacionado conecuaciones para activadores e inhibidores en una o dos dimensiones espaciales como, porejemplo, las de los modelos de Belousov–Zhabotinskii (BZ), Brusselator y Oregonator,con y sin extincion [43].

1.1.1. Breves notas historicas

Mientras en otras disciplinas de la ciencia se ha explorando ampliamente el fenomenode la periodicidad, la quımica ha estado privada de este estudio hasta hace muy poco.Aunque existıa la evidencia de que la velocidad de algunas reacciones cambiaba periodi-camente, muchos quımicos pensaban que el hecho de que una reaccion quımica oscilaraiba en contra de la segunda ley de la Termodinamica. Sin embargo, la aplicacion delconcepto de equilibrio termodinamico a sistemas sin equilibrio llevo a cometer algunoserrores.

Aun perduraba este pensamiento en 1951, cuando Boris P. Belousov, director delInstituto de Biofısica de la Union Sovietica, envio un artıculo a una revista cientıficaen el que afirmaba haber descubierto una reaccion quımica oscilatoria. El artıculofue rechazado rotundamente con una nota crıtica del editor en la que decıa que eldescubrimiento era claramente imposible.

Belousov obtuvo esta reaccion quımica [123] cuando intentaba modelar el ciclo deKrebs y, por accidente, observo que una solucion de acido cıtrico, a la que se le anadıabromato (BrO−

3 ) y una sal de cerio, oscilaba periodicamente entre el color amarilloy la transparencia. Sin embargo, debido a la resistencia de la comunidad cientıfica alos osciladores quımicos, el trabajo no aparecio publicado hasta varios anos despues, eincluso entonces, aparecio solo en las actas de una conferencia medica sin relevancia.

Afortunadamente, el trabajo fue retomado algunos anos despues por otro biofısico

Page 25: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1.1. Modelo de Belousov–Zhabotinskii 3

ruso, Anatol M. Zhabotinskii, quien refino la reaccion reemplazando el acido cıtricopor acido malonico, y descubrio que cuando una capa delgada y homogenea de lasolucion se deja sin perturbar, se propagan a traves del medio unos atractivos patronesgeometricos, tales como cırculos concentricos y espirales de Arquımedes. La reaccionoscilaba en espacio y tiempo, y se denomino oscilador espacio–temporal. Finalmente, apesar de la frustracion inicial debida al rechazo de los editores de la revista, Zhabotinskiise impuso y publico varios artıculos concernientes a la que serıa conocida como Reaccionde Belousov–Zhabotinskii (o Reaccion BZ ). La evidencia era innegable: las reaccionesquımicas podıan oscilar demostrando periodicidad.

Este modelo de reaccion se mantuvo como poco mas que una curiosidad, apropiadapara adornar algunas conferencias, hasta que Richard M. Noyes, Richard J. Field yEndre Koros, de la Universidad de Oregon, examinaron el mecanismo a principio delos anos setenta. Estos autores propusieron un mecanismo robusto que consiste endieciocho reacciones y consta de veintiuna especies quımicas distintas, dando comoresultado un imponente sistema de ecuaciones diferenciales para describir la velocidadde la reaccion (modelo de Fields–Koros–Noyes) [124].

En este trabajo se va a utilizar una simplificacion de dicho modelo denominadaOregonator —en alusion a la Universidad de Oregon—, que se consigue introduciendo lareaccion en un crisol, y haciendo hervir las sustancias volatiles de manera que solo quedelo esencial. A pesar de su relativa simplicidad, este modelo demuestra cualitativamenteel mismo comportamiento de la reaccion original.

El modelo Oregonator es un tipo de mecanismo responsable de la ecuacion BZ,que envuelve las cinco reacciones siguientes:

BrO−3 +Br− → HBrO2 +HOBr

HBrO2 +Br− → 2HOBr

BrO−3 +HBrO2 → 2HBrO2 + 2Ce4+

2HBrO2 → BrO−3 +HOBr

2Ce4+ → Br−

que se pueden expresar simplificadamente de la siguiente forma:

A+ Y → X

X + Y → C

A+X → 2X + Z

2X → D

Z → Y

siendo A y todas las especies organicas los reactantes, y C y D los productos.

Existen otros modelos responsables de la reaccion BZ, como por ejemplo el mo-delo Brusselator —denominado ası por la ciudad de Bruselas, de donde procedıa elgrupo de investigacion que descubrio su base—. El modelo implica la conversion de los

Page 26: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4 Capıtulo 1: Ondas espirales

reactantes A y B en productos C y D mediante una serie de cuatro reacciones:

A → X

2X + Y → 3Y

B +X → Y + C

X → D

siendo la segunda ecuacion autocatalıtica. Si las concentraciones de A y B se mantie-nen constantes, las concentraciones de X e Y oscilan con el tiempo. Un grafico de laconcentracion de X frente a la de Y es un bucle cerrado (ciclo lımite). La reaccion seadapta a este ciclo lımite, es decir, el ciclo lımite es un atractor para el sistema.

1.1.2. Ecuaciones

Las ecuaciones de reaccion–difusion de Belousov–Zhabotinskii [107], modeladas con elsistema Oregonator de dos ecuaciones [31, 116], son las siguientes:

∂u

∂t= ∇ · (Du∇u) + Fu (1.1)

∂v

∂t= ∇ · (Dv∇v) + Fv (1.2)

donde t es tiempo, u y v denotan las concentraciones del activador y del inhibidor(de la reaccion), respectivamente, Du y Dv son los tensores de difusividad para u ypara v, respectivamente, y Fu y Fv son los terminos fuente que se pueden escribircomo

Fu =1

ε

(u− u2 − fv

u− q

u+ q

), Fv = u− v (1.3)

Los valores que se han elegido para las constantes que aparecen en los terminos fuenteson los siguientes: ε = 0,10, f = 1,4 y q = 0,002. En todos los estudios desarrolladosen este trabajo se ha elegido Du = I y Dv = 0,6·I, siendo I la matriz identidad desegundo orden. El motivo de esta eleccion se debe a que, con estos valores, las ecuaciones1.1 y 1.2 tienen como solucion una onda espiral. Hay que senalar que las componentesque no pertenecen a la diagonal de los dos tensores de difusividad introducen derivadasmixtas de segundo orden.

1.2. Referencias bibliograficas

La mayorıa de los estudios analıticos y numericos desarrollados hasta la fecha sobrepropagacion de ondas espirales en medios excitables tratan con sistemas de dos di-mensiones sujetos a condiciones de contorno de Neumann homogeneas, por ejemplo[112, 52, 31, 43].

Page 27: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1.2. Referencias bibliograficas 5

Mas especıficamente, muchos autores han centrado su interes en determinar la di-namica espacio–temporal de las ondas espirales en medios excitables oscilatorios endominios de dos dimensiones [52, 31], especialmente la dinamica de la punta de la es-piral y los efectos de la modulacion temporal y/o espacial [23, 46, 78]. Tambien se hanestudiado los efectos que tienen sobre la dinamica de la onda espiral la iluminacion[69, 94, 34, 83], los campos de flujo convectivos [79, 80, 81] y la anisotropıa [82].

Se han realizado muy pocos estudios numericos sobre la estructura y propagacion deondas scroll (pergamino) tridimensionales [62, 96]. Algunos estudios han consideradolas inestabilidades de desplazamientos en lınea recta que surgen de la competicionentre la curvatura del desplazamiento y la dinamica del centro de inestabilidad y quepermiten la formacion de estructuras helicoidales [5]. Otros estudios han experimentadocon la dependencia de la velocidad de curvatura para ondas quımicas en la reaccion deBelousov–Zhabotinskii [15].

De todos estos trabajos se pueden extraer algunas observaciones interesantes sobreestas ondas. Por ejemplo, se sabe que presentan un comportamiento periodico en me-dios homogeneos, que pueden presentar movimientos de “respiracion” en presencia deobstaculos, o que se pueden extinguir mediante la activacion de un parametro de controlen una region suficientemente grande del dominio computacional. Por otra parte, enmedios no homogeneos, las ondas espirales se caracterizan por sus fuertes gradientes enel espacio y sus rapidas oscilaciones de relajacion temporal, demandando simulacionescon pasos de tiempo pequenos y mallas espaciales muy finas.

La abundancia de estudios numericos en dos dimensiones se debe, en gran parte,al coste de las computaciones en tres dimensiones y al hecho de que la mayorıa de losexperimentos conciernen a modelos bidimensionales. Entre todos los estudios en 2D,hay que destacar los que analizan los efectos del campo advectivo y los de la iluminacion[78, 79, 80, 81].

Existe, sin embargo, la necesidad de determinar la propagacion y extincion de on-das espirales en medios excitables tridimensionales (3D) debido a su gran relevancia enmuchos campos de la ciencia donde el fenomeno se presenta en espacios tridimensio-nales. De esa necesidad surgen algunos trabajos entre los que se pueden destacar lossiguientes:

Winfree [111] presento una revision de las soluciones orientadas a partıculas es-tacionarias de las ecuaciones no lineales de medios excitables tridimensionales, ymostro que las ondas espirales se trasladan en fase desde una capa a la siguientea lo largo de un singular filamento vertical. Tambien discutio una variedad deestructuras tridimensionales tales como las helices, anillos sin torsion, anillos contorsion, filamentos singulares, nudos toroidales (torus knots), vortices y anillosvortices que se consideraron como centros organizados.

Keener y Tyson [54] proporcionaron tecnicas analıticas para anillos pergaminosin torsion (untwisted scroll rings), anillos con torsion, helices y ondas filamentospergamino anudadas.

Markus et al. [62] ha utilizado un automata celular aleatorio basado en anillosperiodicos para estudiar numericamente ondas espirales en dos dimensiones y

Page 28: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

6 Capıtulo 1: Ondas espirales

anillos pergamino con torsion en tres dimensiones.

Mantel y Barkley [61] estudiaron numericamente los efectos de la iluminacionperiodica en tiempo y homogenea en el espacio en modelos ondas pergamino, ymostraron que el colapso de anillos asimetricos se puede adelantar y retrasar sig-nificativamente con la iluminacion resonante. Tambien mostraron que los anillospergamino con torsion exhiben impulsos resonantes en una direccion normal alfilamento central.

Dolnik et al. [23], en sus estudios de ecuaciones de reaccion–difusion con ilumina-cion periodica, han mostrado que la modulacion periodica en tiempo y homogeneaen espacio puede suprimir la inestabilidad de Turing en medios excitables.

Ninguno de los trabajos anteriores estudia los efectos de la iluminacion y de laadveccion. Es importante conocer estos efectos porque se presentan en la mayorıa delos medios reales en los que aparecen ondas espirales. Este es uno de los motivos porel que se ha realizado un estudio de tales problemas en este trabajo. En la proximaseccion se presenta la descripcion matematica de dichos problemas y en el capıtulo 5se muestran los resultados obtenidos mediante integracion numerica. El hecho de teneruna dimension mas hace prever que se puedan obtener resultados diferentes a los dedos dimensiones, ya que la onda tiene una dimension mas por la que propagarse.

1.3. Problemas propuestos para ondas espirales en

tres dimensiones

Para poder investigar los efectos que producen la iluminacion y la adveccion en lapropagacion de la onda espiral, lo primero que hay que estudiar es como se comportala onda en un medio excitable tridimensional en ausencia de ellos. Posteriormente seanalizaran los efectos de la iluminacion, y, por ultimo, los de la adveccion.

Segun el modelo de Belousov–Zhabotinskii y el sistema Oregonator de dos ecua-ciones, el sistema a resolver viene dado por las ecuaciones 1.1 y 1.2, y los terminosfuente por la ecuacion 1.3 (seccion 1.1.2). Para estudiar los distintos efectos solo hayque anadir a estas ecuaciones los terminos correspondientes en cada caso.

Todos los problemas se resuelven en un cubo de dimensiones Ω = [−Lx, Lx] ×[−Ly, Ly]× [−Lz, Lz] con Lx = Ly = Lz = 7,5 (figura 1.1). En el problema original lasecuaciones estan sujetas a condiciones de contorno de Neumann homogeneas en todaslas fronteras y a las siguientes condiciones iniciales (en el dominio Ω):

u(0, x, y, z) = 0 si 0 <θ <0,5

u(0, x, y, z) = q(f + 1)/(f − 1) en otro caso(1.4)

v(0, x, y, z) = qf + 1

f − 1+

θ

8πf(1.5)

Page 29: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1.3. Problemas propuestos para ondas espirales en tres dimensiones 7

donde tan θ(0, x, y, z) = yxes el angulo con respecto al plano xz medido en el sentido

de las agujas del reloj desde el eje x positivo.

Figura 1.1: Dominio computacional Ω.

1.3.1. Efectos de la iluminacion

Este estudio consta de dos partes: la propagacion de las ondas espirales con iluminacionlocalizada compacta y con iluminacion localizada plana (aquı referido como“en banda”,y que significa iluminacion a lo largo de un paralelepıpedo que atraviesa el dominio).

Los estudios numericos realizados previamente en dos dimensiones han mostradoque las heterogeneidades locales o la iluminacion localizada pueden:

a) aniquilar la onda espiral y extinguir su propagacion, si las heterogeneidadeslocales estan situadas cerca del centro del dominio computacional (dentro de un dominiocompacto donde residirıa la punta de la onda espiral en ausencia de iluminacion), o

b) causar deformidades en el brazo de la onda sin destruir su integridad, si estansituadas fuera de esta region [83].

La iluminacion en banda en un medio excitable 2D da como resultado una granvariedad de comportamientos dinamicos. Estos comportamientos incluyen desde defor-maciones en la punta de la onda y el brazo —cuando la intensidad de la iluminacion essuficientemente pequena—, a la destruccion de la rotacion de la onda y la aparicion defrentes casi planos o movimientos respiratorios incapaces de penetrar la banda dondese aplica la iluminacion [83].

Como se ha indicado anteriormente, los resultados en un medio excitable tridimen-sional pueden ser muy diferentes a los de uno bidimensional. La presencia de hetero-geneidades locales puede no provocar la extincion de la onda espiral debido a que estapuede evitarlas moviendose a lo largo de una tercera dimension espacial y rodeando lazona local donde hay iluminacion (movimiento helicoidal).

Los dos casos de iluminacion que se han resuelto son:

1. iluminacion localizada compacta aplicada en un cubo situado en el centro deldominio computacional (figura 1.2a),

Page 30: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

8 Capıtulo 1: Ondas espirales

2. iluminacion localizada en banda aplicada en un paralelepıpedo que se extiendea traves del dominio completo en la direccion vertical y esta en el centro deldominio en la direccion y (figura 1.2b).

φ≠

φ

φ≠

φ

Figura 1.2: (a) Iluminacion localizada compacta. (b) Iluminacion localizada en banda.

El valor de la iluminacion se controla mediante un parametro de control, φ, quese incluye en el termino fuente de la ecuacion del activador del sistema (Fu). Lasecuaciones son las mismas que en problema original, 1.1 y 1.2, pero los terminos fuentesvienen expresados por:

Fu =1

ε

(u− u2 − (fv + φ)

u− q

u+ q

), Fv = u− v (1.6)

El objetivo de este estudio es comprender la dinamica de las ondas espirales y sussemejanzas y diferencias con los fenomenos observados en los estudios teoricos y experi-mentales en dos dimensiones. Por ejemplo, en [83] se ha encontrado que la presencia deiluminacion local u obstaculos pueden romper la onda espiral en varios brazos, ocasio-nando la formacion de esquinas agudas e islas o bolsas con unas altas concentracionesdel activador. Los estudios numericos de la propagacion de la onda espiral en un medioexcitable en dos dimensiones tambien han mostrado que, en presencia de un obstaculode iluminacion, la onda espiral se puede destruir y formar patrones de tipo respiratorio.

A continuacion se describen brevemente algunos resultados en 2D, relacionados conla iluminacion, obtenidos por otros autores:

Schebesch y Engel [94] utilizaron un modelo modificado de Oregonator para elmecanismo de Belousov–Zhabotinskii sensible a la luz donde el umbral de excita-cion local se puede controlar variando la intensidad de la luz incidente. Mostraronque, cuando la intensidad es baja, aparecen dos ondas espirales estables que giranen sentido contrario, mientras que, cuando es alta, las ondas experimentan unainestabilidad simetrica que acaba por suprimirlas.

Panfilov et al. [69] han demostrado numericamente que las ondas espirales en eltejido cardıaco se pueden eliminar mediante la aplicacion de multiples descargasde corriente externa.

Page 31: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1.3. Problemas propuestos para ondas espirales en tres dimensiones 9

Forstova et al. [34] han mostrado experimentalmente que la conmutacion contro-lada “on/off” de campos electricos puede permitir la formacion de una variedadde patrones espacio–temporales complejos.

Por otra parte, las ondas espirales se pueden distorsionar por la presencia deobstaculos [83]. En estudios de ecuaciones de reaccion–difusion en dos dimensio-nes se observa que si se emplea iluminacion a lo largo de bandas horizontales overticales se puede conseguir la supresion de la onda espiral [83]. Ramos [83] haestudiado el efecto de agujeros y de iluminacion electrica constante a lo largo debandas que atraviesan un medio excitable bidimensional gobernado por el modeloOregonator, y ha mostrado que las ondas espirales se pueden eliminar medianteiluminacion.

Yagisita et al. [113] emplearon el modelo Oregonator con una excitacion estacio-naria y no homogenea y mostraron que, en presencia de una pequena heteroge-neidad en medios excitables esfericos, se producıa una onda espiral antisimetricaa partir de la simetrica; tambien encontraron que la punta de esa onda espiralantisimetrica gira uniformemente, mientras que la punta de la onda simetricacambia periodicamente.

1.3.2. Efectos de los campos de adveccion

El siguiente objetivo es el estudio de los efectos de un campo de adveccion sobrela propagacion de ondas espirales en un medio excitable 3D. El termino que introduceel campo es el que contiene el vector de velocidad v = (vx, vy, vz)

T . El estudio se hahecho con dos campos de adveccion, uno rotacional y otro irrotacional, que satisfacenla condicion de no penetracion en el contorno (es decir, se cumple v ·n = 0, siendo nel vector unidad normal al contorno).

∂u

∂t+ v · ∇u = ∇ · (Du∇u) + Fu (1.7)

∂v

∂t+ v · ∇v = ∇ · (Dv∇v) + Fv (1.8)

Los terminos fuentes en las ecuaciones 1.7 y 1.8 no cambian, y vienen dados por laecuacion 1.3.

La estabilidad del movimiento de los frentes en un medio excitable bidimensionaldepende del transporte convectivo y difusivo, que proporciona el acoplamiento entreelementos separados en el espacio y produce la propagacion del frente [110]. De los dostipos de transporte, el difusivo se ha estudiado mas en profundidad que el convectivo,especialmente en el campo de la biologıa [52].

Algunos de los resultados que han obtenido otros autores en sus trabajos en dosdimensiones (relativos a campos de adveccion) son los siguientes:

Page 32: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

10 Capıtulo 1: Ondas espirales

Biktashev et al. [12, 13] consideraron un medio excitable en dos dimensiones conuna no linealidad cubica, que viene dada por el sistema de FitzHugh–Nagumoy una cizalla caracterizada por un campo de velocidad en la direccion x que esuna funcion lineal o sinusoidal de y. Mostraron que la cizalla puede deformar yromper las ondas espirales. Tales rupturas provocaron una reaccion encadenada denacimientos y muertes de la onda espiral. Los campos de velocidad empleados porBiktashev et al. [12] son unidireccionales y solenoidales, pero no irrotacionales, yademas no satisfacen la condicion de no penetracion en las fronteras del dominiocomputacional; de hecho, estos autores usaron condiciones de periodicidad parael campo de velocidad sinusoidal.

El transporte convectivo tambien ha sido estudiado por Wellner et al. [109]. Es-tudiaron las ondas espirales en un medio de FitzHugh–Nagumo de dos dimen-siones originado por un debil gradiente o conveccion, independiente del tiem-po en la variable rapida de la ecuacion. Mostraron —por medio de metodos deperturbaciones— la equivalencia entre gradientes y perturbaciones de conveccion,y propusieron una solucion semiempırica a la velocidad de las ondas espirales endos dimensiones. Esta solucion depende del perıodo de rotacion y del valor de lavariable rapida en el centro de la onda espiral.

Kærn y Menzinger [50] consideraron la ecuacion de reaccion–difusion unidimen-sional y una velocidad constante, y predijeron la existencia de ondas estacionariasdiferentes de las asociadas al mecanismo de inestabilidad de Turing, que requiereuna rapida difusion del inhibidor para la formacion de patrones periodicos enel espacio. Las ondas estacionarias que obtuvieron Kærn y Menzinger [50] eranclaramente diferentes a las asociadas con inestabilidades de flujo diferencial.

Andresen et al. [4] consideraron la formacion de patrones periodicos estacionariosen un medio excitable unidimensional con velocidad constante mediante el modeloBrusselator. Mostraron que su modelo puede exhibir patrones incluso en el casode coeficientes de difusion iguales, para ciertos tipos de condiciones de contorno,en un sistema abierto.

Mas recientemente, Ramos [80] ha estudiado la propagacion de ondas espiralesen campos de velocidad solenoidales, bidimensionales, no rotacionales y que nosatisfacen las condiciones de contorno de no deslizamiento (es decir, se cumplev · t = 0, siendo n el vector unidad normal al contorno). Ha mostrado que loscampos advectivos deforman la onda espiral a frecuencias moderadas, mientrasque a grandes frecuencias la forma de la onda espiral es casi identica a la quese obtiene en ausencia de conveccion, aunque sus partes interna y externa exhi-ben oscilaciones espaciales cuya frecuencia se incrementa a medida que aumentala frecuencia del campo de velocidad. A bajas frecuencias y altas amplitudes delcampo de velocidad, la concentracion del activador y la propagacion de la onda es-tan controladas por la simetrıa del campo de velocidad y el numero y localizacionde los puntos de estancamiento, y la concentracion del activador puede exhibirregiones contrarrotativas (“counter-rotating”) o una estructura estratificada (porcapas).

Page 33: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

1.3. Problemas propuestos para ondas espirales en tres dimensiones 11

Ramos [80] tambien ha estudiado la anisotropıa introducida por conveccion encampos de velocidad solenoidales en medios gobernados por ecuaciones de reaccion–difusion. Ha obtenido los mismos patrones que los observados en medios excitablesen flujos con cizalla. Tambien ha mostrado que los campos de flujo solenoidales in-troducen efectos anisotropos que pueden ser bastante diferentes de los observadosen un medio anisotropo reactivo–difusivo [82].

Asimismo, Ramos [82] ha investigado la dinamica de las ondas espirales en dosdimensiones en campos de velocidad no solenoidales que no son irrotacionales perosatisfacen las condiciones de contorno de no deslizamiento. Ha mostrado que elcampo de flujo advectivo puede romper las ondas espirales para velocidades deflujo del orden de la unidad, o formar frentes curvos cuyo espesor es del ordendel tamano del dominio, cuando la velocidad de flujo es mucho mayor que uno.

Por otra parte, existen estudios numericos de la propagacion de ondas en mediosexcitables en dos dimensiones, sujetos a campos de flujo advectivo no solenoidal quesatisfacen la condicion de no penetracion en las fronteras del dominio. Estos estudiosindican que, dependiendo de la amplitud y de las frecuencias espaciales del campo develocidad, la onda espiral se puede deformar fuertemente, se puede romper en variasondas espirales mas pequenas, o puede exhibir formas poligonales o con aspecto demosaicos. Estos patrones reflejan la simetrıa o asimetrıa del campo de velocidad y secaracterizan por tener unas regiones de alta concentracion del activador en los puntosde estancamiento en los que el gradiente de velocidad es el mas alto, y regiones delgadasque son paralelas al vector velocidad [79].

Estos estudios numericos en dos dimensiones tambien indican que el campo advecti-vo deforma la onda espiral, disminuyendo su espesor donde la velocidad es mayor debidoal estiramiento de la onda, y aumentando su espesor en los puntos de estancamientodonde los gradientes del campo de velocidad son mayores.

La ruptura de las ondas espirales, la formacion de gruesos frentes y la formacionde patrones de mosaicos, en medios excitables bidimensionales, han sido explicadasen terminos de la deformacion del frente de onda y la anisotropıa introducida por laconveccion en campos de velocidad no solenoidales [80, 82, 79] de manera analoga acomo se hace en la teorıa de combustion para explicar la extincion de llamas [110].

Sin embargo, las condiciones de contorno en el campo de velocidad tambien pue-den jugar un papel importante en la dinamica de las onda espirales y en su ruptura.Cuando el campo de velocidad satisface la condicion de no deslizamiento, las fronterasdel dominio son lıneas inactivas donde los efectos convectivos son nulos, mientras quecuando se emplea la condicion de no penetracion, el campo de velocidad es paralelo alas fronteras del dominio. Ademas, los campos de velocidad empleados en los estudiosanteriores son sinusoidales y contienen varios puntos de estancamiento cuando la fre-cuencia espacial es alta [80, 82, 79]. Por tanto, se han observado patrones complejos aaltas frecuencias espaciales debido a un gran numero de puntos de estancamiento y ala deformacion de los frentes de reaccion en esos puntos.

La mayorıa de los estudios sobre los efectos de conveccion en medios excitablesdesarrollados hasta la fecha han sido realizados en medios bidimensionales [12, 80, 82,

Page 34: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

12 Capıtulo 1: Ondas espirales

79], y han atribuido la ruptura de la onda espiral a la anisotropıa introducida por elcampo de velocidad, a la deformacion y a la rotacion.

1.4. Conclusiones

En este capıtulo se ha introducido el problema de la propagacion de ondas espiralesen un medio excitable tridimensional. Se ha visto que, como la mayorıa de los modelosen ciencia e ingenierıa, este problema se describe mediante un conjunto de ecuacionesdiferenciales en derivadas parciales (pdes) que definen el comportamiento del sistemaen un dominio espacial.

En particular, se trata de ecuaciones de reaccion–difusion que tienen una granpresencia en ramas muy diversas de la ciencia. Aunque hay numerosos trabajos sobreondas espirales en dos dimensiones, es necesario realizar el estudio en medios excitablestridimensionales, ya que muchos de los sistemas reales en los que se presentan sontridimensionales. Se han revisado los trabajos que analizan los efectos de la advecciony de la iluminacion en la dinamica de la onda espiral, que se presentan en la mayorıade los medios reales en los que aparecen ondas espirales.

Las ecuaciones de reaccion–difusion no se pueden resolver de forma analıtica dadasu complejidad, por lo que se hace imprescindible el uso de algun tipo de metodonumerico. En el capıtulo 2 se presentan y analizan los aspectos mas importantes delos metodos numericos que existen para resolver sistemas de ecuaciones en derivadasparciales. El objetivo de este analisis es elegir el metodo mas adecuado para este tipode problema.

Page 35: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2Metodos numericos

La mayorıa de los modelos en ciencia e ingenierıa se describen mediante un conjuntode ecuaciones diferenciales en derivadas parciales (pdes) que definen el comportamientodel sistema en un dominio. Estas ecuaciones, por lo general, no se pueden resolver deforma analıtica dada su complejidad, resultando imprescindible el uso de algun tipo demetodo numerico. En 1768, Euler desarrollo una tecnica para la obtencion aproxima-da de soluciones a este tipo de problemas, que consiste en reemplazar los operadoresdiferenciales del problema continuo por aproximaciones denominadas diferencias fini-tas que proveen la solucion en puntos discretos. Ademas de los metodos de diferenciasfinitas, existen otras tecnicas de resolucion numerica de las ecuaciones diferenciales enderivadas parciales, como son los metodos de residuos ponderados (elementos finitos,Garlekin, etc.) [2, 55], los metodos de lıneas [2], etc.

En este trabajo se han elegido metodos de diferencias finitas porque son simplesy eficientes para un dominio regular. Con ellos se consigue la precision requerida ytienen un coste computacional menor que el de otras tecnicas. Por ejemplo, los meto-dos espectrales (SM) suelen ser mas exactos pero tambien mas laboriosos y bastantemas costosos en terminos computacionales. Los metodos de elementos finitos son par-ticularmente utiles en dominios irregulares, e incluso se utilizan con mallas irregularesen regiones mas o menos simples (como un cubo), pero no ofrecen ninguna ventajaal modelo de ondas espirales considerado en esta tesis. Los metodos de elementos decontorno tampoco son adecuados porque el calculo de las integrales es excesivamentecomplejo.

Para un problema concreto, la eleccion del procedimiento de discretizacion masadecuado (en el contexto de los metodos de diferencias finitas) no es trivial; dependeprincipalmente del tipo de ecuaciones y de las caracterısticas del problema. Por ello estecapıtulo comienza con un estudio de los distintos tipos de ecuaciones y los problemasque estas modelan (seccion 2.1).

13

Page 36: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

14 Capıtulo 2: Metodos numericos

Seguidamente, se presentan algunos metodos sencillos de diferencias finitas que sepueden utilizar para resolver sistemas de ecuaciones en derivadas parciales (seccion 2.2),y las limitaciones en cuanto a estabilidad y exactitud de estos metodos. Tales limitacio-nes obligan a elegir para nuestro modelo un metodo implıcito. Despues de aplicar estosmetodos, el problema de valores iniciales y de contorno se ha transformado en otro massencillo: resolver un sistema no lineal de ecuaciones algebraicas. Tras describir en laseccion 2.3 un procedimiento de linealizacion, en la seccion 2.4 se detallan diferentesmetodos para resolver sistemas lineales.

La matriz de coeficientes del sistema de ecuaciones algebraicas que se deriva esdispersa (el numero de elementos no nulos que contiene es pequeno en relacion con elnumero total de elementos de la matriz). En la seccion 2.5 se presentan los aspectoscomputacionales mas relevantes de las matrices dispersas.

Por ultimo, en la seccion 2.6 se exponen los requisitos computacionales mınimos parala resolucion del problema de ondas espirales tridimensionales. Estos requisitos exigenuna potencia de calculo que supera la capacidad de los computadores secuencialesactuales, si se desean obtener soluciones en tiempos razonables.

2.1. Tipos de ecuaciones

La mayorıa de las pdes procedentes de problemas de fısica e ingenierıa se pueden clasi-ficar en dos grandes grupos, teniendo en cuenta las caracterısticas fısicas del problema:problemas de equilibrio y problemas de propagacion. En el primer grupo se incluyen lossistemas estables en los que el estado de equilibrio esta definido por la solucion Φ en undominio D de la ecuacion diferencial L(Φ) = f , sujeta a unas condiciones Bi(Φ) = gi,validas en el contorno de D. A menudo el dominio D es cerrado. Matematicamente,este tipo de problemas se conocen como problemas de valores de contorno. Losproblemas de propagacion o evolucion estan asociados a sistemas no estacionarios enlos que se desea predecir su comportamiento temporal a partir de un estado inicial. Eldominio de integracion es abierto en el tiempo, y hay que anadir a las condiciones decontorno un estado inicial: Ii(Φ) = hi. Matematicamente, estos problemas se conocencomo problemas de valores iniciales. Las ecuaciones que modelan la propagacionde las ondas espirales en un medio excitable tridimensional (1.1 y 1.2) son del tipode problema de propagacion o de valores iniciales puesto que implican el calculo dela evolucion temporal de las concentraciones del activador y del inhibidor del medioreactivo. Si ademas se discretizan las derivadas temporales, la solucion en cada paso detiempo se convierte en un problema de equilibrio o de valores contorno.

Desde un punto de vista matematico, las ecuaciones diferenciales lineales en deri-vadas parciales de segundo orden se pueden clasificar en elıpticas, parabolicas e hiper-bolicas, dependiendo del signo del discriminante de la llamada ecuacion caracterıstica.En una ecuacion diferencial lineal de segundo orden de la forma:

Lu = auxx + 2buxy + cuyy + dux + euy + fu = g (2.1)

el discriminante de la ecuacion caracterıstica es b2−ac. Si este discriminante es positivo,

Page 37: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.2. Metodos de diferencias finitas 15

negativo o cero, la ecuacion es hiperbolica, elıptica o parabolica, respectivamente [2, 84].

Un ejemplo prototipo de ecuacion hiperbolica es la ecuacion de ondas siguiente:

∂2u

∂t2= ν2∂

2u

∂x2(2.2)

donde ν es la velocidad de propagacion. La ecuacion parabolica mas conocida es laecuacion de difusion:

∂u

∂t=

∂x

(D∂u

∂x

)(2.3)

donde D es el coeficiente de difusion. Finalmente, la ecuacion de Poisson es el ejemplomas claro de ecuacion elıptica:

∂2u

∂x2+

∂2u

∂y2= ρ(x, y) (2.4)

Esta ecuacion se reduce a la de Laplace cuando el termino ρ es cero.

Las ecuaciones de la propagacion de las ondas espirales en medios excitables sonparabolicas, con terminos hiperbolicos si existe conveccion.

2.2. Metodos de diferencias finitas

Las ecuaciones correspondientes a la propagacion de ondas espirales en medios ex-citables tridimensionales son irresolubles analıticamente por lo que hay que utilizarmetodos numericos para obtener la solucion.

Aunque se van a utilizar metodos de diferencias finitas, muchas de las conclusionesque se obtendran en este trabajo pueden ser validas para otras tecnicas.

2.2.1. Discretizacion

El objetivo final de los metodos discretos de resolucion de ecuaciones es calcular lasolucion en un conjunto reducido de puntos (P) de un dominio continuo (D), en lugarde hacerlo para todo el dominio, es decir, se trata de reducir el sistema continuo auno discreto. En la mayorıa de los casos, el conjunto de puntos elegidos responde a unpatron determinado, como puede ser una malla rectangular homogenea (figura 2.1).

Una vez obtenida la solucion discreta y mediante tecnicas de interpolacion, se pue-den obtener los valores de las variables dependientes, sus derivadas y sus integralesen cualquier otro punto. Utilizando diferencias finitas, la aproximacion a una derivadaparcial se puede calcular con una sencilla expresion algebraica si simplemente se despeja

Page 38: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

16 Capıtulo 2: Metodos numericos

Figura 2.1: Dominios continuos y discretos.

el correspondiente termino del desarrollo en serie de Taylor, truncado adecuadamente.Por ejemplo,

u(x+∆x) = u(x) + ∆x∂u

∂x(x) +O(∆x2) (2.5)

de donde se obtiene

∂u

∂x(x) =

u(x+∆x)− u(x)

∆x+O(∆x) (2.6)

El error de truncado local se define como el error que se comete en cada punto (xi, tn)debido a la sustitucion de un operador diferencial por el correspondiente operador dediferencias. Este error se comete por no utilizar el desarrollo completo en serie deTaylor, sino un numero finito de terminos. En el ejemplo anterior, el error de truncadolocal de aproximacion en la ecuacion 2.6 es O(∆x).

La diferencia entre los desarrollos de Taylor para u(x+∆x) y u(x−∆x) permiteobtener la siguiente aproximacion con menor error de truncado:

∂u

∂x(x) =

u(x+∆x)− u(x−∆x)

2∆x+O(∆x2) (2.7)

De manera analoga, se pueden obtener aproximaciones a otros operadores diferen-ciales, utilizando operadores ya aproximados o desarrollos de Taylor extendidos a unmayor numero de terminos.

La eleccion de una malla mas fina (mayor numero de puntos en el dominio discreto)reduce el error de truncado, aunque supone un incremento en el tamano del problemadiscreto.

Para introducir algunos conceptos relacionados con la resolucion de las ecuacionesde ondas espirales consideremos la ecuacion de difusion en su forma mas simple:

Page 39: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.2. Metodos de diferencias finitas 17

∂u

∂t= D · ∂

2u

∂x2(2.8)

utilizando una malla de Nx puntos para la discretizacion. En esta ecuacion se considerala siguiente discretizacion del operador de la derecha, evaluada en un punto xi y en elinstante tn:

∂2u

∂x2≈ un

i−1 − 2uni + un

i+1

∆x2(2.9)

donde uni = u(xi, tn).

Para la derivada parcial de u en t se puede optar por utilizar diferencias progresivas,regresivas o centrales [17], dependiendo de la evaluacion temporal de los puntos elegidospara la discretizacion:

∂u

∂t≈ un+1

i − uni

∆t

∂u

∂t≈ un

i − un−1i

∆t

∂u

∂t≈ un+1

i − un−1i

2∆t(2.10)

Estos tres tipos de diferencias (progresivas, regresivas y centrales) implican proble-mas numericos y computacionales de caracterısticas muy diferentes entre sı, tal y comomuestra el siguiente analisis.

En un problema de valores iniciales, la solucion en el instante inicial u0 de laecuacion diferencial se conoce para todo x. Si se demuestra que dada una solucion entn es posible encontrar la solucion en tn+1, entonces, por induccion, el problema estabasicamente resuelto, siempre y cuando el metodo numerico sea estable y consistente,es decir, convergente (seccion 2.2.2).

La combinacion de diferencias espaciales centradas y diferencias temporales progre-sivas se conoce como metodo de las diferencias progresivas de Euler o, simplemente,metodo de Euler.

Si se utiliza un metodo de diferencias progresivas, es facil observar que lasolucion un+1 se puede calcular en cualquier punto xi simplemente despejando laecuacion de diferencias en dicho punto (“ecuacion nodal”):

un+1i = un

i +D∆t

∆x2(un

i−1 − 2uni + un

i+1) = αuni−1 + βun

i + γuni+1 (2.11)

Como esto es valido para cualquier punto xi, solo sera necesario realizar operacionesalgebraicas triviales en cada punto. Matricialmente este problema se puede expresarcomo:

un+1 = Mun (2.12)

Page 40: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

18 Capıtulo 2: Metodos numericos

donde el vector un, de dimension igual a Nx (numero de puntos en la direccion x),contiene los elementos un

0 , un1 , ..., u

nNx. La matriz de coeficientes M , tambien conocida

como matriz de discretizacion, contiene todos aquellos coeficientes que multiplican alos elementos del vector un (representados en la ecuacion 2.11 por los sımbolos α, βy γ). Se trata de una matriz de Nx × Nx elementos, donde cada fila i de la matrizesta asociada a la ecuacion de diferencias evaluada en un punto xi de la malla. Enla discretizacion de la ecuacion de difusion, los unicos valores de j que se requierenrealmente son j = (i − 1, i, i + 1). El resto de los coeficientes de la matriz son nulos.

Figura 2.2: Matriz tridiagonal.

Ordenando adecuadamente los puntos de la malla, la matriz tiene un aspecto similaral de la figura 2.2, y se dice que es tridiagonal, al ser nulos todos los elementos exceptoaquellos situados en la diagonal y las subdiagonales adyacentes. Este tipo de matrizpertenece a un grupo muy amplio de matrices denominadas dispersas (seccion 2.5), yque se caracterizan por tener la mayor parte de sus elementos nulos.

El error de truncado local de los metodos de diferencias progresivas es O(∆x2+∆t).Este tipo de discretizacion, en el que la ecuacion de diferencias en cada punto se puederesolver de forma independiente, se denomina metodo explıcito.

Si se utiliza un metodo de diferencias regresivas, la discretizacion de la ecuacionde difusion que se obtiene es:

uni −

D∆t

∆x2(un

i−1−2uni +un

i+1) = un−1i =⇒ α′un

i−1+β′uni +γ′un

i+1 = un−1i (2.13)

Aunque la ecuacion 2.13 se parece mucho a la obtenida para diferencias progresivas,es muy diferente computacionalmente. En este caso, la ecuacion en cada punto contienetres incognitas, por lo que no se puede resolver por separado, sino de forma conjuntapara todos los puntos. El sistema formado por todas las ecuaciones de diferencias sepuede expresar matricialmente como:

Mun = un−1, un = M−1un−1 (2.14)

donde la matriz M de coeficientes es nuevamente tridiagonal, aunque el problema ge-nerado implica en este caso la inversion de M o la resolucion del sistema por algun otrometodo.

Page 41: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.2. Metodos de diferencias finitas 19

El error de truncado del metodo de diferencias regresivas es O(∆x2 + ∆t). Estetipo de discretizacion, en el que la ecuacion de diferencias en cada punto no se puederesolver de forma independiente, se denomina metodo implıcito.

Finalmente, para encontrar la solucion de un+1 por el metodo de diferenciascentrales se requiere conocer los valores de un y un−1, por lo que en el instante iniciales necesario no solo u0 sino tambien u1. Este metodo es de naturaleza implıcita, siendoademas su error de truncado O(∆x2 + ∆t2).

A la hora de elegir el metodo numerico que se va a utilizar, hay algunos conceptosimportantes a tener en cuenta, como son los errores que se cometen, la estabilidad y laconvergencia.

2.2.2. Errores, estabilidad y convergencia

El error de discretizacion o error global es el cometido en la solucion final delproblema debido a la acumulacion de errores locales, ya sea en la discretizacion delas ecuaciones o de las condiciones de contorno. No existe una formula que permitaestablecer el error global a partir de los errores locales, aunque existe una regla queestablece que el orden del error de discretizacion es el de menor orden de todas lasaproximaciones utilizadas (a menos que esten relacionadas) [2].

Cuando las ecuaciones algebraicas que se obtienen despues de la discretizacion nose resuelven de manera exacta, se comete otro tipo de error denominado de redondeo.El comportamiento de los errores de discretizacion y de redondeo respecto al tamanode la malla es opuesto. Cuanto mas fina sea la malla, mas pequeno es el error dediscretizacion y mayor es el de redondeo. Esta es la razon por la que no siempre unamalla mas fina proporciona mejores resultados.

Se dice de cualquier sistema que es estable cuando un cambio pequeno en losvalores iniciales produce los correspondientes cambios pequenos en la solucion final. Siel sistema no satisface esta propiedad, se dice que es inestable. La estabilidad en lasolucion numerica de pdes depende en general del metodo utilizado, aunque tambienpuede depender de otros muchos factores, como pueden ser los valores iniciales o decontorno o incluso la propia naturaleza del problema fısico subyacente (sirvan comoejemplo la resolucion numerica de las ecuaciones del modelo atmosferico y el efectomariposa). La estabilidad es un criterio muy importante a la hora de elegir un metodo.

El analisis de la estabilidad de los metodos de diferencias finitas se realiza normal-mente mediante tecnicas matematicas, como el metodo de estabilidad de Fourier o VonNeumann, metodo de matrices, metodo de energıa, etc. [2, 73, 84], mediante las cua-les se determina la dependencia entre ∆t y ∆x para estabilidad. La simulacion condiferentes tamanos de mallas espaciales y temporales permite igualmente determinarempıricamente las condiciones de estabilidad.

El concepto de convergencia esta relacionado con el de estabilidad y el de con-sistencia de un metodo numerico. Se dice que un metodo es consistente si en el lımite(∆x → 0, ∆t → 0) se recupera la ecuacion diferencial. Se dice que un metodo dediferencias finitas es convergente si la solucion obtenida por el metodo converge a la so-

Page 42: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

20 Capıtulo 2: Metodos numericos

lucion real del sistema cuando el tamano de la malla tiende a cero (∆x → 0, ∆t → 0).Segun el teorema de Lax, si el metodo es estable y consistente, entonces es convergente[2].

Si el metodo es estable y consistente, es decir convergente, entonces sı se cumpleque, cuanto mas fina sea la malla mas exacta es la solucion alcanzada.

Algunos teoremas que relacionan la estabilidad, la convergencia y los errores dediscretizacion se pueden encontrar en la numerosa bibliografıa existente sobre el tema[2, 17, 76].

Desafortunadamente, el problema de la propagacion de ondas espirales en un medioexcitable tridimensional no presenta la sencillez de la ecuacion 2.8. Las ecuacionesque hay que resolver se presentan en forma de sistema de ecuaciones diferenciales enderivadas parciales no lineales.

Para decidir si es mas adecuado utilizar metodos explıcitos o implıcitos en esteproblema, se han estudiado las caracterısticas de ambos, analizando las ventajas ydesventajas de cada uno de ellos.

2.2.3. Metodos explıcitos

Al utilizar metodo explıcitos se presentan varias complicaciones. La primera de ellassurge con los terminos no lineales (en el caso de ondas espirales son los terminosFu y Fv). La misma ecuacion de difusion 2.2 puede servir como ejemplo, si se sustituyeel coeficiente de difusion D por la variable u. En este caso la discretizacion de laecuacion obtenida es:

∂u

∂t− ∂

∂x

(u∂u

∂x

)≈ un+1

i − uni

∆t+

uni−1/2(u

ni − un

i−1)− uni+1/2(u

ni+1 − un

i )

∆x2= 0 (2.15)

Si se introducen las siguientes aproximaciones:

ui+1/2 =ui + ui+1

2y ui−1/2 =

ui + ui−1

2(2.16)

se obtiene la siguiente expresion no lineal:

un+1i = α(un

i−1)2 + β(un

i )2 + γ(un

i+1)2 (2.17)

por lo que el lado derecho de la ecuacion 2.17 no se puede expresar en forma matricial.Desde una perspectiva mas general, las ecuaciones contienen terminos lineales y nolineales que permiten expresar el problema matricial en la forma:

un+1 = Mun + n(un) (2.18)

Page 43: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.2. Metodos de diferencias finitas 21

donde el vector n aparece como consecuencia de la discretizacion de terminos nolineales.

La segunda complicacion surge con los sistemas de NE ecuaciones diferenciales( E1, E2, ..., ENE

) parabolicas o hiperbolicas, con NE variables dependientes del tiempo( u1, u2, ..., uNE

). En nuestro problema NE = 2.

En general, se podrıan plantear dos situaciones:

1. Si cada una de las ecuaciones contiene la derivada temporal de una sola variabley el resto de las variables y derivadas espaciales que aparecen en la ecuaciondiferencial se evaluan en el instante tn, entonces este modelo es explıcito parael espacio y explıcito para las fuentes (EXEF). La ecuacion de diferencias, ensu forma matricial, tiene un aspecto similar a la ecuacion 2.18, con la salvedadde que los vectores un, un+1 y n contienen NxNE elementos. La matriz tieneigualmente NxNE filas (una por cada ecuacion en cada punto de la malla) yNxNE columnas (una por cada variable, en cada punto de la malla). La variabletemporal asociada a cada ecuacion se denomina variable principal.

2. Si en alguna de las ecuaciones diferenciales aparece la derivada temporal de masde una variable, entonces en cada punto de la malla de discretizacion no bastacon despejar una incognita, sino que debe resolverse un sistema de ecuaciones queincluso puede ser no lineal. En este caso, la variable principal de cada ecuacion sepuede elegir arbitrariamente. La misma situacion se puede presentar si el sistemasolo tiene una derivada temporal por ecuacion pero se evaluan las fuentes (perono las derivadas espaciales) en el instante tn+1. Este modelo es explıcito para elespacio e implıcito para las fuentes (EXIF).

Los sistemas con una derivada temporal por ecuacion, como el que se considera enesta tesis, permiten elegir cualquiera de estos dos caminos segun se evaluen en tn otn+1 los restantes terminos. La eleccion entre ambas opciones se debe realizar teniendoen cuenta que la primera, aun siendo mas sencilla, presenta un peor comportamientoen cuanto a estabilidad, lo que implica escalones de tiempo ∆t muy pequenos.

Los metodos explıcitos de resolucion de ecuaciones diferenciales ofrecen caracterıs-ticas tales como la facilidad de discretizacion y programacion, rapidez en los calculos ybajas necesidades de almacenamiento, que superan a las de los metodos implıcitos. Aun-que el error en la discretizacion es muchas veces del mismo orden para ambos metodos,la utilidad de los metodos explıcitos es muy reducida por razones de estabilidad.

En la ecuacion de difusion, por ejemplo, la condicion necesaria para la estabilidadesta determinada por la expresion:

0 < r =∆t

∆x2≤ 1

2(2.19)

por lo que aunque siempre sea posible encontrar un valor de ∆t que estabilice elmetodo para una determinada malla, la condicion representa una restriccion en el

Page 44: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

22 Capıtulo 2: Metodos numericos

paso de tiempo. Esta restriccion se acentua en las ecuaciones no lineales en las que lacondicion de estabilidad no depende solo de la discretizacion utilizada sino tambien dela no linealidad de la propia ecuacion, y obliga, en muchos casos —como en nuestroproblema—, a utilizar pasos de tiempo muy reducidos que hacen prohibitivamentelargas las simulaciones, por lo que se ha buscado la forma de evitarla mediante metodosimplıcitos.

2.2.4. Metodos implıcitos

Los metodos implıcitos constituyen un amplio abanico de tecnicas caracterizadas porsu buen comportamiento en cuanto a estabilidad, pero que requieren un coste com-putacional elevado. En esta seccion se estudian algunos de los metodos implıcitos dediscretizacion, asignandole una especial relevancia al conocido como metodo Θ [76].

La caracterıstica comun de los metodos implıcitos es que el sistema de ecuacionesalgebraicas generado en cada uno de los puntos de la malla incluye mas de una incog-nita. En general, estas incognitas tambien estan presentes en otras ecuaciones nodales,por lo que existe una dependencia entre ellas que obliga a la resolucion simultanea detodo el sistema. El numero de ecuaciones algebraicas coincide con el numero de puntosseleccionados para la malla multiplicado por el numero de ecuaciones discretas gene-radas en cada punto por la tecnica de discretizacion. Esta cifra coincide normalmentecon el numero de incognitas del sistema. Afortunadamente, cada ecuacion del siste-ma no contiene todas sus incognitas, sino un conjunto reducido de ellas (las variablesasignadas al punto de la malla al que pertenece la ecuacion y algunas variables de lospuntos de malla cercanos), por lo que se dice que el sistema de ecuaciones generadoes disperso, debido a que la matriz de coeficientes asociada al sistema es dispersa (lamayorıa de sus elementos son ceros).

Al igual que ocurre en los metodos explıcitos, las caracterısticas de la matriz asocia-da dependeran en gran medida del orden de los puntos en el que se situen las ecuacionesdiscretas. En los metodos implıcitos, la eleccion del patron de la matriz es crucial, puesen este caso no hay que resolver un simple producto matriz dispersa por vector, sinoque es necesario realizar la inversion de la matriz o resolver el sistema utilizando algu-nas de las tecnicas analizadas en esta seccion, en los que el patron del sistema puedeinfluir en su efectividad.

Metodo de Crank–Nicolson y metodo Θ

Entre los metodos implıcitos mas conocidos y simples se encuentra la formula propuestapor O’Brien en 1951 [2], que utiliza diferencias regresivas para la derivada temporal,evaluando las derivadas espaciales en el paso n + 1. Este metodo tambien se conocecomo el metodo de las diferencias regresivas de Euler,

∂u

∂t−D

∂2u

∂x2≈ un+1

i − uni

∆t−D

un+1i+1 − 2un+1

i + un+1i−1

∆x2= 0 (2.20)

Page 45: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.3. Tecnicas de linealizacion 23

Previamente, en 1948, Crank y Nicolson utilizaron, para las derivadas espaciales,un promedio de las aproximaciones en n y n+ 1:

∂u

∂t−D

∂2u

∂x2≈ un+1

i − uni

∆t−D

2

(uni+1 − 2un

i + uni−1

∆x2+

un+1i+1 − 2un+1

i + un+1i−1

∆x2

)= 0 (2.21)

De forma mas general, se puede sustituir la media aritmetica de la ecuacion 2.21por una media ponderada, introduciendo un factor de peso, Θ:

∂u

∂t−D

∂2u

∂x2≈ un+1

i − uni

∆t−D

((1−Θ)

uni+1 − 2un

i + uni−1

∆x2+Θ

un+1i+1 − 2un+1

i + un+1i−1

∆x2

)= 0

con 0 ≤ Θ ≤ 1. Esta tecnica de discretizacion (conocida como metodo Θ [76]) genera,en los sistemas de pdes lineales, una ecuacion de diferencias que es una combinacionlineal de incognitas en los pasos n + 1 y n. Si Θ = 1, la ecuacion obtenida es la deO’Brien (derivadas espaciales evaluadas en el paso n + 1), mientras que si Θ = 1/2,se obtiene la formula de Crank–Nicolson, y la de Euler si Θ = 0 (derivadas espacialesen el paso n). En cualquier caso, si Θ es distinto de cero, aparece en el lado izquierdode la ecuacion mas de una incognita, y el metodo es implıcito, por lo que no es posibleresolver cada ecuacion discreta individualmente. A cambio, el calculo de una incognitaincorpora informacion de puntos vecinos situados en el mismo tiempo.

2.3. Tecnicas de linealizacion

El principal inconveniente a la hora de abordar un problema no lineal es que ladiscretizacion genera un problema algebraico tremendamente complejo, pues frecuen-temente implica resolver ecuaciones no lineales. En la mayorıa de los casos es necesariorealizar iteraciones para obtener la solucion.

Si se considera, por ejemplo, la siguiente ecuacion

Lu = f(u) (2.22)

siendo L un operador lineal y f una funcion no lineal, la solucion se puede obtener,en muchos casos, utilizando una secuencia de aproximaciones uk tal que,

Luk+1 = f(uk) (2.23)

Este metodo, propuesto por Picard [2], converge linealmente a la solucion cuando lasecuencia uk es convergente. Bellman, Kalaba y Lees [2] sugieren utilizar, para laecuacion 2.22, la siguiente secuencia de aproximaciones:

Luk+1 = f(uk) + f ′(uk)(uk+1 − uk) (2.24)

que converge cuadraticamente a la solucion (quasilinearization). La aplicacion de estemetodo de Newton requiere que f sea diferenciable.

Page 46: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

24 Capıtulo 2: Metodos numericos

Ademas de los metodos mencionados, existen en la literatura un gran numero detecnicas de linealizacion.

En esta memoria se presenta una tecnica de linealizacion que combina el metodoΘ en la discretizacion con el metodo de linealizacion temporal (time–linearization)propuesto por Beam y Warming [108].

Consideremos un sistema no lineal de ecuaciones diferenciales de la forma:

∂u

∂t= L(u) + N(u), (2.25)

siendo L y N dos operadores diferenciales lineales y no lineales, respectivamente.Utilizando el metodo Θ y discretizando estos operadores, la parte lineal de la ecuacionse puede expresar como:

L(u) ≈ L(unij, u

n+1ij ) = (1−ΘL)L(u

nij) + ΘLL(u

n+1ij ) (2.26)

Para la parte no lineal, se utiliza la siguiente aproximacion:

N(u) ≈ N(unij, u

n+1ij ) ≈ (1−ΘN)N(u

nij) + ΘNN(un+1

ij ) (2.27)

tras la cual, el sistema de ecuaciones algebraicas no lineales generado es:

un+1ij − un

ij

∆t= (1−ΘL)L(u

nij) + ΘLL(u

n+1ij ) + (1−ΘN)N(u

nij) + ΘNN(un+1

ij )

o bien,

un+1ij −ΘL∆tL(un+1

ij )−ΘN∆tN(un+1ij ) = un

ij +(1−ΘL)∆tL(unij)+ (1−ΘN)∆tN(un

ij)

Este sistema se puede resolver aplicando el metodo de Newton–Raphson me-diante una serie de iteraciones efectuadas en cada avance de tiempo, tal como muestrael algoritmo 1.

Algoritmo 1

uk=0ij = un

ij

for k = 0,. . . ,maxiterResolver:

uk+1ij −ΘL∆tL(uk+1

ij ) = ΘN∆t

(N(uk

ij) +

(∂N

∂u

)k

(uk+1ij − uk

ij)

)+

ukij + (1−ΘL)∆tL(uk

ij) + (1−ΘN)∆tN(ukij) (2.28)

if (uk+1ij − uk

ij) < ε, then breakend forun+1ij = uk+1

ij

Page 47: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.4. Sistemas lineales de ecuaciones algebraicas 25

La ecuacion algebraica de este algoritmo es lineal, y por tanto se puede resolver uti-lizando cualquier metodo tradicional. La generalidad del algoritmo 1 permite derivarotros metodos de linealizacion. Por ejemplo, si el jacobiano de la ecuacion 2.28 se anula,obtenemos el metodo de Picard. Beam y Warming proponen utilizar una sola iteracionpor lo que la linealizacion se produce en el propio avance temporal (time linearization),y solo es necesario resolver, en cada avance de tiempo, la siguiente ecuacion lineal:

un+1ij −ΘL∆tL(un+1

ij ) = ΘN∆t

(∂N

∂u

)k

(un+1ij −un

ij)+unij+(1−ΘL)∆tL(un

ij)+∆tN(unij)

En este caso, el error que se comete en la discretizacion temporal es mayor que elerror de truncado en las iteraciones de Newton–Raphson.

2.4. Sistemas lineales de ecuaciones algebraicas

La mayorıa de las tecnicas implıcitas de resolucion de sistemas de pdes desembocan ensistemas de ecuaciones lineales algebraicas que, generalmente, son difıciles de resolverdebido al elevado numero de ecuaciones e incognitas que contienen. Este tipo de pro-blemas se puede expresar en la forma matricial:

Mx = b ⇒ x = M−1b (2.29)

e implica, de alguna forma, el calculo de la inversa de la matriz de discretizacion. Pararesolver este tipo de problemas matriciales de gran tamano hay dos clases de metodos,que se presentan a continuacion: los directos y los iterativos.

Metodos directos

Durante el pasado siglo, los metodos clasicos de eliminacion Gaussiana con substitucionhacia atras se han reemplazado por una larga serie de tecnicas matriciales equivalentesbasadas en la factorizacion de matrices (LU, Crout, Doolittle, Cholesky, etc.) y queobtienen, salvo errores de redondeo, una solucion exacta del sistema con un numerofinito de calculos [17]. La mayorıa de estas tecnicas se basan en la descomposicion de lamatriz de discretizacion M en un producto de factores cuyas caracterısticas permitenla solucion del problema de una forma mas simple. Como ejemplo, la factorizacion LUde la matriz permite la resolucion del sistema equivalente LUx = b en solo dos pasos,en los que se resuelven sistemas triangulares:

LUx = Ly = b ⇒ y = L−1b ⇒ x = U−1y (2.30)

Normalmente, este tipo de algoritmos es muy apropiado para matrices densas y depequeno tamano; pero en los sistemas de ecuaciones dispersos su utilizacion requiere

Page 48: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

26 Capıtulo 2: Metodos numericos

un elevado coste de almacenamiento debido al efecto de “relleno”, que se produce enlas matrices durante el proceso de factorizacion. A pesar de ello, son muy numerososlos trabajos publicados sobre metodos directos que aprovechan las ventajas de la dis-persion de la matriz. Algunos de estos algoritmos pueden ser adecuados para sistemascon matrices tridiagonales (algoritmo de Thomas) o en banda (Band Cholesky). Sinembargo, si las matrices son muy grandes y dispersas o su estructura no esta biendefinida, se suele utilizar otro tipo de metodo denominados iterativos, con los que seobtienen mejores resultados.

Metodos iterativos

Los metodos iterativos constituyen un amplio grupo de tecnicas que aplican, de formarepetitiva, algun algoritmo mas o menos simple para obtener una secuencia de apro-ximaciones a la solucion. En ellos, la solucion exacta del sistema lineal Mx = b es ellımite al que converge la secuencia, siempre y cuando esta sea convergente.

Una de las principales ventajas de los metodos iterativos para sistemas dispersosreside en que utilizan exclusivamente aquellos elementos mij distintos de cero, obte-niendo un considerable ahorro en numero de operaciones y almacenamiento de memoria.A diferencia de lo que ocurre en los metodos directos, la estructura de la matriz no esrelevante, pero en cambio, no siempre se converge a la solucion al ritmo deseado.

Entre los metodos iterativos podemos diferenciar entre metodos estacionarios yno estacionarios [10].

Metodos iterativos estacionarios

El metodo de Jacobi, tambien conocido como el metodo de los desplazamientossimultaneos, es el mas simple de los metodos iterativos. En cada iteracion, este metodoprocesa cada ecuacion i:

∑mijxj = bi del sistema de forma individualizada, despe-

jando de ella la variable xi mediante el uso de los valores de xj(j = i) obtenidos enla iteracion anterior:

xk+1i =

bi −∑

j =i mijxkj

mii

(2.31)

Las iteraciones se repiten hasta que la norma de xk+1 − xk y la norma del residuo,definido como:

rk = b−Mxk (2.32)

sean inferiores a un margen de error tolerado. Otra forma de escribir el metodo deJacobi es la indicada en el algoritmo 2.

Page 49: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.4. Sistemas lineales de ecuaciones algebraicas 27

Algoritmo 2

r0 = b − Mx0

for i = 1, . . . , Lpi = D−1 · ri−1 ! D representa la diagonal de Mxi = xi−1 + pi

qi = Mpi

ri = ri−1 − qi

end

Matricialmente, el metodo de Jacobi se puede expresar en la forma:

xk = Bxk−1 + c (2.33)

No es este el unico metodo iterativo que puede ser descrito con esta expresionmatricial. Se conocen como metodos estacionarios todos aquellos metodos iterativosque se pueden expresar en la forma matricial de la ecuacion 2.33, donde ni la matriz Bni el vector c dependen de la iteracion k. Los metodos estacionarios mas conocidos sonel metodo de Jacobi, el metodo de Gauss–Seidel, “Successive Overrelaxation” (SOR),y “Symmetric Successive Overrelaxation” (SSOR).

Como se ha visto, el metodo de Jacobi es facil de implementar, ademas de serfacilmente transportable a arquitecturas multiprocesadoras, ya que una vez conocidotodo el vector xk, diferentes procesadores pueden trabajar independientemente condiferentes elementos de xk+1. Sin embargo, su convergencia es lenta y solo se suelepresentar como introduccion a otros metodos. Por ejemplo, en el algoritmo secuencialde Jacobi, los elementos ya computados de xk+1 se podrıan usar para obtener losrestantes. Esto es lo que hace el metodo de Gauss–Seidel:

xk+1i =

bi −∑i−1

j=0 mijxk+1j − ∑n

j=i+1 mijxkj

mii

(2.34)

Este algoritmo converge mas rapidamente que el de Jacobi, pero, sin embargo,aparenta ser puramente secuencial. No obstante, y debido a la presencia de muchos cerosen una matriz dispersa, es posible que un reordenamiento de las ecuaciones pueda evitaralgunas dependencias haciendolo mas apropiado para su computacion con arquitecturasmultiprocesadoras. Ademas, el orden en el que se calculan los nuevos elementos de xk+1

puede modificar el resultado, y por tanto, la velocidad de convergencia. Este metodo seconoce tambien como el metodo de los desplazamientos sucesivos. Si xk+1

i se calculacomo una media ponderada entre xk

i y el valor xk+1i computado por el algoritmo de

Gauss–Seidel, es posible que el algoritmo converja a una velocidad superior a la delmetodo de Gauss–Seidel. Este es el fundamento del algoritmo SOR:

Page 50: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

28 Capıtulo 2: Metodos numericos

xk+1i =

(bi −

∑i−1j=0 mijx

k+1j − ∑n

j=i+1 mijxkj

mii

)ω + xk(1− ω) (2.35)

Si ω = 0 el algoritmo no avanza, mientras que para ω = 1 el metodo SOR coincidecon el de Gauss–Seidel. Aunque generalmente se utilizan valores 0 < ω < 1, es posibleutilizar un peso ω > 1. Se ha demostrado [10] que el metodo SOR converge siempre que0 < ω < 2. Sin embargo, la estimacion del valor optimo de ω es difıcil de obtener. Solopara una determinada clase de matrices (consistentemente ordenadas, con propiedad A[114]), se ha podido encontrar una relacion entre el espectro de la matriz y el parametroω optimo [66]. En [36] se puede encontrar un analisis completo de la convergencia delos diferentes metodos estacionarios.

Metodos iterativos no estacionarios

Los metodos iterativos no estacionarios difieren de los estacionarios en que las compu-taciones realizadas en cada iteracion incluyen informacion diferente a la utilizada en laiteracion anterior. Los coeficientes y constantes implicados en cada iteracion se obtie-nen normalmente a partir de las aproximaciones y residuos obtenidos en la iteracionanterior. El mas conocido de los metodos no estacionarios es el metodo del GradienteConjugado (CG).

Gradiente conjugado

El metodo del gradiente conjugado alcanza la solucion del sistema mediante unasecuencia convergente de vectores xk. Cada vector xk se actualiza a partir del anteriorsiguiendo una direccion en el espacio de soluciones αpk (es decir, xk = xk−1 + αpk).El algoritmo se analiza en profundidad en la seccion 3.2.2.

El metodo del gradiente conjugado pertenece a un conjunto de algoritmos denomi-nados genericamente metodos del subespacio de Krylov. Dada una matriz B de n× nelementos y un vector f de n elementos, el espacio formado por el siguiente conjuntode vectores

spanf,Bf,B2f, ..., Bi−1f (2.36)

se denomina subespacio i-dimensional de Krylov Ki(B, f) correspondiente a f y B.Los metodos del subespacio de Krylov aproximan x0 a la solucion mediante correccionespertenecientes a Ki(B, f) [90].

Es posible demostrar que el numero de iteraciones necesarias para obtener la solu-cion exacta en el metodo del Gradiente Conjugado (salvo errores de redondeo) es finito[66], aunque muy elevado (del orden de la dimension de la matriz). A pesar de serun metodo directo porque puede obtener la solucion exacta del sistema, se consideranormalmente como iterativo, ya que se suele alcanzar una buena aproximacion a lasolucion sin necesidad de realizar demasiadas iteraciones.

Page 51: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.5. Matrices dispersas 29

Precondicionadores

Al igual que los metodos estacionarios, los metodos iterativos no estacionarios con-vergen a la solucion a un ritmo que depende de las propiedades espectrales de la matrizde coeficientes. A menudo, es necesario transformar la matriz en otra con un espectromas apropiado. Un precondicionador P es la matriz que se encarga de realizar dichatransformacion. Como ejemplo, consideremos un problema Mx = b, y una matriz Mtal que P−1M posee un radio espectral inferior al de M . En estas condiciones, lasolucion del sistema transformado,

P−1Mx = P−1b (2.37)

es equivalente a la solucion Mx = b, pero sus propiedades espectrales permiten alcanzarmas rapidamente la convergencia.

La busqueda de un precondicionador adecuado no es tarea facil, y frecuentementeimplica un aumento considerable de la complejidad y el numero de operaciones quelimitan su utilidad. Los precondicionadores mas frecuentemente utilizados son Jacobi,LU incompleta, LDU incompleta, metodos multigrid, y metodos ADI.

El metodo del gradiente conjugado precondicionado ha mostrado ser muy efectivo,dada su alta velocidad de convergencia y el reducido numero de operaciones que requie-re. Ademas, se han desarrollado versiones paralelas muy eficientes [33, 39, 48, 93, 10],ası como optimizaciones basadas en el uso de la factorizacion LU incompleta que redu-cen aun mas el numero de operaciones (“truco” de Eisenstat [32, 66]). Sin embargo, suuso esta limitado a la solucion de sistemas simetricos definidos positivos, ya que estemetodo no es mas que una variante del metodo de Lanczos [114]. Para sistemas nosimetricos, se han desarrollado diferentes algoritmos tambien basados en la generacionde bases del espacio de Krylov y se pueden encontrar los detalles en [60, 89, 10].

2.5. Matrices dispersas

Independientemente del metodo de integracion y del metodo de resolucion del sistemalineal de ecuaciones algebraicas resultante, nos encontramos al final del proceso con unproblema matricial en el que la matriz M contiene un numero α de elementos mij,con mij = 0, muy reducido en relacion con el numero total de elementos de la matriz.Las matrices de estas caracterısticas se denominan dispersas [16, 26], y deben tratarsede forma diferente al resto de las matrices (densas) por los siguientes motivos:

Los algoritmos numericos deben tener en cuenta la dispersion de la matriz paraminimizar el tiempo y coste de computacion.

La matriz se debe almacenar de forma eficiente para reducir las demandas alsistema de memoria.

Se denomina ındice de dispersion β a la relacion entre el numero de elementos no nulosde M y el numero total de elementos m×n ( m y n son el numero de filas y columnas

Page 52: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

30 Capıtulo 2: Metodos numericos

de la matriz, respectivamente):

β =α

mn(2.38)

En la figura 2.3 se muestra un ejemplo de matriz dispersa, con α = 13 y β = 0,203.

0 0 0 0 0 0 0 50 0 3 0 0 0 4 0

1 0 0 0 0 0 2 0

0 0 0 0 6 0 0 0

0 0 0 7 0 0 0 0

0 8 0 0 0 0 0 00 0 0 0 9 0 0 100 11 0 0 0 12 13 0

Figura 2.3: Matriz dispersa.

El valor de β a partir del cual se puede considerar una matriz como dispersa depen-de en general de las caracterısticas del problema y de la distribucion de los elementosno nulos. A menudo (principalmente en los metodos directos de resolucion de ecua-ciones) no se obtiene un provecho total de la dispersion de la matriz para reducir lascomputaciones. Se utiliza el termino entrada para referirse a aquellos coeficientes queson explıcitamente utilizados por un algoritmo (incluyendo todos los no nulos y algu-nos ceros). La distribucion de las entradas de una matriz dispersa se suele representarmediante una matriz de puntos o huecos en las mismas posiciones donde M presentaentradas o ceros. A esta representacion se le denomina frecuentemente patron de lamatriz o matriz simbolica.

2.5.1. Tipos de matrices dispersas

Las matrices dispersas se pueden clasificar, segun los datos almacenados en ellas, si-guiendo los mismos criterios que las matrices densas. Ası podemos encontrar matricessimetricas, hermitianas, definidas positivas, diagonalmente dominantes, etc. Sin embar-go, los aspectos que presentan las matrices simbolicas tienen a veces mas influencia enlas propiedades numericas de un problema que incluso los datos almacenados en ellas.Esta es la razon por la que las matrices dispersas se suelen clasificar por el patronque presentan. Entre ellas, podemos nombrar como ejemplos a las matrices en franjas,en punta de flecha o las arbitrariamente dispersas. Diferentes ordenamientos de lasecuaciones y las variables de un mismo sistema producen diferentes patrones (figura2.4).

Una mencion especial merece un amplio abanico de matrices llamadas en banda (ode banda). Una matriz M de n×n se llama una matriz en banda, si existen enteros p yq, 1 < p, q < n, con la propiedad de que mij = 0 siempre que i+p ≤ j o j+q ≤ i. El

Page 53: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.5. Matrices dispersas 31

Figura 2.4: Diferentes patrones para un mismo sistema.

ancho de banda para una matriz de este tipo se define como A = p+ q − 1. Cualquierordenamiento de las ecuaciones nodales procedentes de una malla de discretizacion“bien formada” en el que los nodos vecinos tengan un numero de orden proximo derivaen una matriz en banda.

Entre las matrices en banda se encuentran las matrices diagonales, tridiagonales,pentadiagonales, tridiagonales por bloque, y otras muchas. Este tipo de matrices sesuelen generar por la discretizacion de ecuaciones diferenciales por elementos finitos opor diferencias finitas.

Figura 2.5: Distribucion por bloques de una matriz en banda.

Las matrices en banda poseen ciertas caracterısticas que las hacen especialmenteatractivas para su tratamiento computacional. Por un lado, la proximidad en memo-ria de los coeficientes de una misma ecuacion, y, en consecuencia, de las variables delos nodos vecinos (localidad espacial) permite explotar eficientemente la jerarquıa dememoria del computador. Por otro lado, en una ejecucion con varios procesadores sereduce significativamente el intercambio de datos. Como ejemplo, la figura 2.5 muestracomo una distribucion por bloques de los coeficientes de una matriz dispersa en bandareduce el volumen de datos en los bloques extradiagonales, que son los que obligan aintercambiar datos con procesadores vecinos.

Page 54: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

32 Capıtulo 2: Metodos numericos

2.5.2. Tecnicas de almacenamiento

Las tecnicas de almacenamiento de las matrices dispersas juegan un importante papelen la eficiencia del trabajo computacional que con ellas se realiza, siendo su objetivoprimordial el almacenar la informacion de la manera mas condensada posible, evitandototal o parcialmente el almacenamiento de los elementos nulos de la matriz. Las tecnicasutilizadas requieren algun mecanismo por el que se pueda conocer el lugar que ocupael elemento almacenado en la matriz completa.

Existen muchos metodos para el almacenamiento de las entradas de una matrizdispersa. En esta seccion se van a revisar algunos de ellos: los almacenamientos porfilas, por columnas o por diagonales. En [27, 71, 73, 95, 115, 10] se puede encontrar unamplio abanico de metodos de almacenamiento.

Metodo de coordenadas

Este es quizas el almacenamiento mas simple para una matriz dispersa. Consiste sim-plemente en almacenar en memoria junto a cada entrada de la matriz (siguiendo unorden consecutivo, primero por filas y luego por columnas), el par de coordenadas (fila,columna) que identifican su posicion en la matriz completa. A menudo, resulta masconveniente almacenar en memoria tres vectores de igual numero de elementos ( α)que contienen los elementos (Val), la fila (Row) y la columna (Col) a la que pertenece.Para la matriz de la figura 2.3 los vectores correspondientes se presentan en la siguientetabla:

Val 1 2 3 4 5 6 7 8 9 10 11 12 13

Row 1 1 2 2 3 4 5 6 7 7 8 8 8

Col 1 7 3 7 8 5 4 2 5 8 2 6 7

Este tipo de almacenamiento ofrece la ventaja de su simplicidad, pero sin embargoposee dos serios inconvenientes. Por un lado, los requisitos de memoria son muy eleva-dos, y el acceso a los elementos de la matriz implica varias indirecciones redundandoen una baja eficiencia de los algoritmos. Cuando la matriz es simetrica, tanto este,como los restantes metodos presentados pueden reducir casi a la mitad los requisitosde memoria, almacenando solo la matriz triangular superior o inferior.

Almacenamiento comprimido por filas

El almacenamiento comprimido por filas (CRS), al igual que el anterior, coloca en unvector las entradas contiguas de cada fila de la matriz en posiciones contiguas de lamemoria formando un vector Val de α elementos. Adicionalmente se crea un vectorColInd del mismo tamano que indica la columna a la que pertenece cada elemento, asıcomo un vector RowPtr que almacena la posicion en el vector Val donde empieza unanueva fila. Por convenio, se define RowPtr[n+1]= α +1.

Page 55: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

2.6. Requisitos computacionales 33

Val 1 2 3 4 5 6 7 8 9 10 11 12 13

ColInd 1 7 3 7 8 5 4 2 5 8 2 6 7

RowPtr 1 3 5 6 7 8 9 11 14 -- -- -- --

El principal inconveniente del almacenamiento por filas es que necesita el uso deindirecciones para la obtencion de los elementos de la matriz.

Almacenamiento comprimido por columnas

El almacenamiento comprimido por columnas (CCS) es similar al comprimido por filas.El formato CCS almacena los elementos de la matriz siguiendo un orden transversalpor columnas, en lugar de por filas. En otras palabras, es el almacenamiento CRS dela matriz MT . Requiere tres vectores (Val, RowInd, ColPtr), donde se almacenanrespectivamente los elementos de la matriz, el ındice de la fila al que pertenece cadaelemento, y la posicion en el vector Val donde comienza cada columna de M . Este tipode almacenamiento tambien es conocido como almacenamiento de “Harwell–Boeing”[28].

Almacenamiento comprimido por diagonales

Si la matriz M es en banda, y el interior de la banda se puede considerar practica-mente denso, puede merecer la pena sacar provecho de esta estructura almacenandolos elementos de la diagonal, ası como de sucesivas diagonales en posiciones de me-moria consecutivas. De esta forma se consigue un almacenamiento autosuficiente queno necesita de vectores adicionales, ademas de ofrecer muy buenos resultados en lacomputacion del producto matriz dispersa por vector.

2.6. Requisitos computacionales

Las caracterısticas propias del modelo de ecuaciones elegido para la simulacion de ondasespirales en medios excitables tridimensionales, ası como los metodos utilizados parasu integracion numerica, requieren en sı mismos una potencia computacional elevada.

Ademas, cuando el sistema es sometido a ciertas condiciones, iniciales o de contornoy/o se incluyen campos de adveccion, la solucion esta expuesta a variaciones muyrapidas, con fuertes gradientes en el espacio y en el tiempo que, ya en modelos de dosdimensiones, obligan a utilizar mallas de discretizacion muy finas y pasos de tiemporeducidos, aun utilizando metodos implıcitos de integracion.

Cuando se extiende el sistema a tres dimensiones, el problema se agrava notablemen-te. Por esta razon, se necesitan arquitecturas muy potentes para resolver, en tiemposrazonables, las simulaciones que se plantean en esta tesis. Para poner de manifiesto laproblematica, consideremos las siguientes estimaciones:

Page 56: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

34 Capıtulo 2: Metodos numericos

Una simulacion tıpica se realiza sobre una malla computacional que, en cada dimen-sion tiene un numero de nodos del orden de 102, totalizando unos 106 nodos para todala malla espacial. El numero de pasos de tiempo tomados oscilan entre 105 y 106, queson los necesarios para alcanzar un regimen estacionario o periodico y poder estudiarloadecuadamente. Utilizando un metodo de integracion implıcito y un algoritmo itera-tivo para resolver el sistema algebraico (por ejemplo, el gradiente conjugado), serannecesarias unas 10 iteraciones de media para alcanzar la convergencia y, en cada unade ellas se realizan alrededor de 102 operaciones en punto flotante por cada nodo. Aunsabiendo que los datos presentados son solo grosso modo, podemos estimar el costecomputacional tıpico en el orden de 1014-1015 operaciones en punto flotante.

Incluso utilizando procesadores actuales muy potentes (por ejemplo, un Pentium IVa 1,5 GHz, que ha demostrado mantener 500 Mflops en operaciones de algebra lineal,con LINPACK), y desarrollando programas muy eficientes, se requerirıan dıas, o inclusosemanas, para realizar una ejecucion tıpica.

Cuando se conoce de antemano y con precision el numero exacto de simulaciones arealizar, y que parametros se van a utilizar en cada una de ellas, podrıa ser viable utilizaruno o varios de estos procesadores ejecutando varias simulaciones simultaneamente yesperar el tiempo que sea necesario. Sin embargo, el propio metodo cientıfico implicaun proceso de refinamiento de los parametros de las simulaciones, con una elevadadependencia entre los resultados obtenidos y en el que los plazos mencionados puedenresultar excesivos. En estos casos, una reduccion de uno o dos ordenes de magnitudpara los tiempos de ejecucion podrıa ser suficiente.

Las arquitecturas paralelas ofrecen el mecanismo adecuado para incrementar elrendimiento de la solucion de nuestro sistema. El paralelismo (que es como se conoce lacomputacion paralela) consiste en la ejecucion concurrente de varias de las operacionesde una misma aplicacion utilizando mas de un procesador, lo que permite acelerar loscalculos en un factor cercano al numero de procesadores disponible. En el apendice A deesta memoria se presentan algunos de los conceptos mas relevantes de la computacionparalela.

En los siguientes capıtulos se estudiaran detalladamente las caracterısticas del me-todo de integracion buscando dos objetivos: extraer el maximo paralelismo de la apli-cacion, y aprovechar al maximo la potencia de cada uno de los procesadores que seutilicen, todo ello sin penalizar la validez de las soluciones.

Page 57: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3Integracion numerica eimplementacion paralela

3.1. Introduccion

En los capıtulos anteriores se ha expuesto que una gran variedad de sistemas fısicos sepueden describir mediante sistemas de ecuaciones diferenciales en derivadas parciales,que en gran parte precisan de un metodo numerico para ser resueltos. Independien-temente de la linealidad o no linealidad del problema y del modelo, o de si se tratade un problema de contorno o de valor inicial, al final del proceso casi siempre existela necesidad de resolver un sistema algebraico de ecuaciones que se puede expresarmatricialmente en la forma Ax=b, y que requerira normalmente una gran potencia decalculo para su resolucion.

En este capıtulo se presentan las tecnicas de integracion empleadas para la reso-lucion numerica del sistema de ecuaciones formado por 1.1 y 1.2, prestando especialatencion a metodos de diferencias finitas, y en particular a los metodos de diferenciasregresivas de Euler y el metodo de Crank–Nicolson. Tras un proceso de linealizacionbasado en el metodo de Newton–Raphson, se llegara a expresar el problema en la formade un sistema de ecuaciones lineales algebraicas simultaneas.

El sistema de ecuaciones se resolvera utilizando dos tecnicas diferentes: el metodoiterativo no estacionario del Gradiente Conjugado (utilizando un precondicionador deJacobi para acelerar su convergencia), y un procedimiento basado en la factorizacionaproximada (AF) del operador elıptico.

En este capıtulo se realizara tambien un analisis de la implementacion paraleladel metodo del gradiente conjugado que se centrara en el sistema lineal de ecuacionesalgebraicas que se obtiene de la discretizacion por diferencias finitas implıcita (Crank–Nicolson) linealizado en el tiempo, del sistema de ecuaciones de Belousov–Zhabotinskii,

35

Page 58: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

36 Capıtulo 3: Integracion numerica e implementacion paralela

resuelto en un dominio regular (un cubo) y discretizado en una malla regular. Se demos-trara que se obtiene un mejor rendimiento con la implementacion paralela del metodode Crank–Nicolson en combinacion con el metodo del gradiente conjugado que con lafactorizacion aproximada (AF).

Aunque existen numerosos estudios sobre la implementacion paralela del metododel gradiente conjugado [10, 66, 24] (y multiples referencias dentro de ellos), la ma-yorıa consideran precondicionadores basados en tecnicas de factorizacion incompleta,las cuales son, normalmente, muy ineficientes en un entorno paralelo [25]. Otras imple-mentaciones han considerado reducir el impacto de la sincronizacion entre procesadores[19].

Se prestara tambien especial atencion a las diferentes vıas de implementacion para-lela del algoritmo y se elegira una seleccion de arquitecturas representativas del estadoactual del arte en el campo de la supercomputacion. Finalmente, se extraeran las con-clusiones que nos conduciran directamente al siguiente capıtulo, en el que se presentarauna solucion optima al problema, cuya validez sera extensible a problemas de caracte-rısticas muy diferentes.

3.1.1. El sistema de ecuaciones diferenciales

Se considera el siguiente sistema de ecuaciones de reaccion–difusion de Belousov–Zhabotinskii presentado en el capıtulo 2 (ecuaciones 1.1 y 1.2 escritas de forma com-pacta):

∂U

∂t= DU

(∂2U

∂x2+

∂2U

∂y2+

∂2U

∂z2

)+ F(U). (3.1)

donde D es el tensor diagonal de difusividad, U = (u, v)T , T denota traspuesta, u yv son las concentraciones de activador y de inhibidor, respectivamente, t es el tiempo,x, y y z denotan las coordenadas espaciales, F es un termino no lineal definido por

F =

(u(1− u)− (fv + φ)u−q

u+q

ε, u− v

)T

(3.2)

f, q y ε son constantes, y φ es un parametro de control que puede ser funcion delespacio y/o del tiempo.

3.1.2. El dominio computacional

Para la obtencion de los resultados que se presentan en este capıtulo, la ecuacion 3.1se ha resuelto en un cubo que tiene 15 unidades adimensionales de lado, con f =1,4,q = 0,002, φ = 0 y ε = 0,01, y los terminos diagonales del tensor de difusividadson Du = I y Dv = 0,6I para el activador e inhibidor, respectivamente (I es el tensoridentidad). Se han utilizado condiciones de contorno homogeneas de tipo Neumann. La

Page 59: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.2. Integracion del sistema de ecuaciones 37

discretizacion en este dominio da lugar a una malla de puntos completamente regularen las tres dimensiones espaciales. La densidad de puntos elegida para las direccionesx, y y z ha sido la misma, debido a las caracterısticas del modelo de ecuaciones, yha oscilado entre 51 y 201 nodos en cada direccion, utilizando como criterio principalpara la seleccion de las densidades las simulaciones realizadas en estudios previos sobredos dimensiones. La eleccion de un numero impar de puntos facilita la comparacion deresultados con diferentes mallas.

3.2. Integracion del sistema de ecuaciones

La integracion del sistema de ecuaciones 3.3 se ha llevado a cabo utilizando los metodosimplıcitos de Crank–Nicolson y de diferencias regresivas de Euler (unificados en elmetodo Θ) en combinacion con una linealizacion en el tiempo basada en el metodo deNewton–Raphson, segun las lıneas basicas expuestas en el capıtulo 2. El sistema linealde ecuaciones algebraicas generado en este proceso se ha resuelto utilizando el metododel Gradiente Conjugado Precondicionado (PCG).

Para sistemas simetricos definidos positivos, se pueden utilizar muchas variacionesdel metodo CG disponibles en la literatura, pero sus requisitos computacionales sonnormalmente muy elevados y no producen un incremento sustancial de la velocidadde convergencia. Se pueden utilizar tambien otras aproximaciones iterativas con menorcoste por iteracion —por ejemplo, el metodo del descenso mas rapido o algun meto-do estacionario (Jacobi, Gauss–Seidel, SQR)—, pero sus velocidades de convergenciapueden ser menores; por ejemplo, se han realizado estudios con el metodo de Jacobirequiriendo casi el doble de iteraciones que la tecnica PCG. Tambien se ha desarrolla-do el metodo directo de Cholesky, bien utilizando bibliotecas estandares o a partir demodificaciones sobre el PCG con precondicionador Cholesky incompleto, aunque conresultados bastante pobres.

Una alternativa mucho mas interesante a todas las mencionadas, por su buen com-portamiento paralelo es el metodo implıcito de direcciones alternas (ADI, por Alterna-te Directions Implicit), un metodo de factorizacion aproximada (AF, por ApproximateFactorization), que al igual que otros metodos similares como Cholesky o LU, facilitanla resolucion del sistema.

3.2.1. Metodo Θ

Discretizando el sistema de ecuaciones 3.1 por el metodo Θ, se obtiene un sistema nolineal de ecuaciones elıpticas que se resolvera en cada paso de tiempo. Este sistema sepuede linealizar con respecto al tiempo para obtener un sistema lineal de ecuacioneselıpticas. En ambos casos, lineal y no lineal, las derivadas espaciales de segundo ordense han discretizado por un metodo de diferencias finitas de tres puntos, con precisionde segundo orden, generando un sistema de ecuaciones algebraicas en cada paso detiempo. Para resolver el sistema no lineal resultante se ha empleado el metodo deNewton–Raphson. En el caso de que se utilice una sola iteracion de Newton–Raphson,

Page 60: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

38 Capıtulo 3: Integracion numerica e implementacion paralela

este metodo se conoce como linealizacion en el tiempo (Time–Linearization).

Este metodo de linealizacion en el tiempo, aplicado a las ecuaciones 3.1, con Θ = 12

(Crank–Nicolson), implica la resolucion, en cada paso de tiempo, del sistema:(I − D

(k

2∆x2δ2x +

k

2∆y2δ2y +

k

2∆z2δ2z

)− 1

2kJs

)∆U =

D

(k

∆x2δ2x +

k

∆y2δ2y +

k

∆z2δ2z

)Us + kFs. (3.3)

donde s denota el tiempo (t=s · k), k es el paso de tiempo, ∆x, ∆y y ∆z son lospasos espaciales en las direcciones x, y y z, respectivamente, J representa la matrizjacobiana del termino fuente F,

J =

( 1ε(1− 2u− (fv + φ) 2q

(u+q)2) −f u−q

u+q

1 −1

)(3.4)

I es la matriz identidad, ∆U ≡ Us+1−Us, y por ejemplo, δ2xU ≡ Ui+1−2Ui+Ui−1.

Propiedades del sistema de ecuaciones

Debido a que la discretizacion de un sistema de ne ecuaciones diferenciales en de-rivadas parciales resulta en ne· nx· ny· nz variables y ecuaciones algebraicas nodales,un aspecto importante en la resolucion de sistemas de ecuaciones algebraicas como elsistema 3.3 es la ordenacion de las ecuaciones y las variables. Hay dos criterios paraordenar las ecuaciones: la ecuacion diferencial de procedencia y el punto de la mallaen el que se discretiza. Elegir uno u otro criterio en primer lugar da origen a dos or-ganizaciones diferentes: bloques de ecuaciones y bloques de variables. Si se establecenbloques de ecuaciones, el resultado es un pequeno numero de bloques de gran tamano,mientras que si se establecen bloques de variables, se obtiene un elevado numero debloques muy pequenos. Se han considerado los dos casos y las simulaciones mas rapidasse han obtenido con los bloques de variables, debido principalmente a una reduccionsignificativa (entre 3 y 5%) del numero de fallos de las memorias cache primaria ysecundaria.

De este modo, el sistema de ecuaciones algebraicas resultante de la discretizacionpor diferencias finitas de un sistema de ecuaciones diferenciales sobre una malla re-gular tridimensional se puede expresar como Ax = b. Si se utiliza una ordenacionordinaria de las ecuaciones e incognitas, A es una matriz heptadiagonal por bloques,donde los coeficientes de las propias incognitas en cada ecuacion se encuentran en ladiagonal principal, los de las incognitas vecinas en la dimension x se encuentran en lassubdiagonales adyacentes; los coeficientes de las incognitas vecinas en la dimension yse encuentran alejados nx posiciones a derecha e izquierda; y finalmente, los coeficien-tes de las incognitas vecinas en la direccion z aparecen separados nx· ny posicionesa izquierda y derecha. Cada posicion o celda de la matriz es un bloque de ne× ne

ecuaciones.

En la matriz correspondiente al sistema de ecuaciones 3.3, cada bloque contiene 2×2coeficientes, siendo la mayorıa de estos bloques diagonales, salvo aquellos correspon-

Page 61: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.2. Integracion del sistema de ecuaciones 39

Figura 3.1: Patron de la matriz de discretizacion.

dientes a la diagonal principal de la matriz de coeficientes, que es densa (2 ×2 elementosno nulos, por cada nodo). En la figura 3.1 se muestra la matriz correspondiente a unamalla de 5×5×3 puntos.

En esta figura, se han marcado en color negro aquellos coeficientes que es necesarioactualizar en cada paso de tiempo. En particular, dichos coeficientes aparecen debidoa que el Jacobiano J del termino fuente F (ecuacion 3.4) contiene las propias variablesu y v y, por tanto, los coeficientes contienen dichas variables, evaluadas en el tiempos. Tambien se puede observar en la figura que las diagonales no son completamentedensas, debido a que las ecuaciones nodales que se encuentran en la frontera no tienenrelacion con ningun nodo vecino en alguno o varios de sus lados. Para la aplicacion delas condiciones de contorno hemos supuesto la inclusion de nodos imaginarios fuera deldominio computacional, pero en cualquier caso, tales nodos solo afectan al lado derechodel sistema de ecuaciones y no a la matriz de coeficientes.

Desde el punto de vista computacional, los requisitos mınimos de memoria se mues-tran en la tabla 3.1. Hay un total de 11 vectores de nx ·ny ·nz · 2 elementos, de 8 bytescada uno, usando aritmetica de doble precision.

Cuadro 3.1: Requisitos mınimos de memoria.

Vector de incognitas U nx · ny · nz· 2

Vector ∆U nx · ny · nz· 2

Matriz de coeficientes A nx · ny · nz· 2 · 8

Vector rhs nx · ny · nz· 2

Page 62: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

40 Capıtulo 3: Integracion numerica e implementacion paralela

3.2.2. Metodo del Gradiente Conjugado

Introduccion

La resolucion del sistema de ecuaciones podrıa alcanzarse mediante dos tecnicas dife-rentes: procedimientos directos y tecnicas iterativas. Los primeros son muy costosos,sobre todo si las matrices son grandes, pero proporcionan la solucion exacta en ausen-cia de errores de redondeo. Los metodos iterativos son mas eficientes, si su velocidadde convergencia (es decir, la inversa del numero de iteraciones requeridas para obteneruna aproximacion fiable de la solucion) es suficientemente alta, pero su precision puedeser inferior a la de un metodo directo.

Entre los metodos iterativos se encuentran metodos estacionarios o no–estacionarios.En ambos casos, un “operador” procesara la aproximacion a la solucion disponible parasuministrar una solucion mas exacta. Mientras que en los metodos iterativos estacio-narios dicho operador permanece inmutable a lo largo de las iteraciones, en los noestacionarios el operador se modifica adecuadamente para que el proceso de aproxima-cion sea mas rapido.

Por tanto, los metodos iterativos no estacionarios son generalmente mas eficientesque los estacionarios porque aseguran y controlan su convergencia en muchas situacio-nes. Esto es lo que ocurre precisamente con el metodo del Gradiente Conjugado (CG),una tecnica muy conocida y eficiente para sistemas simetricos definidos positivos. Estemetodo genera una secuencia de aproximaciones sucesivas a la solucion, pero ademasalcanza la solucion exacta cuando el numero de iteraciones es igual al numero de ecua-ciones algebraicas que se van a resolver. Por tanto, se trata de un metodo iterativo noestacionario que realmente es directo: converge a la solucion exacta por medio de unasecuencia de n aproximaciones de vectores, donde n = ne · nx · ny · nz es la dimensionde la matriz y de los vectores x y b.

A continuacion se muestra de forma mas precisa como actua este metodo.

Partiendo de un vector x0 que se supone una aproximacion a la solucion buscada,el metodo calcula una secuencia de iterandos xi en un proceso iterativo en el que,en cada paso se calcula una direccion de busqueda pi que es conjugada (es decir,A-ortogonal1) a la utilizada en la iteracion previa, y a todas las anteriores, y que seutiliza para aproximarnos al nuevo iterando.

Ademas de la direccion del paso pi que hay que tomar, es necesario calcular lalongitud de dicho paso ( αi). Este parametro se calcula de forma que minimice el residuo(en realidad, la norma A del residuo) consiguiendo que para la dimension elegida se deel paso adecuado, y que si se repite el mismo proceso en n dimensiones conjugadas, sealcance la solucion exacta. En la practica, partiendo de una eleccion adecuada de p0

—se utiliza el residuo inicial—, se emplean tan solo unas pocas iteraciones para obteneruna buena estimacion de la solucion.

En el algoritmo 3 se resume el metodo del gradiente conjugado (observese que ρi−2

debe valer ∞ inicialmente para considerar la direccion inicial de actualizacion p igual

1Dos vectores a y b son A–ortogonales si aT · A · b=0

Page 63: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.2. Integracion del sistema de ecuaciones 41

al residuo).

Algoritmo 3

r0 = b − Ax0

for i = 1, 2, . . . , Lρi−1 = ri−1 · ri−1

pi = ri−1 +ρi−1

ρi−2pi−1

qi = Api

αi =ρi−1

pi·qi

xi = xi−1 + αipi

ri = ri−1 − αiqi

end

Es inmediato demostrar ademas que α = rT r/pTAp minimiza rTAr, mientras queel valor elegido para pi lo convierte en conjugado de todos sus valores previos.

Para implementar el algoritmo CG, hay que anadir a los requisitos de memoriaestablecidos en la seccion 3.2.1 (tabla 3.1), los que se presentan en la tabla 3.2:

Cuadro 3.2: Requisitos de memoria adicionales para CG.

Vector p nx · ny · nz· 2

Vector q nx · ny · nz· 2

Vector r nx · ny · nz· 2

En general, los metodos iterativos requieren un elevado numero de iteraciones paraconverger, pero su velocidad de convergencia se puede incrementar disminuyendo el“numero de condicion” del sistema, un parametro que mide la relacion entre el mayory el menor de los autovalores de la matriz. La reduccion del numero de condicion seconsigue mediante el uso de operadores especiales conocidos como“precondicionadores”.

El gradiente conjugado precondicionado

En la version del CG precondicionado, el numero de condicion de A y, en consecuencia,el numero de iteraciones, se puede reducir multiplicando el sistema Ax = b por unprecondicionador A−1, que coincide normalmente con la inversa de una aproximacionde A. Algunos autores llaman precondicionador a dicha aproximacion A. Evidente-mente, cuanto mas se aproxime el precondicionador a la inversa de la matriz, el sistemagenerado ( A−1Ax = A−1b) tendra una matriz de coeficientes mas proxima a la matrizidentidad, y un numero de condicion menor y mas proximo a la unidad.

Page 64: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

42 Capıtulo 3: Integracion numerica e implementacion paralela

Es inmediato deducir a partir del algoritmo 3 el metodo equivalente que resuelvex en el sistema A−1Ax = A−1b (algoritmo 4):

Algoritmo 4

r0 = b − Ax0

for i = 1, 2, . . . , Lresolver zi−1 en A · zi−1 = ri−1

ρi−1 = ri−1 · zi−1

pi = zi−1 +ρi−1

ρi−2pi−1

qi = Api

αi =ρi−1

pi·qi

xi = xi−1 + αipi

ri = ri−1 − αiqi

end

Precondicionadores

En este trabajo se han evaluado diferentes precondicionadores: Jacobi, Jacobi por blo-ques, Cholesky incompleto y Cholesky incompleto por bloques. Para los precondicio-nadores Jacobi y Cholesky incompleto, se han utilizado las dos variables dependientespor nodo para formar bloques de 2×2. Los calculos tambien se han obtenido sin utilizarprecondicionador (N.P.), pero, en este caso, el numero de iteraciones del metodo CG esmuy elevado y este metodo puede ser mas costoso incluso que un metodo directo. Enla tabla 3.3 se presenta el numero medio de iteraciones que cada metodo requiere paraalcanzar la convergencia segun un criterio preestablecido, en funcion del tamano de lamalla. Los valores que se muestran en esta tabla corresponden a 20 pasos de tiempodurante una simulacion tıpica, siendo el paso de tiempo k=0,0004.

Cuadro 3.3: Numero de iteraciones para 20 pasos de tiempo.

Malla N.P. Jacobi B. Jacobi I.Cholesky I.B.Cholesky

51×51×51 5,95 2,25 2,25 2,3 2,20

101×101×101 6,00 3,1 3,20 3,2 3,1

201×201×201 n.a. 5,05 5,15 5,2 n.a.

Los resultados de la tabla muestran que el precondicionador basado en la factori-zacion incompleta de Cholesky por bloques es el que converge mas rapidamente. Sinembargo, el coste asociado a la factorizacion incompleta es mayor que el debido a lareduccion en el numero de iteraciones, incluso cuando se usa el conocido “truco de Ei-senstat” [25]. Ademas, si se realizan los calculos manteniendo fijo el precondicionador

Page 65: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.2. Integracion del sistema de ecuaciones 43

durante varios pasos de tiempo, se obtiene un incremento sustancial del numero de ite-raciones del metodo de CG debido a la velocidad de las ondas espirales que caracterizanla solucion de la ecuacion 3.1. Por todo esto se elige el precondicionador de Jacobi paratodas las simulaciones.

Utilizando un precondicionador de Jacobi, a los requisitos de memoria del algoritmoCG hay que anadir la matriz A−1 y el vector z, como se muestra en la tabla 3.4.

Cuadro 3.4: Requisitos por el uso del precondicionador Jacobi.

Matriz A−1 nx · ny · nz· 2

Vector z nx · ny · nz· 2

Las computaciones requeridas por el algoritmo PCG son: tres operaciones saxpy

(x + ay, donde x e y son vectores, y a es un escalar), dos productos escalares, unproducto matriz vector (equivalente a ocho operaciones saxpy) y una resolucion delprecondicionador (un producto escalar sin acumulaciones, si el precondicionador esJacobi). Todas ellas se realizan sobre nx · ny · nz · 2 nodos, lo que suponen alrededorde 7 Mflops por iteracion para nx = ny = nz = 51.

3.2.3. Metodo AF

La unica implementacion alternativa al metodo combinado CN–CG (Crank–Nicolson,Conjugate Gradient) que se ha considerado en esta tesis es el metodo AF. Aun tratan-dose de una tecnica que resuelve sistemas de ecuaciones algebraicas lineales por mediode una factorizacion aproximada, sus fundamentos subyacen en el modelo de ecuacionesdiferenciales del que se derivan las ecuaciones nodales.

El operador diferencial elıptico Λ se puede dividir facilmente en tres componentesen la forma:

Λ = Λx + Λy + Λz, Λx =∂2U

∂x2; Λy =

∂2U

∂y2; Λz =

∂2U

∂z2(3.5)

Consideremos asimismo que L, Lx, Ly, Lz, son las representaciones discretas decada uno de los operadores Λ. Teniendo en cuenta que L = Lx + Ly + Lz se puedeexpresar como (I+Lx)(I+Ly)(I+Lz)−LxLy−LxLz−LyLz−LxLyLz, se puede idearuna aproximacion que, despreciando los terminos de segundo y tercer orden2, resuelvala ecuacion 3.1, de la siguiente forma:

(I + µLx + αIx)(I + µLy + βIy)(I + µLz + γIz)Um = F(Um−1) (3.6)

Este metodo introduce errores de segundo orden (en el tiempo), y los errores defactorizacion pueden ser eliminados mediante iteraciones dentro de cada escalon tem-poral.

2Si no se consideran los errores de factorizacion, el sistema puede ser inestable.

Page 66: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

44 Capıtulo 3: Integracion numerica e implementacion paralela

Desarrollando esta tecnica, los operadores discretos correspondientes a la ecuacion3.1 se pueden expresar en la siguiente forma:(

I − k

2∆x2Dδ2

x −1

2kµ1J

s

)∆U∗∗ = D

(k

∆x2δ2x +

k

∆y2δ2y +

k

∆z2δ2z

)Us + kFs

(I − k

2∆y2Dδ2

y −1

2kµ2J

)∆U∗ = ∆U∗∗

(I − k

2∆z2Dδ2

z −1

2kµ3J

)∆U = ∆U∗

donde 0≤ µi ≤ 1, i =1,2,3, y µ1 + µ2 + µ3 = 1 y se han despreciado los errores defactorizacion.

3.3. Implementacion

3.3.1. Introduccion

A lo largo de las secciones anteriores, se han presentado diferentes tecnicas de integra-cion numerica, ası como posibles implementaciones de los algoritmos de resolucion delos sistemas de ecuaciones algebraicas que modelan el problema en cuestion. El abani-co de posibilidades de implementacion del modelo se abre aun mas si consideramos lasdiferentes arquitecturas sobre las que se pueden implementar dichos algoritmos, y losparadigmas de programacion que se pueden utilizar. La eleccion de una tecnica concre-ta requiere un proceso de seleccion laborioso que obliga a dejar en el camino numerosasalternativas que, en un area de conocimiento tan dinamica como el de la arquitecturade computadores, podrıan ser mucho mas viables en un plazo medio de tiempo.

Aunque una parte del proceso de seleccion ya se ha realizado (la propia eleccion delmodelo, de una tecnica implıcita, de una tecnica de resolucion del sistema, etc.), unade las motivaciones principales de esta tesis ha sido la caracterizacion del comporta-miento paralelo de problemas modelados mediante ecuaciones diferenciales integradosnumericamente sobre mallas regulares. Siguiendo esta filosofıa, no debemos continuar elproceso de sıntesis sin previamente analizar con mayor detalle la globalidad del ambitodel trabajo con el que nos vamos a encontrar.

En este sentido se hace necesario un estudio de las arquitecturas disponibles en laactualidad, de los modelos de programacion que mas se utilizan, de las bibliotecas dis-ponibles y de todos aquellos aspectos que pueden incidir en la implementacion paraleladel modelo.

El estudio no puede obviar las numerosas herramientas existentes para la implemen-tacion paralela de los metodos mas habituales del algebra lineal, como ScaLAPACK,

Page 67: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 45

BlockSolve, PETSc, Aztec, etc. [128, 72, 8, 44, 59]. Sin embargo, un simple analisis delcodigo fuente de estas bibliotecas revela que las implementaciones tienen carencias im-portantes. Por ejemplo, en muchos casos el programador debe aportar una rutina quecalcule el producto matriz vector por cuenta propia. En otros casos esto no es necesa-rio, pero los formatos de almacenamiento suministrados para las matrices no se ajustanadecuadamente a los problemas particulares del modelo (PETSc). En la mayorıa de loscasos, no incorporan las optimizaciones recomendadas por investigadores en el area(solapamiento de comunicaciones, aprovechamiento de la localidad, etc.). El analisisque se presenta en este capıtulo pretende determinar cuales son las caracterısticas masimportantes, desde el punto de vista computacional, del metodo de integracion parasugerir, precisamente, soluciones que permitan mejorar este tipo de herramienta.

Pero antes de proceder a este analisis, una comparacion de los resultados obtenidosen los programas secuencial y paralelo de los metodos AF y PCG nos permitira elegirel metodo mas adecuado para el problema fısico considerado, y de esa forma, centrarlos esfuerzos en la direccion adecuada. En la siguiente seccion se presentan las tecnicashabituales de paralelizacion de estos metodos y se muestran resultados comparativosque nos permiten descartar el metodo AF en los estudios sucesivos.

3.3.2. Paralelismo de los metodos

Paralelismo de AF

La estrategia mas extendida para la implementacion paralela del metodo AF esta ba-sada en una distribucion de datos conocida como descomposicion dinamica por bloques(DBCD). En esta tecnica, cada procesador es propietario de un bloque contiguo de lamalla, pero la distribucion se modifica con cada operador unidimensional, es decir, cam-bia con la direccion espacial que se resuelve. La solucion optima se obtiene realizandouna particion por bloques en la direccion z durante la resolucion en las direcciones x ey (figura 3.2a). Posteriormente se realiza una particion en las direcciones y o x cuandose resuelve el operador z (figura 3.2b) [106]. El principal inconveniente de esta tecnicaes la necesidad de acceder a una gran cantidad de datos remotos antes de proceder conla solucion en la direccion z, provocando un elevado numero de fallos de cache.

Una alternativa al DBCD es el algoritmo de Bruno–Capello [106] que particiona eldominio en

√NP ×√

NP ×√NP bloques de tal manera que solo hay un bloque por

procesador en cada plano de bloques en las tres direcciones; sin embargo, este algo-ritmo requiere un numero de procesadores cuya raız cuadrada sea un numero natural,imponiendo limitaciones al sistema paralelo.

Paralelismo del Gradiente conjugado

La paralelizacion del metodo CG es muy simple ya que cada operacion vectorial de estealgoritmo se puede paralelizar por separado, es decir, cada procesador ejecuta las ope-raciones escalares con un subconjunto de componentes de un vector, de forma que unaparticion por bloques de los vectores es suficiente para obtener un buen rendimiento.

Page 68: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

46 Capıtulo 3: Integracion numerica e implementacion paralela

y

x

z

Figura 3.2: DBCD en AF: (a) para resolucion en x e y, (b) para resolucion en z.

Para problemas derivados de la discretizacion de pdes en mallas regulares tridimensio-nales, la particion por bloques de la matriz del sistema por filas, y sus correspondientesvectores convenientemente alineados, equivale a una particion por bloques de los puntosde la malla en una de las direcciones espaciales, es decir, la direccion z si se emplea unorden natural de los puntos de la malla. Segun criterios basados exclusivamente en lasimplificacion de la programacion y en la estructuracion de los datos, en las implemen-taciones desarrolladas en este capıtulo no se ha considerado una distribucion interna delas ecuaciones nodales dentro de un mismo plano z, aunque se sabe que esta carenciapodrıa causar un ligero problema de desequilibrio de carga si el numero de planos z noes divisible por el numero de procesadores utilizado.

Sin tener en cuenta la fase inicial de establecimiento, es decir, centrandonos ex-clusivamente en su parte iterativa, el algoritmo PCG tiene una potencial perdida deeficiencia paralela en cinco puntos diferentes del programa que se agrupan en tres ca-tegorıas:

Precondicionamiento (calculo de zi−1). Es suficientemente conocido que determi-nados precondicionadores —en general, todos aquellos basados en factorizacionesincompletas— requieren, en la fase de precondicionamiento, una secuencia de ope-raciones con una fuerte componente secuencial, degradando significativamente elparalelismo de este paso.

Calculo de qi (producto matriz–vector). Este paso es crıtico desde el punto devista del paralelismo debido a la cantidad de datos que hay que utilizar y quehan sido calculados por otro procesador. Sin embargo, hay que observar que laparalelizacion del producto Ax para matrices en banda en las que A es dispersa,se puede desarrollar en muchos casos con un solapamiento casi perfecto entre los

Page 69: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 47

51x51x51 N º P rocesadores 101x101x101

Efic

ienc

ia

AF P C G

Figura 3.3: Eficiencia relativa de los metodos AF y PCG.

mensajes y las computaciones [85]. Los mensajes que se requieren para enviar losdatos del “halo”, es decir, los datos de la malla de puntos que corresponden a cadaprocesador y que se utilizan para computar datos en el procesador propietario delos datos colindantes (procesador vecino), se solapan con las computaciones de lasfilas de la matriz que corresponden a la parte interna del dominio. Se consideracomo parte interna a todo el dominio del procesador sin sus halos. Para unadistribucion de bloques a lo largo del eje z, el solapamiento es posible si los halosen ambos lados del dominio del procesador no se se solapan, es decir, si nz/NP≥ 3 siendo NP el numero de procesadores.

Reducciones de ρi−1, pi · qi y reduccion necesaria para detectar la convergencia(usando las normas estandares). En todas las operaciones en las que se requiereuna reduccion3, por ejemplo, en los productos internos y en la evaluacion de lacondicion de convergencia, no solo se precisa una comunicacion entre procesadorescon un patron“de todos a todos”, sino que ademas es necesaria una sincronizacionentre ellos para poder obtener un resultado correcto.

Comparacion de los metodos AF y PCG

En [67] se presentan varios resultados como la eficiencia relativa de los metodos AF(utilizando DBCD) y PCG en funcion del numero de procesadores y del tamano de lamalla, para un modelo de memoria compartida (figura 3.3).

Se observa que la eficiencia de AF es menor que la de PCG, aunque la diferenciadecrece cuando se utilizan mallas mas finas. El tiempo de ejecucion secuencial, que esmenor en el PCG, ha sido un factor crıtico para continuar nuestro trabajo sobre el mo-

3un calculo que requiere una aportacion de todos los elementos de un vector

Page 70: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

48 Capıtulo 3: Integracion numerica e implementacion paralela

delo basado en el metodo PCG. En principio, no podemos extrapolar estas conclusionesa otros problemas similares, e incluso a medios excitables en circunstancias diferentes,ya que dependen mucho del numero de iteraciones del algoritmo PCG, y este, a su vez,de las propiedades espectrales de la matriz y por tanto, del propio sistema de ecuacionesdiferenciales.

3.3.3. Paradigmas de programacion

Los paradigmas de programacion paralela se clasifican normalmente en tres grupos:memoria compartida, paso de mensajes y lenguajes de paralelismo de datos. En el pa-radigma de memoria compartida, la comunicacion entre las hebras paralelas (procesosasignados a diferentes procesadores) se desarrolla a traves de un area de memoria com-partida, y la sincronizacion se alcanza mediante el uso de variables semaforo, barreras,etc. [41]. En un lenguaje de programacion de paso de mensajes, las comunicacionesse realizan mediante intercambio explıcito de mensajes; en algunos casos, el envıo demensajes es bloqueante y el intercambio de mensajes implica en sı mismo un punto desincronizacion. En otros casos, se requieren sincronizaciones adicionales con mensajesque contienen flags (cumplen la funcion de un semaforo) o mediante barreras. Final-mente, en una aproximacion de paralelismo de datos, la comunicacion entre procesosque comparten memoria (o “hebras”) esta oculta en un lenguaje con un nivel semanticomas elevado, basado en una distribucion previa de los datos. Normalmente, las aproxi-maciones de memoria compartida y paralelismo de datos se consideran mas faciles deprogramar; sin embargo, para obtener una buena eficiencia en una aplicacion paralela,es altamente deseable conocer las propiedades paralelas del problema que se va a resol-ver, por lo que la complejidad de la estrategia de programacion es aproximadamentesimilar a la del paradigma de paso de mensajes.

En este trabajo se han analizado y comparado un modelo de programacion dememoria compartida (OpenMP) y dos de paso de mensajes (MPI y SHMEM).

OpenMP esta muy extendido y se considera como el lenguaje estandar para unaimplementacion de memoria compartida. Un modelo de memoria compartida no requie-re ninguna biblioteca especial, pero OpenMP proporciona numerosas directivas, muyutiles, para propositos de sincronizacion y privatizacion, que resultan en una rapida yfacil paralelizacion de bloques basicos. En cierta medida, OpenMP esta “invadiendo”muchas de las competencias de los lenguajes de paralelismo de datos y de las bibliotecasespecıficas de ciertas arquitecturas.

En la implementacion de PCG que se presenta en este trabajo, hay una sola regionparalela que cubre todo el programa, y no se ha utilizado ninguna directiva para ladistribucion de bucles.

En la version de paso de mensajes se han considerado las bibliotecas MPI y SHMEMporque son las que ofrecen mayor eficiencia en la mayorıa de las arquitecturas.

Cuando se utiliza MPI, las esperas para la llegada de los mensajes proporcionanintrınsecamente parte de la sincronizacion que se requiere (es decir, nunca podra con-tinuar el procesador que recibe en un punto B del codigo, si el que envıa no ha llegado

Page 71: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 49

al punto A de su codigo, en el cual se produce el envıo).

En SHMEM los envıos no son simetricos o bilaterales, es decir, por cada envıo(put) no encontraremos una recepcion (get), sino que envıo y recepcion son dos me-todos diferentes para comunicarse (desde el punto de vista del emisor o del receptor,respectivamente). Se puede optar por uno u otro segun las necesidades del programador.

En este trabajo se ha preferido shmem_put (envıo) en lugar de shmem_get (recep-cion) porque permite el solapamiento de las comunicaciones, si bien el numero de fallosde cache se incrementa debido a que shmem_put coloca los datos en la memoria prin-cipal del procesador remoto, mientras que shmem_get los lleva a su propia cache. Aligual que en OpenMP, se han anadido mensajes adicionales con flags para propositos desincronizacion, ya que la asimetrıa de los envıos no provoca sincronizacion. Afortuna-damente, las arquitecturas que se utilizan en este estudio aseguran que los mensajes, enla llegada, mantienen el mismo orden que en la salida, lo cual facilita la sincronizacioncon mensajes que contienen flags.

Tanto en memoria compartida como en paso de mensajes se han evitado las barrerasglobales porque, en ellas, todos los procesadores esperan a los otros en el mismo puntodonde se situa la barrera. En las implementaciones que se consideran en esta tesis, unprocesador (“consumidor de dato”) ha de detenerse al llegar a un punto (“punto deespera”), y puede proseguir cuando otro procesador (“productor de dato”) alcanza otropunto en el programa, previo al anterior, que hemos denominado “punto de permiso”.

Implementacion en memoria compartida

OpenMP es un conjunto de bibliotecas que ofrecen el soporte necesario para desarrollarprogramas paralelos de memoria compartida. De entre sus caracterısticas, la mas nota-ble, sin duda, es la de incluir una pareja de directivas que permite que todo el ambitodinamico incluido entre ellas se ejecute de forma simultanea (pero no sincronizada) envarios procesadores, compartiendo la parte del mapa de memoria que se desee, segunse explicita en la propia directiva, y privatizando el resto del mapa.

Si bien OpenMP ofrece numerosas facilidades para la paralelizacion de bloques ba-sicos de un programa (bucles, condicionales, etc.), en numerosos trabajos se criticala perdida de rendimiento de las aplicaciones cuando el grano de paralelismo es muyfino (bucles con pocas iteraciones). Muchos investigadores optan por la programaciondirecta en memoria compartida, calculando manualmente los lımites de los bucles y se-leccionando explıcitamente los procesadores que realizan los calculos. En este trabajo labiblioteca OpenMP se ha utilizado como ayuda en la fase de desarrollo, permaneciendoen la version final del programa unicamente las directivas de creacion y aniquilacionde la seccion paralela, y ocasionalmente algunas operaciones que trabajan a bajo nivel(por ejemplo, la directiva omp_atomic, que asegura la atomicidad de una sentencia). Enrealidad, se ha usado OpenMP exclusivamente para indicar las variables que se consi-deran privadas o compartidas, y a cuales hay que acceder de forma atomica. No se hanutilizado la mayorıa de las posibilidades de OpenMP, por lo que se puede considerarque se ha trabajado con un “modelo puro de memoria compartida mediante OpenMP”,en lugar de un “modelo OpenMP” [99].

Page 72: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

50 Capıtulo 3: Integracion numerica e implementacion paralela

En [87] se presenta un proceso que hemos desarrollado, mediante el cual se utilizaun modelo OpenMP para estudiar el paralelismo de un programa y llegar a convertirloen un modelo puro de memoria compartida.

Las ventajas de la programacion en memoria compartida, ampliamente descritas enla literatura [35, 41, 104, 103], residen en la facilidad para acceder a datos calculadosen procesadores remotos. No obstante, la necesidad de incluir puntos de sincronizacionen los programas complica significativamente la programacion, llegando a contrarrestarcompletamente las ventajas de este modelo. Los puntos de sincronizacion requeridos sonnecesarios para evitar lecturas o escrituras en localizaciones de memoria donde aun noesta permitido. Por similitud a los riesgos que ocurren en los procesadores segmentados,clasificaremos los puntos de sincronizacion en tres categorıas:

RAW (read–after–write): un procesador A lee un dato despues de que otro B lohaya escrito. Para asegurar que ası ocurre, sincronizaremos los procesadores A y B enun punto intermedio entre ambos eventos.

WAR (write–after–read): un procesador A escribe un dato despues de que otro Blo haya leıdo. Incluiremos la sincronizacion para asegurar que el procesador A no lomodifique antes de tiempo.

WAW (write–after–write): un procesador A escribe un dato despues de que otroB lo haya escrito. Este tipo de riesgos es tan infrecuente como en los procesadoressegmentados, ya que antes debe aparecer un riesgo RAW intermedio.

En nuestro programa hemos prescindido completamente de las barreras globales enfavor del uso de llaves o semaforos que eviten los riesgos mencionados. La activacion yreinicializacion de los contadores y de las variables flags se ha implementado cuidado-samente para aumentar el rendimiento al maximo, a la vez que se evita que la solucionfinal del programa dependa del procesador que vaya mas rapido (“carreras de datos”).

Los puntos de sincronizacion que se requieren para los productos internos y lasreducciones implican que todos los procesadores deben haber llegado a cierto puntodel codigo antes de proseguir. Estas sincronizaciones se han implementado usando con-tadores protegidos por variables llave, de forma que cada procesador incrementa elcontador cada vez que ha finalizado el calculo de la parte local del producto interno.Ningun procesador podra calcular la reduccion o producto interno global mientras elcontador no coincida con el numero de procesadores NP (eliminando de este modo elriesgo RAW). Para volver a poner a cero el contador, hay que estar seguro que todos losprocesadores lo han consultado (eliminando con ello el riesgo WAR). En este trabajose utiliza una pareja de contadores de forma alterna en las reducciones consecutivas, demanera que para una sincronizacion determinada se utiliza cierto contador A y para lasiguiente reduccion se utiliza un contador B. Cuando el contador B alcanza el valor NPel contador A se pone de nuevo a cero (ambas operaciones son realizadas por el mis-mo procesador). Esta tecnica es similar a la que se utiliza para implementar barrerasglobales y que se conoce como como “sense reversing barriers”.

Tambien se han incluido flags para solicitar el acceso a los datos del halo. Tanpronto como un procesador ha calculado los datos en sus bordes (fronteras), habilitael flag. Si otro procesador necesita esos datos, espera hasta que el flag se encuentre

Page 73: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 51

habilitado, y el mismo se encarga de inhabilitarlo, ya que es el unico al que le puedeafectar.

Implementacion con MPI

A diferencia del modelo anterior, el intercambio de datos entre procesadores vecinosrequiere la utilizacion de rutinas especıficas que envıan o reciben paquetes de datos.Cualquier envıo de mensajes en MPI requiere una recepcion en el procesador destino(esto se conoce como comunicacion simetrica o bilateral). Los mensajes de envıo yrecepcion pueden ser sıncronos o asıncronos. En el primer caso, el procesador que envıael mensaje espera a que el procesador destino lo reciba. En el segundo caso el procesadorenvıa el mensaje y continua su ejecucion. Por motivos de eficiencia, y buscando elsolapamiento de comunicaciones y computaciones, se han utilizado mensajes asıncronos.

En cualquier punto del programa de memoria compartida donde se incrementeun contador o se habilite un flag de halo, se coloca ahora un envıo con el dato odatos disponibles. En aquellos lugares donde se compruebe si el contador coincide conel numero de procesadores o si el flag de halo esta habilitado, ahora tendremos unarecepcion de los datos.

SHMEM, una aproximacion a memoria compartida

SHMEM comparte ventajas e inconvenientes con los modelos anteriores. Para el inter-cambio de mensajes utiliza comunicaciones unilaterales, en las que se colocan (shmem_put) o recuperan (shmem_get) datos en o desde procesadores remotos mediante lla-madas a rutinas que no necesitan confirmacion. A cambio, se requieren puntos desincronizacion entre los procesadores para evitar los riesgos mencionados anteriormen-te. En la mayorıa de los sistemas, el intercambio de mensajes con SHMEM asegura quelos mensajes llegan en el mismo orden en el que se emiten, por lo que normalmenteesta sincronizacion se efectua mediante el envıo de flags que actuan a modo de se-maforos. En consecuencia, desde el punto de vista de la programacion, este modelo esel mas complejo, aunque resulta mucho mas eficiente, sobre todo en arquitecturas conmemoria fısicamente distribuida [97, 125, 126].

Del mismo modo que en MPI, en todo punto del programa de memoria compartidadonde se incrementaba un contador o se habilitaba un flag de halo, se coloca ahora unenvıo con el dato o datos disponibles. Adicionalmente se envıa un flag asociado a dichomensaje que confirma su recepcion (asegurando el orden de las llegadas). En el puntodel programa MPI donde se recibıan los mensajes de reduccion, ahora se comprueba quehan llegado los flags de todos los procesadores remotos. Estos se inhabilitaran de unaforma similar a la reinicializacion de los contadores alternos en memoria compartida.Para los intercambios de halos, donde existıa una recepcion de halo del codigo MPI secomprueba ahora si el flag de dicho halo esta habilitado, y se deshabilita justo despuesde la comprobacion.

Page 74: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

52 Capıtulo 3: Integracion numerica e implementacion paralela

3.3.4. Arquitecturas

Para este trabajo se han seleccionado tres arquitecturas diferentes:

Cray T3E-900. Este es un computador de procesamiento masivamente paralelo(MPP) con 128 procesadores DEC Alpha-EV5.6 a 400 MHz, con 128 Mbytesde memoria por procesador. La cache de primer nivel es de 2×8 Kbytes, concorrespondencia directa y lıneas de 32 bytes. La cache de segundo nivel es de 96Kbytes, asociativa por conjuntos de 2 vıas y lıneas de 64 bytes. El rendimientopico nominal es de 900 Mflops/PE. En esta arquitectura solo se van a compararlos modelos de programacion de paso de mensajes (MPI y SHMEM).

Origin2000. Esta es una arquitectura multiprocesadora con 16 procesadoresMIPS-R12000 a 400 MHz, 256 Mbytes de memoria por procesador, y acceso amemoria no uniforme. La cache de primer nivel es de 2×32 Kbytes, asociativapor conjuntos de 2 vıas y lıneas de 32 y 64 bytes para datos e instrucciones, res-pectivamente. La de segundo nivel es de 8 Mbytes, con correspondencia directay lıneas de 128 bytes. El rendimiento pico nominal es 12,8 Gflops. En esta arqui-tectura se han comparado los tres modelos de programacion (OpenMP, MPI ySHMEM).

SUN HPC6500. Este es un sistema multiprocesador simetrico con acceso a me-moria no uniforme, con 18 procesadores UltraSPARC-II a 400 MHz y 18 Gbytesde memoria compartida. La cache de primer nivel es de 16 Kbytes, con corres-pondencia directa y lıneas de 32 bytes. La de segundo nivel es de 8 Mbytes,tambien con correspondencia directa, pero con lıneas de 64 bytes. El rendimientopico nominal es de 14,4 Gflops. En esta arquitectura se han comparado solo lasimplementaciones de MPI y OpenMP; ya que no esta disponible SHMEM.

3.3.5. Reordenacion de la computacion

Numerosos trabajos en la literatura han procurado reducir los costes de paralelizaciondel gradiente conjugado precondicionado ocultando de la latencia de las comunicacio-nes mediante calculos [10, 21, 33, 39, 48, 93, 66]. Para ello, se requiere una reordena-cion completa de las operaciones del algoritmo PCG. En este trabajo, el solapamientode las comunicaciones con las computaciones se ha implementado mediante mensajesasıncronos, en el modelo de paso de mensajes descrito anteriormente, y directivas deprebusqueda (prefetching), en un entorno de memoria compartida.

Cada iteracion del metodo CG contiene dos productos internos, tres operacionessaxpy (αx + y) y un producto matriz-vector Ax, y ademas, requiere al menos trespuntos de sincronizacion (uno por cada reduccion, es decir, los dos productos internos yla deteccion de la convergencia). Si bien la latencia de las comunicaciones del productomatriz-vector se puede ocultar con las propias computaciones, esto no es ası para lasreducciones, y habrıa que aprovechar cualquier otro computo para ocultar la latencia.Desafortunadamente, el diagrama de dependencias de las operaciones iterativas en elalgoritmo PCG muestra una fuerte secuencialidad para las operaciones que impide

Page 75: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 53

rhoZ p q alpha residuo

x

test

(a)

p q alpha residuo test

(b)

Z

Z’ rho

x

Figura 3.4: Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precondiciona-dor de Cholesky (b). Cada nodo representa una operacion de calculo del correspondiente escalar ovector. Las lıneas punteadas indican dependencias entre iteraciones diferentes y los cırculos negrosmensajes.

que estas puedan modificar su posicion en el programa (figura 3.4a), permitiendo laocultacion de la latencia de los mensajes (marcados con un cırculo negro en la figura).

Unicamente la actualizacion de la solucion x podrıa retrasarse a otro punto de la se-cuencia de operaciones, incluso una o varias iteraciones. De hecho, en [24] se aprovechaesta propiedad para actualizar el vector x cada cierto numero de iteraciones, incre-mentando de esa forma el rendimiento de la jerarquıa de memoria, pero necesitandoun almacenamiento adicional.

En [20] se puede encontrar una reordenacion optimizada del CG para computacionparalela. En la figura 3.4b se puede ver como la division de la fase de precondicionamien-to en dos operaciones modifica el diagrama de dependencias de tareas, permitiendo quela segunda fase pueda ocultar la latencia de comunicaciones de la primera reduccion,mientras que la actualizacion de x oculta la segunda.

Desafortunadamente, este metodo optimizado solo es util cuando se emplea comoprecondicionador una factorizacion incompleta [10]. Como se ha analizado anterior-mente (seccion 3.2.2), este tipo de precondicionadores no produce una aceleracion dela convergencia para el problema considerado aquı. Ademas, se debe hacer notar quealgunos autores han mostrado que el numero de iteraciones se reduce para estos pre-condicionadores, mientras que por lo general, el numero total de computaciones seincrementa considerablemente [11, 57, 88, 91].

En el caso de un precondicionador Jacobi o Block–Jacobi, el panorama no es tanfavorable. La simplicidad y la facilidad en la paralelizacion de estos precondicionadorescoartan la posibilidad de ocultar la latencia de la primera reduccion del algoritmo,ademas de la latencia requerida para la deteccion de la convergencia.

Page 76: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

54 Capıtulo 3: Integracion numerica e implementacion paralela

3.3.6. Variante de Gear et al. para PCG

Aykanat et al. [6] y Chronopoulos y Gear [19] han sugerido un metodo que modificael PCG para computadores paralelos. En este metodo, los mensajes de reduccion quecontienen los valores locales de los productos escalares se unen en un unico mensaje;por tanto, solo se requiere un punto de sincronizacion en cada paso de tiempo, aunqueson necesarias 2n operaciones adicionales por iteracion. El principal inconveniente deeste esquema es su dudosa estabilidad numerica [29].

El algoritmo de Gear et al. se resume de la siguiente forma:

Algoritmo 5

r0 = b − Ax0

β−1 = 0,p−1 = q−1 = 0resolver z0 en A · z0 = b0

ρ0 = r0 · z0

s0 = Az0

σ0 = z0 · s0

α0 =ρ0

σ0

for i = 1, . . . , Lpi−1 = zi−1 + βi−2pi−2

qi−1 = si−1 + βi−2qi−2

xi = xi−1 + αi−1pi−1

ri = ri−1 − αi−1qi−1

resolver zi en A · zi = risi = Azi

ρi = ri · zi

σi = zi · siβi =

ρi

ρi−1

αi =ρi

σi−ρiβiαi

end

En la figura 3.5 se muestra graficamente el algoritmo, destacando sus propiedadesen un entorno paralelo, y en relacion con el resto de las operaciones envueltas en laresolucion del sistema.

3.3.7. Metodo de Gear con reordenacion

En [67] presentamos una version modificada de la implementacion de Gear et al. delmetodo del CG. Esta implementacion tiene nuevamente en cuenta el solapamiento demensajes y computaciones con el objeto de minimizar el coste de las comunicaciones.Uno de los aspectos mas interesantes del algoritmo desarrollado radica en el procedi-miento que se ha seguido para su obtencion y que se presenta a continuacion.

Page 77: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.3. Implementacion 55

matriz: A=f(u)rhs: b=f(u)

u=u+∆ut=t+∆t

Sincronización

Reducciones

Intercambio de halosnn

Resultados globalesResultados locales

norm(b)

ro=b-A·xo

z0=P·bρo =b·z0

s0=A·z0

σo =z0·s0

norm(b), α0 =ρo /σo

pi = zi + βi-1·pi-1

qi = si - βi-1·qi-1

xi+1= xi + α i·pi

ri+1 = ri - α i·qi

Check convergence;

zi =P·riρi = ri ·zi

si=A·zi

σi =zi·si

ρi , σi , βi= ρi / ρi-1, α i

bucle

inicializació

n

resolver: A·∆u=b⇒ método Gear

Figura 3.5: Metodo de Gear et al.

Busqueda del algoritmo optimo

El grafo de dependencias entre tareas mostrado en la figura 3.4a muestra que en elalgoritmo del gradiente conjugado apenas existe la posibilidad de modificar el ordende las operaciones que ocurren internamente. Las dependencias de datos fuerzan a quecada operacion tenga que realizarse despues de la que produce el dato requerido, yunicamente podrıa cambiar de posicion la actualizacion de x. Cuando se considera laposibilidad de desplazar dicho nodo desde una cierta iteracion a la siguiente, es facilobservar que existen siete formas de ordenar los nodos que cumplen la regla siguiente:si un nodo A depende de un dato que produce B, entonces el numero de orden de B esmenor que el de A. Este tipo de ordenacion de los nodos de un grafo se conoce comoordenacion topologica. En [87] presentamos un algoritmo simple que permite realizarla busqueda de todas las ordenaciones topologicas posibles de un grafo (apendice C).

En la figura 3.4b se observa como la division de un nodo en subnodos puede alterarla relacion de dependencias de forma que se incremente significativamente el numerode ordenaciones topologicas. En este caso existen 16 ordenaciones validas.

En un grafo tan simple como el considerado en la figura 3.4, la busqueda de unacombinacion optima que permita ocultar la latencia de las comunicaciones se puederealizar directamente. No obstante, un diagrama similar para el algoritmo de Gear

Page 78: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

56 Capıtulo 3: Integracion numerica e implementacion paralela

revela la existencia de cientos de combinaciones, debido a una mayor libertad a la horade ubicar ciertas operaciones (se trata de un problema NP–completo). Con el programadesarrollado en [87], encontramos un algoritmo optimo de forma inmediata.

En la figura 3.6 se muestran las modificaciones aplicadas al algoritmo de Gear quehan permitido ocultar la latencia de todas las comunicaciones.

norm(b)

ro=b-A·xo

z0=P·bρo =b·z0

s0=A·z0

σo =z0·s0

norm(b), α0 =ρo /σo

pi = zi + βi-1·pi-1

qi = si - βi-1·qi-1

xi+1= xi + α i·pi

ri+1 = ri - α i·qi

Check convergence;

zi =P·riρi = ri ·zi

si=A·zi

σi =zi·si

ρi , σi , βi= ρi / ρi-1, α i

norm(b)

ro=b-A·xo

z0=P·bρo =b·z0

qi = si - βi-1·qi-1

s0=A·z0

σo =z0·s0

pi = zi + βi-1·pi-1

norm(b), α0 =ρo /σo

ri+1 = ri - α i·qi

Check convergence; xi+1= xi + α i·pi

zi =P·riρi = ri ·zi

si=A·zi

σi =zi·si

pi = zi + βi-1·pi-1

qi = si - βi-1·qi-1

xi+1= xi + α i·pi

ρi , σi , βi= ρi / ρi-1, α i

Figura 3.6: Reordenacion de operaciones para el metodo de Gear et al.

3.4. Resultados

3.4.1. Procedimiento

Como ha comentado en la seccion 3.3.1, es necesario establecer las condiciones bajo lascuales se comporta mejor cada una de las posibles implementaciones consideradas delalgoritmo PCG con precondicionador de Jacobi. En esta seccion no solo se comparanlas posibles versiones, sino tambien varios modelos de programacion implementadossobre distintas arquitecturas. Una comparacion de esta magnitud no puede realizarsesin prestar atencion a numerosos factores que podrıan alterar los resultados, y que, endefinitiva, provocarıan la extraccion de conclusiones erroneas.

Page 79: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.4. Resultados 57

Con objeto de comparar sobre la misma base las diferentes implementaciones delmetodo PCG paralelo, se han tenido que tomar las siguientes decisiones.

Consideraciones generales

La primera de ellas afecta al peso que tienen las diferentes partes del algoritmo PCG.En cada paso de tiempo, la solucion del sistema de ecuaciones algebraicas se puededividir en dos partes: una de inicializacion —que incluye la formacion de la matriz ydel lado derecho del sistema b, el calculo del precondicionador y la inicializacion delPCG— y otra de iteraciones. Dado que diferentes parametros y tamanos del problemaimplican una velocidad de convergencia distinta, el cociente entre el tiempo requeridoen ambas partes puede variar considerablemente. Para simplificar la presentacion delos resultados y evitar problemas con la precision o exactitud de los temporizadores,se han medido juntos los tiempos de ambas partes. Se han realizado 10 iteraciones entodas las pruebas. Este valor puede no producir resultados exactos en algunos casos,pero es suficientemente grande para proporcionar una comparacion fiable entre lasdiferentes implementaciones que se han considerado, y suficientemente pequeno paraevitar inestabilidad numerica, es decir, evitar pequenos valores de α en el metodoPCG.

Se han comparado dos tamanos de problema: mallas de 51×51×51 y 75×75×75puntos. Una malla mas gruesa es insuficiente para proporcionar comparaciones signifi-cativas en el rendimiento de las implementaciones paralelas que se han considerado eneste trabajo, mientras que una malla mas fina podrıa llegar a ser intratable en algunasarquitecturas.

Consumo de memoria

Observese que para una malla de 75×75×75 puntos se cumple que nx = ny = nz = 75,ne = 2, y hay 16 vectores (8 diagonales en la matriz y los vectores A−1, Us, ∆U, b,p, q, r y z, donde p, q, r y z son vectores que se computan en el metodo PCG).Por tanto el consumo de memoria es de 2 · 75 · 75 · 75 · 16 · 8 bytes = 103 Mbytes. Enel metodo de Gear es necesario incrementar a 17 el numero de vectores. En general,utilizando aritmetica de doble precision, el consumo total de memoria es: no total depuntos de la malla × 272 (para el metodo de Gear).

Opciones de compilacion

Para la compilacion de los programas se han utilizado las directivas de compilacionmas avanzadas, incluyendo software pipelining, inlining de procedimientos, prebusque-da (prefetching), etc., con el nivel mas alto de optimizacion, especialmente para el nucleodel algoritmo PCG. Se han realizado pruebas iniciales para realimentar al compiladorcon datos extraıdos de una simulacion tıpica. Tambien se han empleado bibliotecasBLAS optimizadas para cada arquitectura. En cada caso, se han realizado diferentespruebas para obtener la mejor combinacion de parametros. El numero de procesadoreses conocido en tiempo de compilacion, permitiendo optimizaciones acordes al parale-lismo. De esta forma, el programa paralelo con un procesador equivale al programasecuencial. Se ha prestado especial atencion a la parte iterativa de PCG y al producto

Page 80: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

58 Capıtulo 3: Integracion numerica e implementacion paralela

matriz vector.

Numero de procesadores

Se han elegido ocho procesadores trabajando en paralelo porque un numero mas altopodrıa entrar en conflicto con los recursos disponibles.

Opciones de ejecucion

Para hacer las ejecuciones se ha procurado utilizar un modo especial que hay en todoslos sistemas y que asegura que el programa puede hacer uso exclusivo de los proce-sadores. Esto significa que se ha prohibido la entrada de otros usuarios para que enlas mediciones no puedan influir sus programas. En este modo (a veces llamado modobenchmark) se bloquean el resto colas de la maquina y se dejan pasar los procesosde uno en uno. Ademas se ha esperado a que existiera una baja carga de la maquina(domingos, meses de verano, etc.). Se ha procurado el alojamiento de los datos en lasmemorias afines a los procesadores, siempre y cuando la arquitectura lo permitiese (conplacefile, en la Origin2000, por ejemplo). Se ha prestado especial atencion al criteriofirst-touch que aloja una pagina de datos en la memoria afın al procesador que primerola utiliza.

Criterios estadısticos para la seleccion de resultados

Como hemos mencionado anteriormente, para la medicion de los tiempos de ejecucionque se van a utilizar en la evaluacion de resultados, hemos utilizado un parametroestadıstico basado en los tiempos de ejecucion de un cierto numero de mediciones Ntomadas para cada arquitectura [47].

Una vez calculada la media y la desviacion tıpica de las N muestras, suponemosuna distribucion normal de los resultados, y estimamos que el tiempo optimo de laejecucion se corresponde con un valor preasignado para la variable tipificada (aquellaque deja a su izquierda un 5% del area de la campana de Gauss, es decir, z=-1,645).

La razon de esta eleccion se basa en parte en el hecho de que el programa secuencialejecutado es completamente determinista y tiene unos requisitos fijos de CPU (o, engeneral, de recursos) para los datos que se utilizan. Por otro lado, hay arquitecturasmas expuestas que otras a variaciones no deterministas ajenas al programa. Como elobjetivo de esta tesis es evaluar los diferentes algoritmos en varias arquitecturas y nocomparar las maquinas entre sı, se pretende mostrar los resultados para esa fraccionno determinista y, por tanto, eliminar al maximo la componente aleatoria.

Los pasos y criterios concretos utilizados para la eleccion del numero de muestrasson:

Asumir que el tiempo de ejecucion de cierto programa en una arquitectura sepuede expresar como la suma de un tiempo determinista mas un coste adicionalde caracter aleatorio ajeno al programa [92].

Asumir que este coste adicional se puede representar con una distribucion normal,y, por tanto, simetrica [1].

Page 81: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.4. Resultados 59

Realizar una toma de medidas inicial, con un elevado numero de muestras (N=500),utilizando una ejecucion secuencial tıpica en cada maquina, en modo benchmark.

Determinar la media aritmetica x y la varianza s2 del muestreo.

Calcular la unidad de desviacion z en la curva normal tipificada a la que lecorresponde un area bajo dicha curva igual a 0,05 (este valor es z=-1,645).

El intervalo ( x-1.645·s, x + 1,645 · s) indica que existe una probabilidad del90% de que una nueva medicion se encuentre en dicho intervalo. Suponiendo unadistribucion simetrica de los costes aleatorios, asumimos que ese intervalo estacentrado y, por tanto, solo un 5% de futuras muestras caerıan en el intervalooptimo (–∞, x–1,645·s).Asumiendo que x y σ = s son los parametros exactos de la poblacion, calcularel tamano de la muestra m para la cual, el computo de xm − 1, 645 · sm (siendoxm y sm la media y desviacion tıpica de la muestra m) se obtiene con un errorinferior al 5% ( ± 2,5%) y asumiendo un grado de confianza del 99,79% (queconsideramos buena). Para ello, se debe cumplir

0,025 · x ≥ 3,00 · σ√N

⇒ N =

(3,00 · σ0,025x

)2

(3.7)

donde N es, por tanto, el mınimo numero de ejecuciones que hay que realizarpara obtener un tiempo de ejecucion optimo.

Eleccion de la malla

51× 51× 51 es la mınima resolucion para obtener resultados suficientemente precisosy 75 × 75 × 75 es la maxima resolucion que permite ejecutar las simulaciones en lamayorıa de las arquitectura sin problemas de memoria, a la vez que es suficiente paradeterminar la escalabilidad del modelo paralelo.

3.4.2. Analisis de resultados

En las tablas 3.5 y 3.6 se presentan los resultados correspondientes a las mallas de51× 51× 51 y 75× 75× 75 puntos, respectivamente. En cada una de ellas se muestranlos valores de tiempos de ejecucion de un paso de tiempo del integrador, con uno yocho procesadores, y la correspondiente eficiencia. Estas medidas se han realizado enlas tres arquitecturas elegidas (Origin2000, Cray T3E y SUN HPC6500) y con cada unode los modelos de programacion de que disponen. Por ejemplo, en el Cray T3E solose han realizado con MPI y SHMEM. Todo esto se ha repetido para cada algoritmoo version de PCG, es decir, para PCG Gear sin solapamiento (seccion 3.3.6), PCGGear con solapamiento (seccion 3.3.7), PCG estandar sin solapamiento (seccion 3.3.2)y PCG estandar con solapamiento (seccion 3.3.5). De esta forma se pueden compararlos resultados de los diferentes algoritmos, modelos de programacion, arquitecturas,etc.

Page 82: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

60 Capıtulo 3: Integracion numerica e implementacion paralela

Cuadro 3.5: Tiempos de ejecucion (en segundos) y eficiencia para los metodos PCG Geary PCG estandar en una malla de 51×51×51 puntos.

PCG Gear PCG estandarModelo Sin solapamiento Con solapamiento Sin solapamiento Con solapamientode prog 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef.

ORIGIN2000MPI 1,585 0,111 1,79 1,582 0,105 1,84 1,248 0,090 1,66 1,248 0,088 1,70

OpenMP 1,582 0,175 1,13 1,583 0,173 1,12 1,224 0,125 1,19 1,231 0,122 1,23SHMEM 1,652 0,102 1,94 1,552 0,099 1,95 1,199 0,083 1,81 1,196 0,083 1,80

CRAY T3EMPI 2,230 0,327 0,85 2,231 0,331 0,83 1,802 0,267 0,84 1,822 0,276 0,82

SHMEM 2,229 0,315 0,88 2,213 0,313 0,88 1,816 0,259 0,87 1,803 0,257 0,87SUN HPC6500

OpenMP 4,345 0,614 0,88 4,353 0,589 0,92 3,430 0,422 1,01 3,413 0,444 0,96MPI 3,031 0,142 2,67 3,152 0,139 2,83 2,485 0,124 2,51 2,580 0,122 2,63

Cuadro 3.6: Tiempos de ejecucion (en segundos) y eficiencia para los metodos PCG Geary PCG estandar en una malla de 75×75×75 puntos.

PCG Gear PCG estandarModelo Sin solapamiento Con solapamiento Sin solapamiento Con solapamientode prog 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef.

ORIGIN2000MPI 6,566 0,992 0,78 6,665 0,973 0,80 4,910 0,808 0,72 4,784 0,791 0,74

OpenMP 6,205 0,752 1,03 6,211 0,753 1,03 4,655 0,563 1,03 4,689 0,561 1,04SHMEM 6,774 0,956 0,81 6,709 0,947 0,82 4,985 0,771 0,75 4,732 0,775 0,76

CRAY T3EMPI 7,203 0,959 0,93 7,187 0,963 0,93 5,819 0,798 0,91 5,820 0,786 0,92

SHMEM 7,260 0,973 0,93 7,312 0,971 0,93 5,867 0,785 0,93 5,911 0,799 0,91SUN HPC6500

OpenMP 15,47 2,361 0,82 15,52 2,351 0,83 12,37 2,263 0,68 12,78 2,169 0,74MPI 12,71 1,031 1,54 12,42 0,986 1,58 9,823 0,896 1,37 8,708 0,891 1,22

Observese que estos resultados se han obtenido con los computadores casi comple-tamente dedicados a la solucion del modelo de dos ecuaciones que se presenta en estetrabajo (ecuacion 3.1). Los resultados que se presentan aquı se ajustan a los criteriosestadısticos establecidos en la seccion anterior y por tanto, los errores en la medida deltiempo de ejecucion son inferiores al 5%. De estos resultados se extraen las siguientesconclusiones:

i) La version estandar ofrece los mejores resultados. Lo primero que seobserva en las tablas 3.5 y 3.6 es que el tiempo de ejecucion de la version de Gear etal. [19] es claramente superior a la implementacion estandar de PCG. Si bien esto esevidente para un procesador (ya que se ejecutan 2n operaciones en punto flotante adi-cionales por iteracion), sorprende que con 8 procesadores los tiempos de ejecucion sigan

Page 83: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.4. Resultados 61

siendo muy superiores (15 por ciento o mas). Pruebas adicionales con 16 procesadoresratifican los malos resultados del algoritmo de Gear.

Para explicar las causas de este bajo rendimiento paralelo, hemos analizado el tiem-po consumido en los puntos de sincronizacion de la parte iterativa del programa. Funda-mentalmente, el tiempo consumido se debe a las esperas de los procesadores con menorcarga computacional. Por ejemplo, en una malla de 51× 51× 51, con 8 procesadores,hay 5 procesadores con 6 planos y tres procesadores con 7 planos, lo cual obliga a loscinco primeros procesadores a esperar al resto. Hemos realizado una prueba con unamalla de 56, en la que no hay desequilibrio de carga alguno, y, en este caso, el tiempoconsumido en los puntos de sincronizacion es muy bajo en todos los procesadores (in-ferior al 1% del tiempo de CPU). En conclusion, podemos decir que la reduccion delnumero de puntos de sincronizacion no ofrece un gran beneficio, ya que el coste de lassincronizaciones se debe fundamentalmente al desequilibrio de carga y no a la propiaoperacion de sincronizacion. En el algoritmo de Gear encontramos ciertamente un solopunto de espera “al mas lento”, pero la espera es mucho mayor, ya que se acumulanlos desequilibrios de toda la iteracion. Tan solo las simulaciones realizadas con unacarga muy elevada de la maquina se observa que los peores tiempos obtenidos con laversion tradicional son mas grandes que los peores de la version Gear4, pero, aun ası,los promedios siguen siendo mejores para la version estandar. Por otro lado, la versionde Gear tiene una mala reputacion debido a sus problemas de estabilidad [24].

ii) El modelo de programacion optimo depende del tamano de la mallay la arquitectura. En la malla gruesa, las eficiencias obtenidas son muy buenas enpracticamente todos los casos, llegando a ser muy elevadas en las implementacionescon paso de mensajes en las dos maquinas de memoria compartida (SUN y Origin).Con la malla fina, en la Origin2000, las mejores eficiencias se obtienen con el modelode memoria compartida (OpenMP). Evidentemente, las eficiencias superiores a 1 sedeben al efecto de la cache (de 32 Kbytes y 8 Mbytes en la Origin2000, 16 Kbytesy 8 Mbytes en SUN; 8 Kbytes y 96 Kbytes en Cray T3E ), y son mas pronunciadascuanto mayor es la cache. La caıda del rendimiento del modelo de paso de mensajesen las maquinas SUN y Origin se debe a la perdida del efecto cache. En el modelo dememoria compartida, el incremento del rendimiento con mallas finas en la Origin2000se justifica por un fenomeno circunstancial que provoca un rendimiento excesivamentebajo en la malla de 51× 51× 51 puntos:

La figura 3.7 muestra el tiempo de ejecucion con ocho procesadores de la imple-mentacion en memoria compartida (OpenMP) usando la version estandar del gradienteconjugado para diferentes tamanos de mallas, sobre el computador Origin2000. La cur-va muestra oscilaciones en las que uno de los picos altos coincide precisamente con lamalla de 51×51×51 puntos. Estas oscilaciones (ademas de otras circunstancias tambiende caracter mas o menos aleatorio) son debidas a que en cada una de las mallas, lacantidad de datos propios alojados en memorias remotas es muy diferente, porque, aun-que se intenta que cada procesador guarde su porcion de datos en su propia memoria,esto no es siempre posible debido a la granularidad de la polıtica de almacenamiento.La polıtica First Touch Placement utilizada por la Origin2000 almacena una pagina

4Estas pruebas se realizaron forzando llamadas al sistema en las esperas (con variables de entornocomo DSM WAIT=YIELD), y permitiendo ası las entradas de otros procesos.

Page 84: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

62 Capıtulo 3: Integracion numerica e implementacion paralela

40 45 50 55 60 65 70 75 800

10

20

30

40

50

60

70

80

Grid size

Tim

e (s

econ

ds)

no padding padding & page migration

Figura 3.7: Tiempos de ejecucion del programa de memoria compartida para diferentes tamanosde malla (Origin2000). En el eje x se representa la resolucion en cada una de las tres dimensionesespaciales.

completa en la memoria del procesador que primero la utiliza, pero, al ser una paginael grano mınimo de la polıtica de almacenamiento, puede ocurrir que un procesadoralmacene gran parte de los datos que son computados por otro (“efecto pagina”). Elpico situado en la malla de 64×64×64 tiene un origen diferente, y es debido al conocidofenomeno thrashing, propio del tipo de cache de la Origin2000 (L2 con correspondenciadirecta). Este problema se soluciona facilmente agregando unos pocos elementos al finalde cada matriz (padding). Precisamente, al realizar esta operacion, ademas de desapa-recer el pico en la malla de 64×64×64, el resto de los picos de la curva de la figura3.7 cambia completamente de posicion, como cabıa esperar. El resultado de aplicar latecnica de padding en combinacion con la habilitacion de la migracion de paginas (quereduce el “efecto pagina” a la mitad) se muestra tambien en la figura 3.7.

Para un determinado padding, el tiempo de ejecucion en la malla de 51×51×51 pasaa ser 0,0827 segundos en la version normal o estandar y 0,0802 segundos si se realizasolapamiento, demostrando de esta forma el buen rendimiento del modelo OpenMP,tambien en mallas gruesas (siempre sobre la Origin2000).

El problema del “efecto pagina” es exclusivo del modelo de memoria compartida.La curva correspondiente en un modelo de paso de mensajes (SHMEM) muestra uncomportamiento mucho mas regular en el que el crecimiento esperado es O(n3), eltamano del problema. Este comportamiento es practicamente identico en todos loscomputadores analizados (figura 3.8).

En realidad, debido al reparto de carga por planos z, el tiempo de ejecucion es O(n2)para los tamanos de mallas consecutivos que cumplen (g − 1)/NP = cte., siendog el numero de puntos de la malla en cada dimension; y de O(n3) para mallas con gmod NP = cte. Sin solo se tiene en consideracion el numero de operaciones en puntoflotante que corresponden a cada procesador (y salvo un factor de escala), la curva detiempos de ejecucion debe tener un aspecto similar al de la grafica de la figura 3.9, que

Page 85: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.4. Resultados 63

40 45 50 55 60 65 70 750

1000

2000

3000

4000

5000

6000

7000

−>

−>

−>

Figura 3.8: Tiempos de ejecucion (unidad= 10−5 segundos) del programa SHMEM para dife-rentes tamanos de malla (Origin2000, 8 procesadores). Las flechas indican el incremento en eltiempo de ejecucion debido al coste del desequilibrio de carga.

representa el numero real de operaciones en punto flotante en funcion del tamano dela malla [74].

0 10 20 30 40 50 60 70 800

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 10

4

Figura 3.9: Numero de operaciones en punto flotante por procesador, para diferentes tamanosde malla y 8 procesadores. El factor de escala es 720 (110 flops por nodo para el calculo delsistema, 6 flops para la actualizacion de la solucion y 604 para el gradiente conjugado, en el cualse ejecutan 54 operaciones en cada una de las 10 iteraciones empleadas).

Comparando la curva obtenida experimentalmente con la teorica (y salvo factoresde escala) se explican los incrementos mas pronunciados entre, por ejemplo, las mallasg=48 y g=49, o g=56 y g=57 (figura 3.10). Observese por un lado que los intercambiosde mensajes, de O(n2), suavizan los escalones experimentales frente a los teoricos.Ademas, a partir de la malla de 65 puntos, los 14 vectores usados en la parte iterativa

Page 86: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

64 Capıtulo 3: Integracion numerica e implementacion paralela

del algoritmo PCG con 2 · 65 · 65 · 9 elementos cada uno (8,12 Mbytes) no cabencompletamente en la cache L2 (8 Mbytes) de al menos un procesador (aquel al quecorresponden 9 planos z ), por lo que los tiempos de ejecucion empiezan a ser penalizadospor la reduccion en el ancho de banda.

40 45 50 55 60 65 70 750

1000

2000

3000

4000

5000

6000

7000

Figura 3.10: Tiempos de ejecucion SHMEM para diferentes valores de g comparados con elnumero de operaciones en punto flotante.

iii) El solapamiento de mensajes no es aprovechado adecuadamente. Lacomparacion de los tiempos de computacion en las versiones con solapamiento y sinsolapamiento muestra que el beneficio que se obtiene con esta tecnica es muy reducido onulo. En particular, en el Cray T3E no se mejoran en ningun caso los tiempos obtenidoscon la implementacion normal. Esto es consecuencia de la propia arquitectura del CrayT3E [101]. Algo parecido ocurre en la Origin2000, donde el solapamiento reduce muyligeramente los tiempos de ejecucion (alrededor de un 5% en MPI y menos del 2%en SHMEM). En la implementacion MPI–HPC6500, el solapamiento es algo superior,aunque siempre dentro de los lımites de error en la medicion. En la mayorıa de loscasos, se trata de un problema de implementacion de los modelos de paso de mensajes,ya que, al parecer, los desarrolladores han premiado la eficiencia de las comunicacionessıncronas en detrimento de las asıncronas. Parece que esta tendencia esta cambiando,como se ha podido comprobar en ejecuciones posteriores con las bibliotecas de pasode mensajes MPI–2, con las cuales el solapamiento permite incrementar el rendimientohasta en un 20% (seccion 4.3).

iv) Paradojicamente, las versiones ordenadas para solapamiento mejoranlos programas que utilizan OpenMP. A pesar de que la tecnica de solapamientose introduce para ocultar la latencia de las comunicaciones en los multiprocesadoresde memoria distribuida, en las maquinas con memoria compartida tambien es posibleaprovechar la latencia de los accesos a memoria remota. Es bien conocido que la inclu-sion de directivas de prebusqueda de bloques de cache (prefetching) permite accedera los datos situados en los niveles mas altos de la jerarquıa de memoria mientras serealizan computaciones que no dependen de variables situadas en dichos bloques. En

Page 87: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

3.5. Conclusiones 65

principio, esto es tambien valido para los accesos a los datos situados en memorias re-motas, y, por tanto, la simple inclusion de directivas de prebusqueda en los programas,con la suficiente antelacion como para ocultar la latencia remota, permitirıa el solapa-miento sin necesidad de otro tipo de ordenacion. No obstante, la reordenacion permite,adicionalmente, mejorar el rendimiento debido a la implementacion de las sincroniza-ciones. Como hemos mencionado anteriormente, el uso de variables semaforo permiteque los procesadores se sincronicen punto a punto. En las versiones “no ordenadas”existe una alta probabilidad de que dichos semaforos no se encuentren habilitados en elmomento que se consultan, ya que la habilitacion por otro procesador se produce en elmismo instante que la comprobacion. En las versiones “ordenadas”, esta comprobacionse retrasa al mismo punto del programa en el que realmente se necesita la informacion,por lo que la probabilidad de tener que esperar es mucho menor.

v) La ordenacion de las computaciones afecta al rendimiento de la jerar-quıa de memoria.

En principio parece claro que la ordenacion debe afectar negativamente al rendi-miento de la jerarquıa de memoria, ya que el orden natural de las operaciones en el quecada dato se utiliza justo despues de haberse generado, favorece que este se encuentreen los niveles mas bajos de la cache (localidad temporal). En los codigos que aquı seevaluan, apenas se observa este fenomeno en las ejecuciones secuenciales, debido a lostamanos de la malla: son demasiado grandes para conservar un determinado vectoren la cache de primer nivel entre una operacion y la siguiente. Respecto a la cacheL2, la malla de 51 × 51 × 51 puntos es demasiado pequena para que sea desalojada(salvo en los casos en los que se produce trashing); la malla de 75 × 75 × 75 puntosdemasiado grande, incluso para las L2 de mayor tamano. La inclusion de directivas deprebusqueda contribuye a suavizar aun mas este problema, por lo que solo en el CRAYT3E se observa una ligera perdida de rendimiento en la malla de 75× 75× 75 puntos.

En las ejecuciones paralelas, es posible que el problema se acentue. Sin embargo,solo un estudio muy minucioso, especıfico para cada arquitectura, y que analizase la in-fluencia de las directivas de prebusqueda, pondrıa de relieve la magnitud del problema.Podemos pensar que, efectivamente, el orden de las computaciones afecta negativamen-te, y que sea esta una de las causas por las que no produzca grandes ventajas, a pesarde reducir los costes de paso de mensajes (o sincronizacion).

3.5. Conclusiones

En este capıtulo se han presentado diferentes tecnicas de integracion del modelo deecuaciones de Belousov–Zhabotinskii y las implementaciones paralelas mas eficientespara los metodos seleccionados.

Los resultados obtenidos nos permiten establecer que la implementacion paralelaestandar del Gradiente Conjugado ofrece rendimientos muy superiores al resto de lastecnicas consideradas para nuestro problema. Sin embargo, no se puede afirmar queexistan unas diferencias notorias en cuanto a rendimiento entre los distintos modelosde programacion y las distintas organizaciones de los calculos.

Page 88: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

66 Capıtulo 3: Integracion numerica e implementacion paralela

En el siguiente capıtulo, se consideran los resultados y conclusiones obtenidos en laseccion anterior con el fin de realizar una implementacion optima del algoritmo, parael problema considerado en esta tesis, es decir, ondas espirales en medios excitablestridimensionales.

Page 89: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4Implementacion optimadel metodo PCG paramatrices en banda

En el capıtulo anterior se han obtenido algunas conclusiones importantes sobre la efi-ciencia de la implementacion paralela del metodo PCG utilizando diferentes arquitec-turas y paradigmas de programacion.

El objetivo de este capıtulo es presentar una version del metodo PCG optimizadapara la resolucion del problema fısico de la propagacion de ondas espirales en mediosexcitables tridimensionales. Para ello, en la seccion 4.1 se analizan detalladamentelas conclusiones que se han obtenido en el capıtulo anterior, y se propone una nuevaimplementacion del algoritmo.

Esta nueva implementacion se compara con dos de las implementaciones desarro-lladas en el capıtulo anterior. Los resultados se presentan en la seccion 4.2.

En la seccion 4.3 se desarrolla la implementacion del codigo utilizando un modelode programacion paralela mixto paso de mensajes/memoria compartida que aprovechalas ventajas de cada uno de ellos y amortigua sus inconvenientes. Finalmente, en laseccion 4.4 se presentan las conclusiones.

4.1. Implementacion optima del metodo PCG para

matrices en banda

Las conclusiones que se han obtenido en el capıtulo anterior, sobre la eficiencia de laimplementacion del metodo PCG, se pueden resumir como sigue:

Se debe utilizar solapamiento de acceso a memoria remota, pero teniendo encuenta que se puede producir un perjuicio de la localidad propia del programa.

67

Page 90: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

68 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

No es conveniente la reduccion del numero de puntos de sincronizacion en elprograma, si es a costa del incremento de operaciones.

Se debe aprovechar la localidad siempre al maximo.

Se prefieren las bibliotecas especıficas precompiladas para cada arquitectura a loscodigos especıficos.

Se debe tener en cuenta el equilibrio de la carga.

Para establecer la organizacion mas adecuada de las computaciones en PCG, analiza-remos con mas detalle el algoritmo. PCG se presenta a menudo tal y como se escribeen el algoritmo 6.

Algoritmo 6

r0 = b − Ax0

resolver z0 en A · z0 = r0

ρ0 = r0 · z0

p1 = z0

q1 = Ap1

α1 =ρ0

p1·q1

r1 = r0 − α1q1

for i = 2, . . . , Len cualquier posicion xi−1 = xi−2 + αi−1pi−1

resolver zi−1 en A · zi−1 = ri−1

ρi−1 = ri−1 · zi−1

pi = zi−1 +ρi−1

ρi−2pi−1

qi = Api

αi =ρi−1

pi·qi

ri = ri−1 − αiqi

endxL = xL−1 + αLpL

donde fundamentalmente se ha desenrollado la primera iteracion del bucle, dejandoexclusivamente operaciones incondicionales dentro de la parte iterativa. Es frecuenteque, una vez conocidas α y p, la actualizacion de x se retrase una iteracion, permitiendoen ciertas implementaciones paralelas el solapamiento de mensajes.

Recordemos brevemente los fundamentos del algoritmo GC. Dada una matriz A yun vector b, la forma cuadratica 1

2xTAx − bTx + c es una funcion cuyo mınimo es

solucion al sistema r = Ax−b = 0. En el gradiente conjugado, xi−x representa el errorentre una aproximacion y la solucion mientras que r = Axi −b, el residuo, es el errortrasladado al espacio imagen, pero tambien representa la direccion de maxima pendiente

Page 91: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.1. Implementacion optima del metodo PCG para matrices en banda 69

en la forma cuadratica. El conocido metodo del descenso mas rapido [98] actualizarıa xsiguiendo la direccion r, dando pasos que finalizan en mınimos relativos en la direccionelegida. El gradiente conjugado, sin embargo, elige direcciones de actualizacion quedeben ser ortogonales a la anterior (en realidad, se requiere que sean A–ortogonales,o conjugados), pero cada paso en esa direccion debe ser justo el que le aproxima almaximo en dicha direccion (o dimension).

En el algoritmo 7 trasladamos las operaciones que calculan α y r de cada iteraciona la siguiente (algo parecido a lo que se conoce como software pipelining cuando sehabla de planificacion estatica de bucles).

Algoritmo 7

r0 = b − Ax0

resolver z0 en A · z0 = r0

ρ0 = r0 · z0

p1 = z0

q1 = Ap1

η1 = p1 · q1

for i = 2, . . . , L

Calcular αi−1 desde ηi−1 (ρi−2

ηi−1)

en cualquier posicion xi−1 = xi−2 + αi−1pi−1

ri−1 = ri−2 − αi−1qi−1

zi−1 = A−1 · ri−1

ρi−1 = ri−1 · zi−1

Calcular βi−1 desde ρi−1 (ρi−1

ρi−2)

pi = zi−1 + βi−1pi−1

qi = Api

ηi = pi · qi

endxL = xL−1 + αLpL

El objetivo de este traslado es descomponer la parte iterativa del algoritmo en dosgrupos de tres operaciones cada uno, que en lo sucesivo se denominaran “tripletes”. Ob-servese el parecido entre las operaciones correspondientes entre ambos tripletes, siendoel segundo de ellos una imagen especular del primero. El algoritmo resultante ofrece unaperspectiva completamente diferente del gradiente conjugado precondicionado. Hastaahora, el precondicionador se ha presentado como una matriz que (al multiplicarse porla matriz del sistema) reduce el numero de condicion del sistema lineal, lo cual augurauna convergencia mas rapida del gradiente conjugado. Por razones obvias, es preferibleque sea una matriz parecida a la inversa de la original. A veces se confunde el precon-dicionador por su inversa, por lo que es frecuente oır que es una matriz similar a la

Page 92: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

70 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

original, pero mas facil de invertir.

En el algoritmo 7 nos aproximamos a la solucion del sistema usando el espaciodominio y su imagen (reduciendo progresivamente ‖x − xi‖ y ‖r‖ respectivamente).La funcion del precondicionador pasa a ser la de trasladar del espacio imagen al dominio.

¿Cuanto hay que reducir p, siendo p la distancia a la solucion? La direccion deactualizacion la proporciona z (el residuo de la iteracion anterior convertido al espacio“dominio”).

¿Cuanto hay que reducir r, siendo r el residuo Ax−b? La direccion de actualiza-cion la proporciona q (la proximidad p a la solucion en la iteracion anterior convertidaal espacio “imagen”).

Evidentemente, no hay problemas al cambiar de espacio para pasar del dominio a laimagen, pero sı a la inversa, pues usamos una funcion “imperfecta”para ello (el precon-dicionador, intencionadamente representado en el algoritmo por una “A” deformada,aproximada, A). En el apendice D se extiende esta idea para derivar una familiade algoritmos iterativos, llegando incluso a expresar el metodo de Jacobi como unamodificacion de PCG.

El algoritmo 7 no es la organizacion mas frecuente del algoritmo PCG, siendo lomas normal que comience la parte iterativa con el calculo de ρ [128, 120, 9, 72] aunqueno por ello se consigue una mayor localidad temporal ni afecta en modo alguno a laeficiencia.

Hay que recordar que en el algoritmo 7, la actualizacion de los vectores xi se puedehacer en cualquier lugar, incluso intermitentemente, almacenando una secuencia de losvectores pi y escalares αi, pero esto incrementara el consumo de memoria sin ningunaventaja importante. En nuestra implementacion del algoritmo, xi es actualizado justoantes de la actualizacion de pi+1 para incrementar la localidad y el solapamiento delos mensajes de reduccion de ρ, y al final del proceso, justo antes de que se requierala solucion. Para la tecnica de linealizacion en tiempo empleada, xL = f(xL−1) =xL−1 +

αL

µL−1pL, y Us+1 = Us + xL, se computan simultaneamente.

El algoritmo 7 se puede mejorar con las siguientes dos modificaciones:

1. Como mencionan Dongarra et al. [24], es posible incrementar la localidad en lasmatrices en banda. Mas detalladamente, la computacion de los tripletes p, q yα por un lado, y r, z y ρ por otro, se puede realizar entrelazando las secuenciasde operaciones de los vectores correspondientes a un bloque de planos z.

Los calculos de los elementos de p correspondientes al halo (es decir, los corres-pondientes a los bordes de los bloques de planos z) deberıan computarse primeropara solapar la comunicacion de tales datos con la computacion de los tripletescorrespondientes a los nodos internos (halos excluidos), en cada procesador. Estesolapamiento se puede conseguir bien enviando un mensaje asıncrono tan prontocomo sea posible o incluyendo directivas de prebusqueda de los datos del haloen memorias remotas cuando se esta determinando la solucion en el penultimoplano z de cada bloque, dependiendo del modelo de programacion. Segun el tipode precondicionador que se este usando, el calculo de r es tambien sensible a

Page 93: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.1. Implementacion optima del metodo PCG para matrices en banda 71

optimizaciones de estas caracterısticas.

Ası, los mensajes de halo de cada triplete se deberıan solapar con la totalidadde los calculos que constituyen el triplete, excepto aquellos correspondientes a supropio halo.

2. La operacion saxpy (y=ax+y) esta disponible en casi todas las bibliotecas ma-tematicas especialmente optimizada para cada arquitectura (por ejemplo, Per-formance Library de Sun, complib.sgimath en SGI, libmfastv en Cray), pero noocurre lo mismo con las operaciones (y=x+ay), que obligarıan bien a crear unarutina especıfica, o a combinar una operacion saxpy con una scopy. La solucionque proponemos convierte la actualizacion de p en una operacion saxpy escalandoadecuadamente ciertas variables.

En el algoritmo 8 proponemos combinar el modelo de Dongarra et al. que saca unmaximo rendimiento de la cache, con el solapamiento de mensajes de halo (propuestopor varios autores), una actualizacion retardada de la solucion x, y un escalado delvector p para utilizar la rutina saxpy en su actualizacion:

Algoritmo 8

r0 = b − Ax0

resolver z0 en A · z0 = r0

ρ0 = r0 · z0

p1 = z0

q1 = Ap1

η1 = p1 · q1

µ0 = 1for i = 2, . . . , L

En cualquier posicion, xi−1 = xi−2 + αi−1 · pi−1

αi−1 = ηi−1 (µi−2·ρi−2

ηi−1)

Triplete 1:

ri−1 = ri−2 − αi−1qi−1

zi−1 = A−1 · ri−1

ρi−1 = ri−1 · zi−1

µi−1 = ρi−1 (ρi−2·µi−2

ρi−1)

Triplete 2:

pi = pi−1 + µi−1zi−1

qi = Api

ηi = pi · qi

endxL = xL−1 + αLpL

Page 94: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

72 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

Cada triplete, formado por las operaciones T1, T2 y T3, se ejecuta en la forma que seindica en el algoritmo 9.

Algoritmo 9

Calculo de T1 ( z = 0, z = nz − 1)Envıo de halos z = 0, z = nz − 1for i = 1, nZ − 2

T1( i+ 1)T2( i)T3( i)

endRecepcion de halos z = −1, z = nz

T2( nz−1)T3( nz−1)T2( 0)T3( 0)

4.2. Resultados

En las tablas 4.1 y 4.2 se muestran los tiempos de ejecucion requeridos por el metodoestandar PCG y los algoritmos 8 y 9 para el modelo de dos ecuaciones que se estaconsiderando. Estas tablas se han obtenido bajo las mismas condiciones que los datosincluidos en las tablas 3.5 y 3.6. Ademas, cada una de las optimizaciones que incluyeeste algoritmo se ha aplicado progresivamente para comprobar que todas ellas implicanuna mejora del rendimiento.

Los tiempos de ejecucion obtenidos con el algoritmo propuesto (algoritmo 8), sonligeramente menores en la malla de 51×51×51 puntos que los obtenidos con el metodoPCG estandar, y del mismo orden que el de los errores cometidos en las medidasde los tiempos de ejecucion. El rendimiento del algoritmo propuesto se incrementasignificativamente cuando se utiliza el solapamiento de mensajes de halo. Este resultadopuede estar mas relacionado en este caso con el “efecto pagina” discutido en la seccion3.4.2. En el CRAY T3E, con una cache pequena y un modelo de comunicacion que nosolapa, el resultado es una mejora muy pequena.

En los modelos de memoria compartida se percibe una ligera perdida de rendimien-to, aunque es necesario indicar que con esta malla los resultados mostrados estan muysujetos a factores externos, segun lo expresado en el punto ii) de la seccion 3.4.2. Dehecho, introduciendo padding los resultados se invierten.

Page 95: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.2. Resultados 73

Cuadro 4.1: Tiempos de ejecucion (en segundos) para los metodos PCG estandar y PCGpropuesto en una malla de 51×51×51 puntos.

PCG estandar PCG propuestoModelo Sin solapamiento Con solapamiento Sin solapamiento Con solapamientode prog 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef.

ORIGIN2000MPI 1,248 0,090 1,66 1,248 0,088 1,70 1,215 0,085 1,75 1,192 0,085 1,72

OpenMP 1,224 0,125 1,19 1,231 0,122 1,23 1,188 0,125 1,18 1,195 0,122 1,21SHMEM 1,199 0,083 1,81 1,196 0,083 1,80 1,226 0,082 1,80 1,215 0,084 1,77

CRAY T3EMPI 1,802 0,267 0,84 1,822 0,276 0,82 1,733 0,260 0,80 1,743 0,263 0,80

SHMEM 1,816 0,259 0,87 1,803 0,257 0,87 1,680 0,242 0,87 1,682 0,243 0,86SUN HPC6500

OpenMP 3,430 0,422 1,01 3,413 0,444 0,96 3,152 0,624 0,63 3,170 0,424 0,94MPI 2,485 0,124 2,51 2,580 0,122 2,63 2,571 0,121 2,66 2,490 0,119 2,61

Cuadro 4.2: Tiempos de ejecucion (en segundos) para los metodos PCG estandar y PCGpropuesto en una malla de 75×75×75 puntos.

PCG estandar PCG propuestoModelo Sin solapamiento Con solapamiento Sin solapamiento Con solapamientode prog 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef. 1PE 8PEs Ef.

ORIGIN2000MPI 4,910 0,808 0,72 4,784 0,791 0,74 4,765 0,760 1,75 5,052 0,795 0,74

OpenMP 4,655 0,563 1,03 4,690 0,561 1,04 4,860 0,572 1,04 4,786 0,573 1,04SHMEM 4,985 0,772 0,75 4,732 0,775 0,76 4,754 0,778 0,76 4,752 0,756 0,76

CRAY T3EMPI 5,819 0,799 0,91 5,820 0,786 0,92 5,606 0,743 0,93 5,591 0,741 0,94

SHMEM 5,867 0,785 0,93 5,911 0,799 0,91 5,537 0,748 0,93 5,564 0,751 0,93SUN HPC6500

OpenMP 12,37 2,263 0,68 12,78 2,168 0,74 11,65 1,783 0,82 11,83 1,373 1,08MPI 9,560 0,896 1,37 8,708 0,891 1,22 8,209 0,875 1,17 8,211 0,850 1,20

Para la malla de 75 × 75 × 75 puntos, los resultados presentados en la tabla 4.2,muestran una mejora de entre el 5 y el 8% que es especialmente notable para laimplementacion en memoria compartida del algoritmo en la SUN HPC6500. Ademas,se han implementado diferentes paddings en la version de OpenMP para comprobar el“efecto pagina” y, en todos los casos, el algoritmo propuesto presenta mejor eficiencia(1-8%) que el modelo estandar. Se debe hacer notar que las mejoras del algoritmopropuesto se deben a la explotacion de la cache mas que al solapamiento de los accesos amemoria remota, ya que estas mejoras se han observado tambien en su implementacionsecuencial. Quizas un estudio cuidadoso de las estrategias de prebusqueda en la cachemejorarıa la eficiencia de la solucion del modelo de dos ecuaciones que se presenta eneste trabajo, pero puede no tener una validez general.

Page 96: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

74 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

Lo que sı se ha comprobado, como se vera en la siguiente seccion, es que el uso debibliotecas de paso de mensajes en las cuales tiene lugar el beneficio real del solapa-miento de las comunicaciones (por ejemplo, MPI–2 sobre la arquitectura SUN Sunfire6800 [118, 122, 121]) sı permite mejorar aun mas los resultados presentados en la tabla4.2.

4.2.1. Analisis

Un analisis exhaustivo de las diferentes implementaciones del algoritmo PCG paraleloha mostrado que su comportamiento se puede mejorar solapando los accesos a memoriaremota y realizando reordenamiento, siempre que no se introduzca una perdida delocalidad en el proceso; de hecho, se deberıa prestar mas atencion a la localidad queal solapamiento de comunicaciones. Tambien se ha encontrado que la reduccion de lospuntos de sincronizacion a expensas de un incremento del numero de computacionesno ofrece mejoras significativas, a menos que se trabaje con sistemas con mucha carga.

Teniendo en cuenta estas consideraciones, se ha propuesto un algoritmo PCG mo-dificado. Este algoritmo considera la maxima explotacion de la localidad de los datosy el solapamiento de los mensajes de halo con computaciones que pueden representaruna gran fraccion de los calculos totales.

El algoritmo propuesto es mas eficiente que las implementaciones existentes de PCGy se puede extender facilmente a otros sistemas representados por una matriz en banda;en particular, a aquellos que se deriven de mallas, no necesariamente regulares [88], paralos cuales el concepto de “halo” es significativo. Es decir, si una fraccion de los calculosde un procesador requieren datos computados por un reducido grupo de procesadoresvecinos, y viceversa. Este algoritmo tambien se puede modificar facilmente para obtenerun metodo iterativo estacionario como el metodo de Jacobi.

En la siguiente seccion, las versiones de memoria compartida y paso de mensajesque se han desarrollado aquı, seran combinadas en una aproximacion jerarquica paratratar con una unica implementacion del algoritmo PCG propuesto, que ajustara la dis-tribucion de parametros con objeto de obtener la mejor eficiencia para una arquitecturay un tamano de malla dados.

4.3. Codigo mixto

4.3.1. Introduccion

En la seccion anterior se han determinado las caracterısticas que debe poseer una im-plementacion paralela optima del Gradiente Conjugado Precondicionado, a partir delas cuales se ha desarrollado un algoritmo que mejora significativamente los rendimien-tos paralelos. Sin embargo, no se ha podido determinar exactamente si es preferibleuna implementacion con paso de mensajes o mediante el uso de memoria compartida,en gran parte por su dependencia tanto de la malla como de la arquitectura. Despre-ciando los criterios de facilidad de programacion, que ademas de ser muy subjetivos,

Page 97: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 75

no se consideran determinantes1, resumimos a continuacion las caracterısticas de cadauno de los modelos.

Memoria compartida

En este modelo, el solapamiento de los accesos a memoria remota con computaciones esmejor aprovechado, gracias a los mecanismos de prebusqueda. La sincronizacion entreprocesadores es mas eficiente, pues suele ser suficiente el uso adecuado de una variablesemaforo con acceso atomico. En ciertas arquitecturas, el intercambio de datos es ade-mas, mas rapido. En algunos casos, hemos encontrado problemas con las capacidadesde memoria.

Adicionalmente, el equilibrio de carga puede alcanzarse mas facilmente, sin penalizarla complejidad. Hasta ahora hemos considerado una distribucion de la carga basada enla division de los planos z. Se eligio desde un principio esta alternativa para facilitar laprogramacion de la fase de inicializacion del sistema ası como para la declaracion de lasestructuras de datos. Separar internamente las ecuaciones nodales de un mismo planoz es, no obstante, muy facil en un modelo de memoria compartida ya que no afecta ennada a las estructuras de datos, que son comunes a todas las hebras. Los beneficios delequilibrio de carga son evidentes y muy significativos en las mallas menos finas. Comoejemplo, una division de 51 planos z entre 8 procesadores provoca un desequilibrio decarga del 16,6% que practicamente desaparecerıa en el caso de considerar divisionesinternas en el plano z.

Paso de mensajes

Su gran ventaja es la velocidad en el intercambio de datos en ciertas arquitecturas, y,en especial, para un elevado volumen de datos. Como inconveniente mas importantehemos encontrado que el solapamiento de mensajes no es adecuadamente aprovechadoen las maquinas estudiadas. Por otra parte, las estructuras de datos deben ser simetricasentre los diferentes procesadores para facilitar el intercambio de mensajes, a costa deuna mayor complejidad en la busqueda de equilibrio de carga.

En definitiva, el modelo de programacion optimo depende no solo de la maquina sinotambien de otros muchos factores propios del problema, por lo que no es aconsejabledescartar a priori ninguno de ellos. Como opcion recomendable, la inclusion de ambasimplementaciones en el mismo programa permitirıa el uso de ambos modelos simul-taneamente, utilizando las posibilidades de una u otra polıtica segun su mejor o peorcomportamiento en el sistema paralelo considerado.

De hecho, durante gran parte del desarrollo de esta tesis ya se ha manejado estadoble implementacion del programa, aunque antes de la ejecucion, en tiempo de com-pilacion, se definıa el modelo de programacion. La posibilidad de simultanear ambasen tiempo de ejecucion se descarto desde un principio por la complejidad anadida en laprogramacion: el intercambio de mensajes se habıa planteado a traves del uso de mapas

1Como se ha indicado anteriormente, un conocimiento profundo del paralelismo intrınseco delproblema es muy necesario antes de proceder a la programacion.

Page 98: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

76 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

de memoria simetricos para cada uno de los vectores locales, lo cual serıa intratable conun elevado numero de procesadores. Ademas, los beneficios que se podrıan conseguirserıan muy limitados.

Sin embargo, trabajos recientes [30, 37, 42, 53, 56, 63, 99, 100, 105, 119] demues-tran que el uso de codigos mixtos en una implementacion jerarquica puede ser muyeficiente en una gran variedad de arquitecturas en las que varios procesadores compar-ten (fısicamente) una memoria, formando un nodo computacional de bus comun, quese comunica con otros nodos a traves del mismo u otro bus, o mediante una red deinterconexion (lo que podrıamos considerar como arquitecturas mixtas).

CPU CPU

Memoria

CPU CPU

Red de interconexión

Memoria

memoriacompartida

memoriacompartida

cache cache cache cache

memoria distribuida

hebra hebra hebra hebra

Figura 4.1: Codigos mixtos para arquitecturas mixtas.

La implementacion anidada, en la cual varios procesos (o hebras) comparten unmapa de memoria comun —a traves del cual se comunican—, mientras que entre losdiferentes nodos se intercambian mensajes, tendrıa evidentes ventajas. Por un lado,la doble eleccion del numero de hebras (NT) y el numero de nodos (NN) permiteelegir entre un modelo de memoria compartida (NN=1, NT=NP), de paso de mensajes(NN=NP, NT=1) o mixto. Por otro lado, en una gran variedad de arquitecturas elmodelo mixto podrıa ser, en sı mismo, mucho mas eficiente:

Por la propia arquitectura, ya que como se ha mencionado, hay muchas maquinasde arquitectura mixta, en las que unos pocos procesadores forman un nodo en elque comparten una memoria fısica comun y que se comunica con otros nodos porredes de interconexion. Mientras que la arquitectura intra–nodal puede ser maseficientemente aprovechada por programas de memoria compartida, la comuni-cacion inter–nodal es preferible a traves del intercambio de mensajes [56, 119](figura 4.1).

Por la limitada escalabilidad de los protocolos de coherencia de cache, y, enespecial, aquellos basados en la observacion, que limitan en muchos casos la es-calabilidad de los modelos de memoria compartida.

Page 99: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 77

Como hemos mencionado anteriormente, otra de las ventajas de una implemen-tacion mixta esta relacionada con el equilibrio de carga ya que, sin alcanzar lasventajas de un programa basado exclusivamente en memoria compartida, sı quepuede mejorarlo. En un ejemplo citado anteriormente, una division de 51 planos zentre 8 procesadores reduce el desequilibrio de carga de un 16,6% en el programade paso de mensajes (NN=8, NT=1) a un 8,3% para un anidamiento (NN=4,NT=2), y a un 4% en el caso NN=2, NT=4. Por tanto, en aquellas arquitecturasen las que el paso de mensajes es intrınsecamente mas eficiente, un modelo mixtopodrıa corregir parcialmente los problemas de desequilibrio de carga.

Kaushik et al. [37, 53] consideran los modelos OpenMP y MPI como dos extremosen los que las actualizaciones en memorias remotas dependen completamente delsistema o del usuario, respectivamente. Para ellos, el modelo mixto deja en ma-nos del sistema las actualizaciones mas complejas (uso de memoria compartida),ocupandose el usuario de las mas simples (intercambios de mensajes).

Como principal inconveniente del modelo mixto se puede mencionar la complejidadde la programacion, aunque, como se analiza a continuacion, no supone un importanteobstaculo.

4.3.2. Implementacion del codigo mixto

En principio, la dificultad de programacion de un codigo mixto podrıa suponer un serioinconveniente, ya que no solo implica recurrir a los dos modelos simultaneamente, sinoincorporarlos de una forma jerarquica no siempre facil de plantear e implementar. Sinembargo, tras un detallado analisis del codigo existente, se ha llegado a la conclusionde que las modificaciones necesarias sobre el programa original son muy elementales.

Implementacion original

Desde el punto de vista que concierne a esta seccion, la paralelizacion del programa seimplementa en dos fases.

En una primera etapa, reparto, se asigna el trabajo a cada procesador desde unadoble perspectiva: reparto de planos z y reparto de vectores (codigo 1). Cada procesa-dor utiliza la variable que contiene el numero de planos z que han de ser distribuidos(variable NK) y los lımites que puede alcanzar dicha variable (MINK y MAXK) para calcu-lar los planos que le corresponden, utilizando una doble asignacion, con lımites tantolocales (LLK=1 y LHK) como globales (GLK y GHK). Estos ultimos solo se utilizan parala composicion final de la solucion. En la segunda perspectiva, mediante la cual sereparten todos los elementos del vector (NI*NJ*NK*NEQS) entre los NPES procesadores,se asigna a cada uno de ellos NE elementos. Los lımites de trabajo (LN y HN=LN+NE-1)son calculados utilizando el reparto de planos z calculado previamente como referencia(por simplificacion y penalizando, como hemos visto, el equilibrio de carga).

Page 100: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

78 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

Codigo 1

i=(MAKK+NPES-1)/NPES

!maximo numero de planos por procesador

k=MAXK-(i-1)*NPES-1

LLK=1

if(id.le.k)then

GLK=MINK+id*i

GHK=min(MAXK,MINK+(id+1)*i-1)

LHK=i

else

GLK=MINK+(k+1)*i+(id-k)*(i-1)

GHK=min(MAXK,MINK+(id+1)*i-1)

LHK=i-1

endif

LN=(GLK-MINK)*2*NI*NJ

HN=(GHK-MINK+1)*2*NI*NJ-1

NE=LHK*2*NI*NJ !(HN-LN+1)

En una segunda etapa, ejecucion distribuida, se utiliza el reparto calculado paraejecutar tareas diferentes en cada procesador. Las variables resultantes del reparto deplanos z, mediante las cuales se identifican los lımites de trabajo de cada procesador, seutilizaran en los modelos de paso de mensajes con objeto de simplificar la composicionde dichos mensajes; estas variables tambien seran empleadas durante la inicializaciondel sistema, en cada escalon de tiempo, debido a que tanto los coeficientes de la matrizcomo el termino independiente se actualizan en funcion de sus coordenadas dentro dela malla. Ası, en los bucles que iteran sobre los planos z, se utilizan los ındices locales oglobales segun el modelo de programacion. En las operaciones vectoriales, ya dentro dela resolucion del sistema, se invocan las rutinas correspondientes utilizando las variablesresultantes del reparto de vectores, utilizando como ındice inicial 1 o LN, dependiendodel paradigma empleado, y NE como tamano de vector.

Implementacion mixta

La aplicacion mixta desarrollada a partir de los programas diferenciados existentesse planifica siguiendo una estrategia muy simple. El reparto se ejecuta en dos pasosanidados, con una primera distincion y separacion del trabajo entre NN nodos (que secomunican por paso de mensajes) y una segunda division de los datos de cada nodoentre NT hebras que comparten memoria. Las caracterısticas de esta doble divisionanidada son:

Page 101: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 79

La primera distribucion utiliza variables que seran posteriormente compartidasentre las hebras, y equivale al reparto existente en la implementacion original(codigo 1).

El segundo reparto utiliza variables privadas para cada hebra, renombradas conuna precedencia ’S’ que las distinga de la distribucion anterior.

El segundo reparto utiliza LHK en lugar de MAXK, idt o identificador de hebrapor id o identificador de procesador, NTES o numero NT de hebras por NPES onumero de procesadores (que representa ahora a NN, el numero de nodos).

El segundo reparto no requiere el calculo de SLLK y SLHK, mientras que el primeropuede prescindir de LN y HN.

El codigo 2 muestra los detalles de la distribucion del trabajo.

Para la ejecucion distribuida del trabajo, en los bucles que iteran sobre los planosz se utilizan los ındices sglk y sghk, mientras que en las operaciones vectoriales seinvocan las rutinas correspondientes utilizando como ındice inicial sln con tamano devector sne, independientemente del paradigma empleado. Tan solo para la recoleccionfinal de resultados, la hebra maestra utiliza los lımites globales de plano, GLK y GHK.

La figura 4.2 muestra graficamente los valores que adquieren estas variables en elreparto de una malla ejemplo, de 10× 10× 50 puntos, entre dos nodos, seguido de unreparto de cada nodo entre dos hebras.

sllk slhk sglk sghk sln shn sne

sllk slhk sglk sghk sln shn sne

sllk slhk sglk sghk sln shn sne

sllk slhk sglk sghk sln shn sne

NI: 10

NJ: 10

NK: 50

MINK: 1

MAXK: 50

1 13 1 13 0 2599 2600

1 12 14 25 2600 4999 2400

1 25 1 25 0 4999 5000

1 12 14 25 2600 4999 2400

1 13 1 13 0 2599 2600

LLK LHK GLK GHK LN HN NE

LLK LHK GLK GHK LN HN NE

1 25 26 50 5000 9999 5000

Figura 4.2: Valores de las variables implicadas en el reparto de una malla de 10 × 10 × 50puntos entre dos nodos, seguido de un reparto de cada nodo entre dos hebras.

Page 102: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

80 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

Codigo 2

!Fase 1. Todas las variables son compartidas entre hebras.

!La hebra maestra calcula

i=(MAXK+NPES-1)/NPES

!maximo numero de planos por procesador

k=MAXK-(i-1)*NPES-1

LLK=1

if(idn.le.k)then

GLK=MINK+idn*i

GHK=min(MAXK,MINK+(idn+1)*i-1)

LHK=i

else

GLK=MINK+(k+1)*i+(idn-k)*(i-1)

GHK=min(MAXK,MINK+(idn+1)*i-1)

LHK=i-1

endif

NE=LHK*2*NI*NJ

!Fase 2. Variables privadas

i=(LHK+NTES-1)/NTES

!maximo numero de planos por procesador

k=LHK-(i-1)*NTES-1

if(idt.le.k)then

sglk=1+idt*i

sghk=min(LHK,(idt+1)*i)

else

sglk=1+(k+1)*i+(idt-k)*(i-1)

sghk=min(LHK,(idt+1)*i)

endif

sln=(sglk-1)*2*NI*NJ

shn=sglk*2*NI*NJ-1

sne=slhk*2*NI*NJ

4.3.3. Intercambio de mensajes y sincronizacion

Un aspecto crıtico en la implementacion del codigo mixto es el enfoque de las comuni-caciones y sincronizaciones entre hebras y nodos.

Page 103: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 81

Mensajes de halo

En el modelo mixto, el intercambio de mensajes de halo es muy simple. Entre hebras secomparten directamente los datos de los halos, y la sincronizacion interna se realiza deforma similar al programa de memoria compartida, mientras que para la comunicacionentre los nodos seran las hebras situadas en los extremos (aquellas cuyos identificadorescumplen la condiciones idt=0 e idn = 0 por un lado, e idt=NTES− 1 e idn = NPES− 1por el otro) las encargadas de enviar mensajes (con datos de halo y semaforos) a losnodos idn–1 e idn+1, y de recibirlos de los nodos idn+1 e idn–1, respectivamente.

Reducciones y sincronizacion

Las operaciones de reduccion que siguen a cada producto escalar o calculo de normas devectores se pueden afrontar desde una doble vertiente. En principio se podrıa plantearuna operacion de reduccion previa entre las hebras que comparten un mismo nodo paraplantear posteriormente una reduccion global de los datos entre los nodos, encabezadospor la hebra maestra de cada nodo. Esta es posiblemente la eleccion mas simple yeconomica desde el punto de vista de las comunicaciones. Sin embargo, anteriormentese determino que el coste del envıo de variables escalares (paquetes de 8 bytes) noes en sı demasiado costoso, y, en cambio, este planteamiento de las reducciones esincompatible con un maximo aprovechamiento del solapamiento de los mensajes y,sobre todo, de la reduccion de los tiempos de espera en las sincronizaciones, ya quehabrıa que sincronizar todas las hebras de un mismo nodo en el mismo instante en elque se producen los datos (con la consiguiente espera al mas lento de los nodos). Lafigura 4.3 muestra graficamente este metodo.

Espera entre hebras

Espera entre nodos

NODOS HEBRAS

Figura 4.3: Codigo mixto. Reduccion en dos fases.

La otra posibilidad, que es la que se ha considerado en este trabajo, consiste en quetodos los nodos y hebras que intervienen en el computo de una de estas operacionesenvıen y reciban los datos del resto, multiplicando por NTES el numero total de mensajesenviados, pero evitando al maximo los tiempos de espera.

En particular, cada vez que una hebra finaliza el computo de la fraccion que lecorresponde de una operacion de reduccion, envıa un mensaje a cada de los otros

Page 104: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

82 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

nodos. Cuando el dato reducido va a ser utilizado, las hebras cuyos identificadorescoinciden con el de aquella que envio el mensaje seran las encargadas de recogerloy guardarlo en una localizacion compartida por el resto de las hebras de su nodo.En el bucle de recepcion de mensajes, un mismo contador al que se accede de formaatomica —mientras se consulta y modifica no intervienen otras hebras— se utilizarapara determinar que todas las hebras han recibido todos los mensajes del resto de losnodos, hasta completar NTES*NPES-NTES. Observese que las hebras no incrementan elcontador cuando calculan su propia parte de la reduccion, pues solo habran llegado arecibir mensajes del resto de los nodos si previamente han calculado su parte. La figura4.4 muestra graficamente este metodo.

Espera entrenodos y hebras

Figura 4.4: Codigo mixto. Reduccion en una fase.

Barreras globales

Aunque no se han incluido barreras globales en los programas desarrollados para laintegracion numerica, es necesario incluir este tipo de sincronizaciones tanto en laescritura de resultados como en las fases de inicializacion e incluso en el mismo procesode depuracion. La implementacion utilizada requiere una barrera entre todos las hebrasde un mismo nodo, seguida de una barrera entre nodos ejecutada exclusivamente porla hebra maestra.

4.3.4. Equilibrio de carga

Al igual que lo hacıa el programa de memoria compartida, el codigo mixto permitemejorar el equilibrio de carga sin incrementar la complejidad de las estructuras dedatos. En el caso de que se desee reducir el desequilibrio de carga, permitiendo unadivision entre hebras que no se restrinja a una division de planos z, tan solo habrıaque prescindir del calculo de sglk y sghk y modificar ligeramente los bucles para queno iteren sobre los ındices k=1,..,NK, j=1,..,NJ, i=1,..,NI, sino que lo hagan sobreuna sola variable l, ındice de vector. Es posible que se produzca cierto incrementoen el numero de operaciones para calcular i, j y k a partir de l (aproximadamenteincrementa un 4% el tiempo de CPU en la malla de 51 × 51 × 51 puntos, usando10 iteraciones de PCG) en las fases de actualizacion de los coeficientes y terminos

Page 105: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 83

independientes del sistema, pero este incremento serıa ampliamente compensado porlas mejoras en el equilibrio de carga, especialmente en las mallas mas finas.

4.3.5. Resultados

Una vez desarrollados los codigos mixtos, encontramos serios problemas para su aplica-cion sobre las arquitecturas elegidas. En primer lugar, la biblioteca de paso de mensajesSHMEM no es compatible con el lenguaje OpenMP, y aunque SGI proporciona las bi-bliotecas especıficas mp shmem que sı lo son, no permiten el anidamiento requerido.En segundo lugar, la version de bibliotecas MPI disponible para la Origin2000 sobre laque se ha realizado este trabajo es MPI–1. Esta version no asegura que no se produzcanefectos laterales debido a llamadas simultaneas a rutinas MPI por dos hebras dentrodel mismo nodo (a estas bibliotecas se las conoce como thread–unsafe), y efectivamentese producen errores si dichas llamadas no se realizan en una seccion crıtica. Como talessecciones crıticas introducen sincronizaciones adicionales, se percibe una importantecaıda del rendimiento, por lo que hemos descartado la presentacion de resultados delmodelo mixto en la Origin2000. Finalmente, durante la elaboracion del codigo mixtose produjo, en el centro EPCC de Edimburgo al que se tuvo acceso, un reemplazo de lamaquina HPC6500 por la arquitectura Sunfire 6800, por lo que todas las ejecuciones delcodigo mixto se realizaron sobre esta nueva arquitectura, que ya disponıa de bibliotecasthread–safe (MPI–2).

Descripcion de la arquitectura Sunfire E6800

El multiprocesador simetrico Sunfire E6800 pertenece a una de las familias de servidoresmas modernos de Sun en la gama de los midframe. El corazon de esta maquina locomponen seis placas con cuatro procesadores UltraSPARC-III a 750 MHz en cadauna. Junto a cada procesador, encontramos 2 Gbytes de memoria compartida quetotalizan 48 Gbytes para todo el sistema, y 120 Gbytes de espacio de disco. La cachede primer nivel en los Sunfire E6800 es de 32+64 Kbytes, asociativa por conjuntos de 4vıas con lıneas de 32 bytes. En el nivel 2, la cache es de 8 Mbytes, de correspondenciadirecta, con lıneas de 64 bytes y latencia de 12 ciclos. El rendimiento pico nominal delSunfire E6800 es de 36 Gflops (750 MHz × 24 procesadores × 2 flops por ciclo).

El UltraSPARC-III es un procesador superescalar que permite la emision de cuatroinstrucciones de enteros o dos de punto flotante por ciclo. Una de las caracterısticasmas novedosas de este procesador es la inclusion de las etiquetas de los bloques de lacache externa en el propio procesador, lo cual le permite gestionar la coherencia a masalta frecuencia (al ritmo del procesador).

El ancho de banda con la memoria principal asociada a cada procesador es de 2,4Gbytes/s, mientras que el acceso a la memoria fısica de otro procesador es tambien de2,4 Gbytes/s. En ambos casos la comunicacion se realiza a traves de la unidad PDS(Processor Data Switch). Adicionalmente, la interconexion entre procesadores se reali-za a traves del SunfirePlane, una red de interconexion de barras cruzadas (crossbar)redundante que permite la conectividad total entre los PDS de los procesadores, por

Page 106: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

84 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

lo que se puede considerar como una arquitectura UMA. La relacion entre el anchode banda de la memoria y el rendimiento pico del procesador (1,6 bytes/flop) estable-ce un importante lımite de eficiencia para las aplicaciones que necesitan acceder confrecuencia a memoria.

Tiempos de ejecucion

Utilizando los mismos criterios empleados en el capıtulo anterior, se han obtenido lostiempos de ejecucion para un paso de tiempo del codigo mixto en la arquitectura selec-cionada, con uno y ocho procesadores, para diferentes combinaciones entre el numerode hebras y el numero de nodos. Estas medidas se han tomado para una malla de51× 51× 51 puntos y otra de 75× 75× 75 puntos, y se presentan en las tablas 4.3 y4.4, respectivamente.

Cuadro 4.3: Comparacion de los tiempos de ejecucion para un paso de tiempo en la mallade 51×51×51 puntos.

MPI Mixto OpenMPNN Tiempo (s) NN NT/Nodo Tiempo (s) NT Tiempo (s)

E. secuencial 1 1,70 1 1 1,81 1 1,77

1 8 0,209 8 0,221

E. paralela 2 4 0,139

con 8 PEs 4 2 0,177

8 0,090 8 1 0,106

Cuadro 4.4: Comparacion de los tiempos de ejecucion para un paso de tiempo en la mallade 75×75×75 puntos.

MPI Mixto OpenMPNN Tiempo (s) NN NT/Nodo Tiempo (s) NT Tiempo (s)

E. secuencial 1 5,563 1 1 5,658 1 5,673

1 8 0,953 8 0,969

E. paralela 2 4 0,849

con 8 PEs 4 2 0,777

8 0,718 8 1 0,729

En las tablas 4.3 y 4.4 se han incluido tambien los tiempos de los programas MPI yOpenMP. En este ultimo caso, el programa que utiliza OpenMP no considera la divisioninterna de los planos z y por tanto esta expuesto a un mayor desequilibrio de cargaque el codigo mixto con un nodo y varias hebras.

Page 107: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 85

4.3.6. Analisis de los resultados

Influencia de la cache

Antes de analizar los resultados en cada uno de los modelos, estudiaremos, por surelevancia, algunos aspectos de la jerarquıa de memoria de las arquitecturas E6800 ysu relacion con el programa.

En la malla de 51 × 51 × 51 puntos, cada plano z ocupa en memoria un total de40,6 Kbytes por cada vector (y cada una de las ocho diagonales de la matriz), porlo que la cache L1 no tiene capacidad para conservar los datos entre ninguna de lasoperaciones del gradiente conjugado que se realizan plano a plano (ya que al menoshay dos vectores implicados). Para la cache L2 la situacion es mas compleja. En elcaso de un solo procesador, la primera seccion del algoritmo PCG consume 4 × 40, 6Kbytes por plano ( A−1, q, r, z), por lo que al operar plano a plano, a partir de uncierto numero de planos (50) se va produciendo un reemplazo de los primeros por losultimos, perdiendo gran parte de los beneficios de la cache L2. Mucho peor es el casode la segunda seccion de PCG, que con 12 × 40,6 Kbytes por plano A, p, q, z, x, solotiene capacidad para alojar 16 planos completos.

Cuando utilizamos ocho procesadores, a cada uno de ellos le corresponden seis osiete planos, y todos los datos, incluidos los halos ((7+2)×16×40,6), cabrıan en la cacheL2, por lo que el ancho de banda de memoria es suficiente para satisfacer los requisitosdel problema.

Con la malla de 75× 75× 75 puntos, ni la cache L1 ni la L2 tienen capacidad pararetener los datos de una iteracion del gradiente conjugado a la siguiente.

El modelo MPI en Sunfire E6800

La escalabilidad en la implementacion con MPI es superlineal para la malla de 51 ×51 × 51 puntos, y podrıamos decir que es la que se esperaba por el aprovechamientode la localidad como se ha expuesto en la seccion anterior. Para la malla de 75 ×75 × 75 puntos, la aceleracion es aproximadamente igual al numero de procesadores,y, en ausencia del efecto de la cache, demuestra que esta arquitectura permite queel acceso a memorias remotas mantenga el mismo ancho de banda que los accesoslocales. Sin embargo, esto no se puede extrapolar al modelo de memoria compartida,como se analiza en la siguiente seccion, por lo que se deduce que las bibliotecas MPIimplementan la migracion de los datos de una forma mucho mas eficiente que los accesosindividualizados del modelo OpenMP.

Adicionalmente, la implementacion MPI en esta arquitectura muestra un aprove-chamiento real de los intercambios asıncronos de datos, y, por tanto, del solapamientode comunicaciones y computaciones. Como ejemplo citaremos que el solapamiento re-dujo el tiempo de ejecucion con la malla de 75× 75× 75 puntos y ocho procesadoresde 0,824 segundos a 0,718 segundos (casi un 15%).

Page 108: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

86 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

Modelo de Memoria Compartida en Sunfire E6800

Los resultados de las tablas 4.3 y 4.4 muestran claramente que el modelo de memoriacompartida es, en esta arquitectura, mucho menos eficiente que el modelo MPI–2.Las razones mas probables de este mal comportamiento pueden ser los problemas decontencion en el acceso a la memoria principal o en la observacion de la coherencia. Dehecho, una estimacion del ancho de banda requerido por este programa, en el caso demallas finas, detecta que es superior al que puede ofrecer la arquitectura, por lo queno es muy aconsejable su paralelizacion con un modelo de memoria compartida [37].Por otro lado, el uso del programa ordenado para solapar los accesos remotos es menoseficiente que el programa no ordenado (por ejemplo, para la malla de 51 × 51 × 51puntos y 8 procesadores, la version no ordenada obtiene t=0,199s), por lo que se deduceque las directivas de prebusqueda pueden agravar el problema de la contencion.

De forma complementaria, se ha realizado un estudio en el que se han tomadotiempos variando cada vez un parametro diferente:

Isoescalabilidad. Se ha incrementado simultaneamente el numero de procesado-res NP y el tamano del problema en la dimension z —el numero de puntos enz es 7×NP y el tamano del problema es 51 × 51 × (7 × NP ))— para deter-minar la influencia de los accesos a memorias remotas en funcion del numero deprocesadores.

NP 1 2 3 4 5 6 7 8

Tiempo (s) 0,096 0,179 0,191 0,203 0,168 0,177 0,246 0,227

Estos datos muestran que existe un importante incremento de 1 a 2 procesadores,debido a que en el acceso a los halos remotos ya se esta accediendo a datos fuerade la cache L2 (en la memoria de otro procesador). No existe, sin embargo, unincremento significativo de los tiempos de ejecucion para un mayor numero deprocesadores.

Estudio del volumen de accesos remotos. Se ha repetido el experimento, incremen-tando significativamente la cantidad de datos de halo z ( 101×101× (7×NP )).

NP 1 2 3 4 5 6 7 8

Tiempo (s) 1,000 1,052 1,133 1,100 1,231 1,226 1.325 1.243

En esta serie de ejecuciones no se percibe un aumento importante en la transicionde 1 a 2 procesadores, ya que con un procesador ya se ha perdido el efecto de lacache. Dicho de otra forma, le cuesta lo mismo acceder a su propia memoria fısicaque a la de otro procesador. Otro aspecto que podemos destacar es el escalon quese produce entre 4 y 5 procesadores. Posiblemente sea debido a la arquitecturaSunfire, que incorpora 4 procesadores en cada placa, pero no disponemos deinformacion suficiente sobre esta arquitectura para precisar la causa.

Page 109: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

4.3. Codigo mixto 87

Desequilibrio de carga. Se ha incrementado el tamano del problema en la di-mension z para determinar la influencia del desequilibrio de carga z, es decir,hemos calculado con mallas de 51× 51× 49, .., 56 puntos, pero sobre todo seha buscado determinar si el acceso a los halos de forma simultanea por todos losprocesadores, frente a accesos menos sincronizados, puede tener algun efecto.

No de puntos en z 49 50 51 52 53 54 55 56

Tiempo (s) 0,245 0,255 0,227 0,197 0,234 0,225 0,217 0,227

Se observa que la malla de 52 puntos en z (es decir, 51× 51× 52 puntos) es laque obtiene mejores resultados. Esto coincide con las expectativas, pues en dichocaso, los accesos a halos remotos se distribuyen equitativamente en una franja detiempo mas amplia, y, por tanto, debe haber menos contencion.

Por otro lado, existe una alta dispersion entre los datos medidos por lo que nopodemos asegurar que otros fenomenos puedan influenciar significativamente enestos resultados.

Como conclusion, se puede indicar que en las mallas mas gruesas el modelo OpenMPesta muy penalizado por los accesos a memorias remotas (que no aprovechan el anchode banda de la cache), mientras que en las mallas finas podemos encontrarnos conciertos problemas de contencion debidos al mayor tamano de los halos.

Sin un conocimiento detallado de la arquitectura, es imposible determinar el origenexacto de los problemas de contencion. Los factores que influyen son muchos y muyvariados: organizacion y tamano de la cache, estructura de la redes de interconexion,protocolos de los buses de memoria, protocolos de los buses de coherencia, polıticas deescritura en cache, reemplazos de bloques modificados, concurrencia en los accesos amemorias remotas por diferentes procesadores, polıticas de prebusqueda, etc.

El modelo mixto en Sunfire E6800

Los resultados mostrados en las tablas 4.3 y 4.4 ratifican por un lado que el modelomixto supera de forma sustancial al de memoria compartida a medida que se reduceel numero de hebras por nodo, llegando al maximo rendimiento cuando coincide con elmodelo MPI.

En cualquier caso, el bajo rendimiento del modelo de memoria compartida en estaarquitectura impide que el modelo mixto aproveche las ventajas que se anticiparon enla seccion 5 hasta el punto de mejorar el rendimiento del modelo de paso de mensajes.Aun ası, el codigo mixto desarrollado incrementa hasta un 6% el rendimiento sobreel codigo de memoria compartida, debido exclusivamente a las mejoras en el equili-brio de carga, por lo que en otras arquitecturas (como la Origin2000, en la que losrendimientos con OpenMP, SHMEM y MPI son similares) cabrıa esperar un excelentecomportamiento de la aproximacion mixta que se ha presentado en este capıtulo.

Page 110: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

88 Capıtulo 4: Implementacion optima del metodo PCG para matrices en banda

4.4. Conclusiones

Aunque existe una gran variedad de software disponible para la resolucion de problemastıpicos del algebra lineal en sistemas multiprocesadores, entre los que se encuentrael Gradiente Conjugado Precondicionado, un estudio minucioso del codigo fuente deaquellos mas conocidos revela que en su diseno no se han tenido en cuenta muchasde las posibles optimizaciones recomendadas por los investigadores en esta materia(AZTEC [44], PETSc [8], BlockSolve [72], PCG [49]). Entre las carencias mas notoriasse destaca el bajo aprovechamiento de la localidad en las matrices en banda y en casitodos los casos (excepto en AZTEC) la ausencia de solapamiento de comunicacionesy computaciones. La portabilidad de los programas se intuye como principal causa deestas ausencias.

En este capıtulo se ha presentado una version optimizada del algoritmo PCG paramatrices procedentes de la discretizacion por diferencias finitas en una malla regularque tiene en cuenta todas las optimizaciones posibles en el programa, y que destacapor su simplicidad. La implementacion de este programa se ha realizado utilizando unmodelo de programacion paralela mixto paso de mensajes/memoria compartida queaprovecha las ventajas de cada uno de ellos y amortigua los inconvenientes.

Los resultados obtenidos en todas las arquitecturas demuestran el rendimiento opti-mo del programa desarrollado respecto a otras implementaciones de PCG. En la unicaarquitectura que permite el uso del codigo mixto, los resultados demuestran que secumplen las expectativas y es de esperar que sea la solucion optima para muchas ar-quitecturas, en especial aquellas en las que la programacion con memoria compartidano escale bien.

Los resultados obtenidos son facilmente extrapolables a cualquier tipo de matricesen banda, incluso aquellas procedentes de discretizacion con mallas irregulares.

Se han alcanzado, por tanto, los objetivos planteados en la seccion 2.6. Se ha de-sarrollado una aplicacion paralela eficiente que reduce significativamente los tiemposde ejecucion de las simulaciones, aportando soluciones cuya validez es extrapolable anumerosas aplicaciones cientıficas.

Esta implementacion optima se ha utilizado para obtener las soluciones numericasde los problemas de propagacion de ondas espirales en medios excitables 3D que seplantearon en el capıtulo 1. En el proximo capıtulo se presenta un analisis detallado deestos resultados.

Page 111: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5Resultados numericos

En este capıtulo se presentan los resultados correspondientes a los problemas que se hanpropuesto en el capıtulo 1, sobre la propagacion de ondas espirales en medios excitablestridimensionales. Para la resolucion de estos problemas se ha utilizado, fundamental-mente, la implementacion optimizada de la aplicacion paralela que se ha presentado enel capıtulo anterior.

El capıtulo comienza con una breve descripcion de los aspectos que son comunes atodas las simulaciones realizadas en esta tesis, como, por ejemplo, la malla que se hautilizado, el paso de tiempo, etc.

El objetivo es estudiar los efectos de la iluminacion y los efectos de campos deadveccion sobre la propagacion de ondas espirales en un medio excitable tridimensional.Para analizar estos efectos, en primer lugar hay que resolver el problema original (siniluminacion ni campo) para poder comparar el comportamiento en cada caso.

Seguidamente, se analizan numericamente los efectos que produce la iluminacion, φ,sobre la dinamica de la onda espiral. Se consideran dos casos de iluminacion localizada:compacta, que se aplica en un cubo situado en el centro del dominio computacional, y“en banda”, aplicada en un paralelepıpedo que se extiende a traves del dominio completoen la direccion vertical y esta situado en el centro del medio excitable tridimensional.

Por ultimo, se estudian los efectos de los campos de adveccion. Para ello, se estudianumericamente la propagacion de la onda en un medio excitable tridimensional sujetoa condiciones de contorno de Neumann homogeneas, y sometido, en un caso, a uncampo de velocidad rotacional, y, en otro, a uno irrotacional; ambos campos satisfacenla condicion de no penetracion.

89

Page 112: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

90 Capıtulo 5: Resultados numericos

5.1. Aspectos generales de las simulaciones nume-

ricas

Todos los problemas se han resuelto en el dominio tridimensional Ω = [−Lx, Lx] ×[−Ly, Ly]× [−Lz, Lz] con Lx = Ly = Lz = 7,5 (figura 1.1).

Las simulaciones se han realizado con una malla de 101× 101× 101 puntos igual-mente espaciados y un paso de tiempo igual a 4 × 10−4. Se han repetido sobre unamalla de 201 × 201 × 201 puntos igualmente espaciados y el mismo paso de tiempo(4 ×10−4) con objeto de asegurar que las soluciones son independientes del numero depuntos de la malla, y poder observar con mayor detalle algunas imagenes. No obstante,en lo sucesivo todos los datos se presentan para g = 101.

Dependiendo del problema concreto, el sistema necesitara mas o menos tiempo paraalcanzar el estado estacionario. Para no cometer el error de obtener la solucion antesde que el sistema haya alcanzado el estado estacionario, se han obtenido algunas seriestemporales. En concreto se han elegido ocho puntos del dominio y se ha representadola evolucion temporal de las soluciones ( u y v) para cada uno de ellos. De este modose ha comprobado que la solucion es periodica y se ha obtenido el instante de tiempoa partir del cual se tiene esa periodicidad.

El tiempo en el que el sistema alcanza el estado estacionario es diferente para cadaproblema estudiado, pero en casi todos ellos se ha tenido que superar el tiempo t=90s(que con ∆t = 4× 10−4s, implica realizar un mınimo de 225 000 pasos de tiempo).

En los problemas tridimensionales en general, un aspecto crıtico para evaluar correc-tamente los resultados es su presentacion grafica. Para la visualizacion de las solucionesse han empleado fundamentalmente tecnicas de renderizado, tanto de isosuperficies, co-mo de volumenes con opacidad variable (volume rendering) [131, 129, 130]. En amboscasos, es necesario establecer un valor de referencia. En la isosuperficie se muestra lasuperficie formada por el lugar geometrico de los puntos cuyo valor es el de referencia(o muy proximo a el). En el volumen con opacidad variable, a las regiones proximas adichos puntos se les aplica un mayor grado de opacidad. El grado de opacidad de unaregion, depende, por tanto, del valor de la variable. Un codigo de colores ayuda, en estecaso, a visualizar los resultados.

Los detalles de las herramientas y tecnicas que se han utilizado para la visualizacionde los resultados se presentan en el apendice B.

5.2. Propagacion de ondas espirales en un medio

excitable 3D

Las ecuaciones del problema son de reaccion–difusion. Segun el modelo de Belousov–Zhabotinskii, y modeladas con el sistema Oregonator de dos ecuaciones, el sistema quehay que resolver viene dado por las ecuaciones 1.1 y 1.2 y los terminos fuente por lasexpresiones 1.3 (seccion 1.1.2).

Page 113: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.2. Propagacion de ondas espirales en un medio excitable 3D 91

En este caso, las ecuaciones estan sujetas a condiciones de contorno de Neumannhomogeneas en todos las fronteras y a las condiciones iniciales dadas por las ecuaciones1.4 y 1.5.

En ausencia de iluminacion y adveccion, la condicion inicial da lugar a la formacionde una onda espiral que gira en el sentido de las agujas del reloj y es independiente dela coordenada z, o lo que es lo mismo, se obtiene una espiral en dos dimensiones.

5.2.1. Analisis de los resultados

Se ha observado que u y v son independientes de z, es decir, se obtiene una onda espiralbidimensional.

Esta onda es identica a la de los estudios en dos dimensiones cuando se imponen lascondiciones de contorno de Neumann homogeneas y las mismas condiciones iniciales,con lo que se confirma la exactitud de los calculos tridimensionales que se presentanaquı.

En la figura 5.1 se presentan nueve imagenes (frames) que ilustran la onda espiral,en diferentes instantes de tiempo. En cada imagen se representa la superficie que cubrela mayorıa de los puntos del dominio computacional en los que u(t, x, y, z) = 0,72.Las isosuperficies de v(t, x, y, z) = 0,18 se presentan en la figura 5.2. Se han elegidoestos valores porque coinciden aproximadamente con el 75% de los valores maximosque pueden tomar u y v (1 y 0,2, respectivamente). De esta forma se esta seguro deque hay suficientes puntos con ese valor para formar una isosuperficie, lo que no ocurresi se representa el maximo, por ejemplo.

Las figuras 5.1 y 5.2 indican que la punta de la onda espiral gira alrededor deleje z de forma periodica. Para comprobar de forma precisa esa periodicidad se haestudiado la evolucion temporal de los valores de u y v en ocho puntos del dominiode computacion. A estos puntos se les llamaran posiciones de monitorizacion.

Las posiciones de monitorizacion (xM , yM , zM) vienen dadas por la expresion:

(xM , yM , zM) = (−Lx,−Ly,−Lz) + (xm, ym, zm)

habiendose elegido para (xm, ym, zm) los siguientes ocho valores:

(25δ,25δ,25δ), (13δ,13δ,13δ), (37δ,13δ,13δ), (13δ,37δ,13δ),

(37δ,37δ,13δ), (13δ,13δ,37δ), (37δ,13δ,37δ) y (13δ,37δ,37δ)

donde δ = 2Lx/100 es la distancia que existe entre dos puntos de la malla utilizada.

En la figura 5.3 se muestra la evolucion temporal de u y v en los puntos demonitorizacion (25δ,25δ,25δ) y (37δ,37δ,13δ). Graficas similares se han obtenido entodos los puntos de monitorizacion con el objetivo de comprobar la periodicidad delsistema.

En todas ellas se observa que el valor de u se caracteriza por tener picos de altaamplitud seguidos de largos perıodos donde u toma un valor muy pequeno (este com-portamiento es caracterıstico de fenomenos de relajacion). Por otra parte, la historia

Page 114: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

92 Capıtulo 5: Resultados numericos

Figura 5.1: Isosuperficies de u = 0,72 en los tiempos (de izquierda a derecha, de arriba a abajo)t =90,008, 90,176, 90,288, 90,536, 90,640, 90,792, 90,880, 91,016 y 91,120.

temporal de v exhibe un perfil de sierra que se caracteriza por una rapida subida a suvalor maximo seguida por un descenso mucho mas lento hacia su valor mınimo.

Para el punto de monitorizacion (37δ,37δ,13δ), los valores maximo y mınimo deu son 0,7740 y 0,0020, respectivamente, y los correspondientes de v son 0,1957y 0,0586. Para los demas puntos de monitorizacion estos valores son practicamenteidenticos.

El perıodo o distancia entre dos picos sucesivos de u es 1,5385 y el ancho del pulsode u es de 0,1840, independientemente del punto de monitorizacion; el ancho del pulsose ha medido usando como umbral el valor 0,0040. Esto implica que la concentracionde activador es baja durante unos cuatro quintos del perıodo de u.

La tabla 5.1 muestra el tiempo de llegada de los pulsos de u a los diferentes pun-tos de monitorizacion para los resultados presentados en la figura 5.1, una vez que seha alcanzado el comportamiento periodico. Estos tiempos de llegada corresponden au(ta, xM , yM , zM) = 0,2, y las diferencias y la distancia entre los puntos de monitori-zacion se pueden usar para obtener una indicacion de la velocidad de la propagacionde la onda. La tabla 5.1 indica que los tiempos de llegada a las mismas coordenadas(xM , yM) son independientes de zM .

Page 115: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.3. Efectos de la iluminacion 93

Figura 5.2: Isosuperficies de v = 0,18 en los tiempos (de izquierda a derecha, de arriba a abajo)t =90,008, 90,176, 90,288, 90,536, 90,640, 90,792, 90,880, 91,016, y 91,120.

Figura 5.3: Evolucion temporal de u y v en los puntos de monitorizacion: (25δ,25δ,25δ) y(37δ,37δ,13δ).

Cuadro 5.1: Tiempos en los que se observan pulsos de u ( δ = 0,15).

(xm,ym,zm) ta

(25δ,25δ,25δ) 41,3320

(13δ,13δ,13δ) 41,7080

(13δ,13δ,37δ) 41,7080

(37δ,13δ,13δ) 41,5760

(37δ,13δ,37δ) 41,5760

(13δ,37δ,13δ) 41,3320

(13δ,37δ,37δ) 41,3320

(37δ,37δ,13δ) 42,5720

5.3. Efectos de la iluminacion

Este estudio consta de dos partes: la propagacion de las ondas espirales en medios coniluminacion localizada compacta y con iluminacion localizada plana (aquı referida como

Page 116: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

94 Capıtulo 5: Resultados numericos

“en banda”, y que significa iluminacion a lo largo de un paralelepıpedo que atraviesa eldominio).

El valor de la iluminacion se controla mediante un parametro de control, φ, quese incluye en el termino fuente de la ecuacion del activador del sistema ( Fu). Lasecuaciones son las mismas, 1.1 y 1.2, pero los terminos fuentes vienen expresados porlas expresiones 1.6.

Las ecuaciones estan sujetas a condiciones de contorno de Neumann homogeneasen x e y, condiciones homogeneas de Dirichlet en z (condiciones N–D), y las mismascondiciones iniciales 1.4 y 1.5.

Habrıa que indicar que algunos autores, como Munuzuri et al. [65], han utilizadopreviamente las expresiones 1.6 con φ = 0 para simular heterogeneidades en un medioexcitable de dos dimensiones; en este trabajo, sin embargo, φ = 0 indica que en lassimulaciones tridimensionales se ha aplicado iluminacion.

5.3.1. Iluminacion localizada compacta

El efecto de iluminacion externa en la dinamica de la onda espiral ha sido analizadoen primer lugar imponiendo φ =0,2 en el volumen cubico de lado igual a 14δ y concentro en ( 50δ, 50δ, 50δ), y φ = 0 en el resto del dominio (figura 1.2a). El centro delcubo esta situado, por tanto, exactamente en el centro del dominio computacional.

En la figura 5.4 se presentan nueve imagenes que ilustran la onda espiral para estailuminacion localizada en diferentes instantes de tiempo. En este caso se utiliza unatecnica de visualizacion diferente a la del caso anterior (apendice B). Se representan losvalores de todos los puntos del volumen y no una isosuperficie. La figura 5.5 representalas correspondientes imagenes de la concentracion v.

Las imagenes muestran una onda espiral periodica que es incapaz de penetrar en laregion en la que se esta aplicando la iluminacion. Esto se manifiesta por una muescaque presenta la espiral justo en el centro del dominio computacional (lugar en el que estasiendo aplicada la iluminacion). La figura 5.4 muestra tambien la presencia de fuertesgradientes en u en las fronteras z donde se han impuesto condiciones de contornohomogeneas de Dirichlet.

Todo esto produce una onda espiral que exhibe una curvatura en los planos xze yz. Como consecuencia, la zona de la onda espiral situada entre las caras superiore inferior del cubo de iluminacion y las fronteras superior e inferior del dominio decomputacion, respectivamente, abandona las fronteras xz e yz del dominio computa-cional, en tiempos diferentes a aquel en que lo hacen las partes de la onda espiral queestan situadas entre las caras superior e inferior del cubo de iluminacion.

La figura 5.4 muestra tambien que la onda espiral es mas delgada por la parte queesta situada mas cerca de las fronteras z (superior e inferior) del dominio computacionalque por el resto. Esto es debido a las condiciones de contorno homogeneas de Dirichletque se han aplicado en esas fronteras del dominio, es decir, u(t, x, y,±Lz) = 0 yv(t, x, y,±Lz) = 0 .

Page 117: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.3. Efectos de la iluminacion 95

Figura 5.4: Concentracion del activador, u, en los tiempos (de izquierda a derecha, de arriba aabajo) t =60,00, 60,20, 60,38, 60,56, 60,78, 61,00, 61,10, 61,20 y 61,30.

Es interesante destacar que, despues de la salida de la onda espiral del dominiocomputacional y su posterior entrada, la concentracion del activador presenta una es-pecie de joroba cerca de la punta de la espiral. En las zonas proximas a las fronteras z,la parte de la joroba mas cercana a la punta de la espiral tiene una estructura de capacasi plana, mientras que la parte mas alejada es redondeada. El valor de u es cero enambas fronteras. Cuando la onda se aproxima a las esquinas, la joroba desaparece y laparte de la onda espiral mas alejada de la punta se enmarana y se vuelve mas fina quela mas cercana. El proceso se repite de forma periodica.

Para comprobar la periodicidad, al igual que en el problema anterior, se han re-presentado los valores de u y v en funcion del tiempo en los mismos ocho puntos deldominio de computacion. En la figura 5.6 se muestra esta grafica pero solo para lospuntos de monitorizacion (25δ,25δ,25δ) y (37δ,37δ,13δ).

El valor de u se caracteriza por unos picos de alta amplitud seguidos de largosperıodos donde u es muy pequena, caracterısticos de las oscilaciones de relajacion.

Los valores maximo y mınimo de u son aproximadamente 0,7749 y 0,0020, respec-tivamente. El valor maximo de v es 0,1957 y el mınimo es 0,0569. Todos estos valoresson practicamente identicos en todos los puntos de monitorizacion.

El perıodo o distancia entre dos picos sucesivos y el ancho del pulso de u son 1,6000

Page 118: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

96 Capıtulo 5: Resultados numericos

Figura 5.5: Concentracion del activador, v, en los tiempos (de izquierda a derecha, de arriba aabajo) t =60,00, 60,20, 60,38, 60,56, 60,78, 61,00, 61,10, 61,20 y 61,30.

y 0,3240, respectivamente, independientemente del punto de monitorizacion. Para lamedida del ancho del pulso de u se ha utilizado un umbral de 0,0040. Esto implicaque, igual que en el caso anterior, la concentracion de activador es baja en unos cuatroquintos del perıodo de u.

La historia temporal de v en los puntos de monitorizacion exhibe un perfil de sierraque se caracteriza por una rapida subida a su valor maximo seguida de un descensomucho mas lento hacia su valor mınimo.

La tabla 5.2 muestra los tiempos en los que u alcanza el valor 0,2, es decir, tatal que u(ta, xM , yM , zM) = 0,2, para las ocho localizaciones de monitorizacion (figura5.4). Estos tiempos se miden una vez que se ha alcanzado el comportamiento periodico.

Los resultados de la tabla 5.2 indican que los tiempos de llegada del pulso o frentede propagacion dependen ligeramente de zM para (xM , yM) fijos. Por otra parte, paraun valor fijo de zM , los tiempos dependen bastante de (xM , yM). Esto se debe a lamuesca que presenta la onda espiral en el lugar donde se aplica la iluminacion, y alas condiciones de contorno de Dirichlet homogeneas que se aplican en las fronterassuperior e inferior del dominio.

Page 119: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.3. Efectos de la iluminacion 97

Figura 5.6: Evolucion temporal de u y v en los puntos de monitorizacion: (25δ,25δ,25δ) y(37δ,37δ,13δ), para iluminacion localizada compacta.

Cuadro 5.2: Tiempos en los que se observan pulsos de u con iluminacion compacta ( δ =0,15).

(xm,ym,zm) ta

(25δ,25δ,25δ) 61,4240

(13δ,13δ,13δ) 61,8000

(13δ,13δ,37δ) 61,8560

(37δ,13δ,13δ) 61,6720

(37δ,13δ,37δ) 61,7280

(13δ,37δ,13δ) 61,4240

(13δ,37δ,37δ) 61,4480

(37δ,37δ,13δ) 62,6160

5.3.2. Iluminacion localizada “en banda”

El efecto de la iluminacion externa en la dinamica de la onda espiral se ha analizadopara φ = 0,2 en (−Lx ≤ x ≤ Lx,−Ly + 48δ ≤ y ≤ −Ly + 52δ,−Lz ≤ z ≤ Lz), yφ = 0 en el resto del dominio computacional. Esto corresponde a una iluminacion a lolargo de una banda (figura 1.2b).

La figura 5.7 muestra los resultados que se obtienen para la concentracion del ac-tivador u. Las nueve imagenes corresponden a nueve instantes elegidos entre los queforman un perıodo completo, e indican que la iluminacion en banda, que atraviesa el

Page 120: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

98 Capıtulo 5: Resultados numericos

dominio computacional, destruye la onda espiral y produce movimientos de tipo respi-ratorio. Esto es analogo a lo que se ha observado en las simulaciones de ondas espiralesen dos dimensiones [83], aunque la amplitud de la iluminacion para aniquilar la ondaespiral en dos dimensiones es mucho mayor que la requerida en tres dimensiones, esdecir, φ = 1 para 2D comparado con φ = 0,2 en 3D.

La figura 5.8 muestra los resultados que se obtienen para la concentracion del inhi-bidor v.

Figura 5.7: Concentracion del activador, u, en los tiempos (de izquierda a derecha, de arriba aabajo) t =62,50, 62,60, 62,66, 62,70, 62,82, 62,86, 62,90, 62,98 y 63,04.

La figura 5.7 indica que aparecen dos frentes en cada lado de la banda de ilumina-cion. Estos frentes avanzan en la direccion paralela a la banda mas rapidamente queen la direccion perpendicular a ella, hasta llegar a alcanzar las fronteras que son per-pendiculares a ella. El frente a la derecha de la banda es mas pequeno que el frente ala izquierda. Una vez que se alcanzan las fronteras, las regiones de alta concentraciondel activador se mueven muy rapidamente en direccion perpendicular, pero lejos de labanda de iluminacion. Esta propagacion no es simetrica con respecto a la banda, ylos frentes de cada lado de la banda se funden ocasionalmente atravesandola, inclusoantes de que uno de ellos alcance el contorno paralelo a esta banda. A continuacion,el frente que se propaga mas lentamente alcanza el contorno paralelo a la banda y sepropaga tangencialmente a este contorno. La concentracion del activador empieza adisminuir por el centro del dominio y allı exhibe una complicada forma anular, la cual

Page 121: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.3. Efectos de la iluminacion 99

Figura 5.8: Concentracion del inhibidor, v, en los tiempos (de izquierda a derecha, de arriba aabajo) t =62,50, 62,60, 62,66, 62,70, 62,82, 62,86, 62,90, 62,98 y 63,04.

se propaga hacia las fronteras del dominio y queda como resultado una region en formaauricular en cada lado de la banda de iluminacion. Esta region en forma auricular sepropaga mas rapidamente hacia la frontera que es paralela a la banda que hacia lasperpendiculares a ella. Ocasionalmente, el frente de la izquierda de la banda alcanzael contorno paralelo de la banda y exhibe una estructura anular. En ese momento sesepara desde el otro lado de la banda el cual no ha alcanzado todavıa el contorno para-lelo de la banda. Una vez que este frente alcanza la frontera tambien exhibe una formaanular. Las formas anulares en cada lado de la banda de iluminacion pueden formarislas o bolsas (pockets) donde la concentracion del activador es relativamente alta, y,ocasionalmente, abandona el dominio computacional.

Este proceso se repite periodicamente.

La comparacion entre los resultados que se muestran en la figura 5.7 y los de dosdimensiones [83] indican que la onda espiral pierde su integridad cuando la iluminacionse impone a lo largo de una lınea (en el caso bidimensional) y un paralelepıpedo (en elcaso tridimensional), y tal destruccion resulta en movimientos de tipo respiratorio. Sinembargo, en el caso tridimensional esta respiracion exhibe complejas formas curvadascerca de la banda de iluminacion y en las fronteras superior e inferior del dominiocomputacional, debido a las condiciones de Dirichlet y a la tercera dimension.

La figura 5.7 tambien muestra que el gradiente de u en las fronteras superior e

Page 122: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

100 Capıtulo 5: Resultados numericos

inferior es muy grande y causa algun retraso del frente de onda cerca de estos contornos.Sin embargo, si se imponen condiciones de contorno homogeneas de Neumann, nose espera que los resultados sean sustancialmente muy diferentes de los que se hanpresentado, porque la propagacion de la onda ocurre principalmente a lo largo de lasdirecciones paralelas a esos contornos, excepto en los ultimos estados —de los resultadospresentados en la figura 5.7— en los que la propagacion tiene lugar principalmente enuna direccion perpendicular a las fronteras superior e inferior.

Como en el caso de iluminacion compacta, para la iluminacion en banda tambien seha representado la evolucion temporal de las concentraciones de u y v en los puntos demonitorizacion (25δ,25δ,25δ) y (37δ,37δ,13δ). Los resultados se muestran en la figura5.9.

Figura 5.9: Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y(37δ,37δ,13δ), para iluminacion en banda.

Los valores maximo y mınimo de u en los puntos de monitorizacion son aproxima-damente 0,9223 y 0,0020, respectivamente, mientras que los correspondientes de v son0,2112 y 0,0079. En ambos casos, los valores maximo y mınimo son identicos en todoslos puntos de monitorizacion.

El perıodo o distancia entre dos picos sucesivos es 4,4784 y el ancho del pulso de u es0,4080, independientemente del punto de monitorizacion; el ancho del pulso de u se hamedido tomando un umbral de 0,0040. Esto implica nuevamente que la concentracionde activador es bastante pequena en unos cuatro quintos del perıodo de u. Ademas, losvalores maximos de u y v, los anchos de pulso, y el perıodo, crecen cuando aumentael ancho de banda de iluminacion. Esto es similar a lo que pasa en los estudios de lapropagacion de la onda espiral en medios excitables de dos dimensiones [83].

Page 123: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 101

Cuadro 5.3: Tiempos en los que se observan pulsos de u con iluminacion en banda ( δ =0,15).

(xm,ym,zm) ta

(25δ,25δ,25δ) 61.5840

(13δ,13δ,37δ) 61.5840

(37δ,13δ,37δ) 61.5840

(13δ,37δ,37δ) 61.5840

(13δ,37δ,13δ) 61.6480

(37δ,37δ,13δ) 61.6720

(13δ,13δ,13δ) 61.7200

(37δ,13δ,13δ) 61.7520

La tabla 5.3 muestra los tiempos en los que u alcanza el valor 0,2, es decir, ta tal queu(ta, xM , yM , zM) = 0,2, para las ocho localizaciones de monitorizacion, en este modelode iluminacion en banda (figura 5.7), y una vez que el comportamiento periodico seha alcanzado. Los resultados indican que los tiempos de llegada dependen ligeramentede zM para unos (xM , yM) fijos (de hecho, los tiempos de llegada son 61,5840 parazM = 37δ, y difieren en menos de un 1,5% de los de zM = 13δ), mientras que dependenfuertemente de (xM , yM) para un valor fijo de zM .

5.4. Efectos de los campos de adveccion

El estudio se divide en dos partes: en la primera se analiza el caso de un campo develocidad rotacional y en la segunda el de un campo de velocidad irrotacional. Amboscampos de adveccion satisfacen la condicion de no penetracion.

El estudio utiliza campos de flujo tridimensionales, estacionarios, convectivos ad-vectivos con deformacion y rotacion. Las componentes de la velocidad son funcionessinusoidales de las coordenadas cartesianas x, y y z, y se supone que son las mismaspara las variables u y v, es decir, las mismas para el activador y el inhibidor. Elprincipal objetivo del estudio es determinar los efectos de la amplitud y la frecuenciaespacial de un campo de velocidad sinusoidal en la propagacion de la onda espiral enun medio excitable tridimensional.

Las ecuaciones originales del modelo se ven afectadas por la aplicacion del campoy esto queda reflejado con la adicion de un termino que incluye el vector de velocidadv = (vx, vy, vz)

T , donde los subındices x, y y z indican los ejes correspondientes.

∂u

∂t+ v · ∇u = ∇ · (Du∇u) + Fu (5.1)

∂v

∂t+ v · ∇v = ∇ · (Dv∇v) + Fv (5.2)

Page 124: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

102 Capıtulo 5: Resultados numericos

Los terminos fuentes en las ecuaciones 5.1 y 5.2 son los mismos de la ecuacion 1.3.

Las ecuaciones estan sujetas a condiciones de contorno de Neumann homogeneasen x, y y z, y a las mismas condiciones iniciales 1.4 y 1.5.

El campo de velocidad empleado en este estudio se puede escribir como

vx = A cos

(mxπx

Lx

)sin

(nxπy

Ly

)sin

(pxπz

Lz

)(5.3)

vy = A sin

(myπx

Lx

)cos

(nyπy

Ly

)sin

(pyπz

Lz

)(5.4)

vz = A sin

(mzπx

Lx

)sin

(nzπy

Ly

)cos

(pzπz

Lz

)(5.5)

donde la amplitud A es una constante a la que se le ha asignado el valor 3, y mx,my, mz, nx, ny, nz, px, py y pz son numeros enteros.

Este campo de velocidad satisface la condicion de contorno de no deslizamiento simx, ny y pz son numeros impares y nx, px, my, py, mz y nz son numeros pares.Por otro lado, satisface la condicion de no penetracion si mx, my, mz, nx, ny, nz,px, py y pz son numeros enteros impares.

En este trabajo se han realizado experimentos numericos con campos de velocidadque cumplen la condicion de no penetracion en los contornos, y para ello se han elegidomx= my= mz= m, nx= ny= nz= n y px= py= pz= p, donde m, n y p son numerosenteros impares. Esta condicion implica que v · n = 0 y v · t = 0, donde n y t sonlos vectores unitarios normales y tangenciales, respectivamente, a las fronteras.

Sin embargo, como Lx= Ly = Lz = L, se puede comprobar facilmente que ∇·ves distinto de cero, ya que este termino viene dado por la siguiente expresion:

∇ · v = −π(

mLx

+ nLy

+ pLz

)sin

(mπxLx

)sin

(nπyLy

)sin

(pπzLz

),

y, por tanto, el campo de velocidad no es solenoidal, introduce anisotropıa (debido ala dependencia espacial de las componentes de velocidad), es compresible, y afecta ala velocidad de reaccion efectiva; de hecho, esta aumenta si ∇ · v > 0 y disminuye encaso contrario.

Segun las asignaciones anteriores, el campo sera irrotacional ( ∇× v = 0) si m =n = p, y sera rotacional en caso contrario.

Se define el tensor de velocidad S como:

S = D + R =

∂vx

∂x∂vx

∂y∂vx

∂z∂vy

∂x

∂vy

∂y

∂vy

∂z∂vz

∂x∂vz

∂y∂vz

∂z

Page 125: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 103

donde D=12(S + ST ) y R=1

2(S − ST ) definen el tensor de deformacion y de rotacion,

respectivamente, y T indica traspuesta. Para este campo, el tensor D se caracterizapor un alto estiramiento, es decir, un alto valor de las componentes diagonales Sxx,Syy y Szz en los contornos, siendo Sij =

∂vi

∂j.

Tambien hay que indicar que:

Sxy es cero en los puntos x = ±Lx

2, y = ±Ly

2, z = 0;

Sxz es cero en los puntos x = ±Lx

2, y = 0, z = ±Lz

2;

Syz es cero en los puntos x = 0, y = ±Ly

2, z = ±Lz

2.

A continuacion se presentan algunos resultados que muestran la propagacion dela onda en un medio excitable tridimensional sujeto al campo de velocidad que vienedado por las ecuaciones 5.3, 5.4 y 5.5. Debido al elevado coste computacional de lassimulaciones en tres dimensiones, se han obtenido resultados solo para dos casos: m =n = p = 1 (campo irrotacional), y m = p = 1 y n = 3 (campo rotacional).

5.4.1. Campo irrotacional

Para el caso m = n = p = 1 no existe onda espiral. Esto se muestra en la figura5.10, en la que se representan las isosuperficies de u= 0,90·umax donde umax(t) =max[u(x, y, z, t)] para (x, y, z) ∈ Ω.

Estas isosuperficies de la concentracion del activador indican que un frente casiplano se propaga desde la esquina localizada en (x,y,z ) = (–Lx/2, –Ly/2, –Lz/2) haciala esquina (Lx/2, Ly/2, Lz/2), aunque presenta alguna curvatura en los bordes (–Lx/2,–Ly/2, z), (x, –Ly/2, –Lz/2) y (–Lx/2, y, –Lz/2) y puede retroceder un poco hacia laesquina situada en (x,y,z ) = (–Lx/2, –Ly/2, –Lz/2) como se observa claramente en lacomparacion entre la primera imagen y la segunda de la figura 5.10; previamente sepropaga de nuevo hacia la esquina (Lx/2, Ly/2, Lz/2).

Cuando este frente esta a punto de alcanzar los puntos de la frontera (0, –Ly/2,–Lz/2), (–Lx/2, 0, –Lz/2) y (–Lx/2, –Ly/2, 0), aparece un segundo frente paralelo entreese primer frente y la esquina localizada en (–Lx/2, –Ly/2, –Lz/2) (tercera imagen dela figura 5.10), y ambos frentes se propagan hacia la esquina (Lx/2, Ly/2, Lz/2).

Un poco despues de que el primer frente pasa por los puntos (–Lx/2, –Ly/2, Lz/2),(Lx/2, –Ly/2, 0) y (–Lx/2, Ly/2, 0), desarrolla una protuberancia o pico hacia la esquina(cuarta imagen de la figura 5.10) (Lx/2, Ly/2, Lz/2), el cual se convierte en un frentecasi plano cuando alcanza esta esquina, que junto con la esquina localizada en (Lx/2,–Ly/2, Lz/2), forman una piramide (quinta imagen de la figura 5.10).

Este frente se propaga hacia el vertice de la piramide y entonces desaparece deldominio, mientras que el segundo frente continua su viaje hacia la esquina (Lx/2, Ly/2,Lz/2) y entonces adquiere una forma piramidal casi identica a la del primer frente. Elsegundo frente tambien se propaga hacia el vertice de la piramide (novena imagen dela figura 5.10) y entonces desaparece del dominio.

Page 126: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

104 Capıtulo 5: Resultados numericos

Figura 5.10: Isosuperficies de u = 0,90·umax donde umax(t) = max[u(x, y, z, t)] para(x, y, z) ∈ Ω en (de izquierda a derecha, de arriba a abajo) t = 94,440, 94,500, 94,644, 94,724,94,740, 94,764, 94,948, 94,996 y 95,076 para m = n = p = 1.

En la figura 5.11 se presentan las isosuperficies de v = 0,90 ·vmax donde vmax(t)= max[ v(x, y, z, t)] para (x, y, z) ∈ Ω.

Esta figura indica que un frente casi plano emerge desde la esquina inferior izquierdade atras y se propaga hacia la esquina superior derecha de delante. Este frente retrocedeun poco hacia la esquina inferior izquierda de atras y entonces se propaga de nuevohacia la esquina superior derecha de delante.

Algun tiempo despues este frente plano pasa las esquinas inferior izquierda de atrasy la inferior derecha y superior izquierda de delante, desarrolla una protuberancia, y,una vez que esa protuberancia alcanza la frontera derecha, emerge un segundo frenteplano cerca de la esquina inferior izquierda de atras, mientras el primer frente adquiereuna forma casi plana, y se propaga hacia la esquina superior izquierda de delante, enla que desaparece.

El segundo frente sigue un comportamiento similar al del primero, aunque se man-tiene casi estacionario en las esquinas inferior izquierda de delante y superior izquierdae inferior derecha de atras durante un tiempo bastante largo.

Observese que los resultados presentados en las figuras 5.10 y 5.11 corresponden atiempos en los que u y v, respectivamente, muestran actividad. Como se discutira acontinuacion y se puede ver en la figura 5.14, u se caracteriza por picos cuyo ancho

Page 127: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 105

Figura 5.11: Isosuperficies de v =0,90·vmax donde vmax(t) = max[v(x, y, z, t)] para(x, y, z) ∈ Ω en (de izquierda a derecha, de arriba a abajo) t = 94,505, 94,532, 94,844, 94,924,94,956, 94,980, 95,004, 95,100 y 95,204 para m = n = p = 1.

es mucho mas pequeno que el perıodo de v. Por lo tanto, los tiempos en los que sepresentan u y v en las figuras 5.10 y 5.11, respectivamente, no coinciden.

Se debe hacer notar tambien que umax y vmax dependen del tiempo, y la distanciaentre el primer y segundo frente discutida anteriormente indica el espesor de la onda.De hecho, si los valores de u y v se dibujan en todo el dominio (figuras 5.12 y 5.13),se puede ver que un frente de onda grueso caracteriza la tercera y la cuarta imagen yla parte izquierda de la quinta imagen de la figura 5.12, mientras que el espesor de laonda es menor en las otras imagenes de esta figura.

Los valores de u y v en las ocho localizaciones de monitorizacion son los mismosque los que se han elegido en los los estudios anteriores.

En la figura 5.14 se muestra la evolucion temporal de u y v en los puntos demonitorizacion (25δ,25δ,25δ) y (37δ,37δ,13δ). Estas graficas se han realizado para todoslos puntos de monitorizacion con el objetivo de comprobar la periodicidad del sistema.

Los valores de la figura 5.14 indican que la concentracion de activador aumentarapidamente a un valor maximo igual a 0,9248 y a continuacion disminuye a un valor0,0020. El perıodo o distancia entre dos picos sucesivos y el ancho de banda de u son4,4440 y 0,3640, respectivamente, independientemente del punto de monitorizacion; elancho de pulso de u se ha medido usando un umbral de 0,0040.

Page 128: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

106 Capıtulo 5: Resultados numericos

Figura 5.12: Concentracion de u en los tiempos (de izquierda a derecha, de arriba a abajo) t =94,440, 94,500, 94,644, 94,724, 94,740, 94,764, 94,948, 94,996 y 95,076 para m = n = p = 1.

Los valoresmaximo ymınimo de v en las localizaciones de monitorizacion son 0,2114y 0,0079, y el valor de v en los puntos de monitorizacion se caracteriza por un rapidoascenso a su valor maximo y un lento descenso a su valor mınimo. El comportamientode v en las localizaciones de monitorizacion se parece a los observados en las oscilacionesde relajacion, mientras que los de u indican una actividad rapida.

5.4.2. Campo rotacional

Para m=p=1 y n=3, las isosuperficies de u(x, y, z, t) = 0,72 que se presentan en lasfiguras 5.15 y 5.16 indican que un frente curvo emerge desde una region en la fronteraizquierda superior que se expande hacia las paredes derecha, frontal, trasera e inferiormientras va incrementando su superficie en el contorno superior izquierdo.

Cuando este frente alcanza la pared frontal, un segundo frente emana desde casi lamisma region que el primero y ambos frentes se propagan paralelos y a una velocidadcasi constante; la distancia entre estos frentes proporciona una estimacion del espesorde la onda.

Cuando el primer frente alcanza las paredes derecha, inferior y frontal, forma plie-gues en estos planos y el patron resultante comienza un movimiento casi radial haciael borde (x,Ly/2,0).

Page 129: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 107

Figura 5.13: Concentracion de v en los tiempos (de izquierda a derecha, de arriba a abajo) t =94,505, 94,532, 94,844, 94,924, 94,956, 94,980, 95,004, 95,100 y 95,204 para m = n = p = 1.

El segundo frente exhibe un comportamiento dinamico similar al del primero, y,al final, lo rodea y se vuelve casi concentrico con el a lo largo del borde mencionadopreviamente.

El patron resultante presenta una forma conica cuyo corte transversal mas grandey mas pequeno esta en las paredes trasera y frontal, respectivamente, y exhibe unacontraccion en (0, Ly/2, 0). Las partes del frente en forma conica que se encuentranentre el punto de contraccion y los contornos de delante y de atras, se mueven haciala frontera de atras a la vez que su seccion transversal decrece. Finalmente, la secciontransversal de contraccion se hace nula y aparecen dos frentes separados.

El frente en el que su mayor seccion transversal esta en la pared trasera exhibe unaforma conica, y el que esta localizado entre la pared frontal y la contraccion se parecea una gota cuyo tamano decrece hasta cero mucho antes de que el vertice del frenteconico se mueva hacia la esquina localizada en (–Lx/2, Ly/2, 0). Mas tarde desaparecedel dominio.

En las figuras 5.17 y 5.18 se representan las concentraciones de u en todo el dominiocomputacional Ω para dieciocho instantes de tiempo de un perıodo (que coinciden conlos que se han representado mediante isosuperficies en las figuras 5.15 y 5.16).

En este campo, m = p = 1 y n = 3, los valores de u y v en las localizaciones de

Page 130: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

108 Capıtulo 5: Resultados numericos

Figura 5.14: Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y(37δ,37δ,13δ), para el caso m = p = n = 1 .

monitorizacion exhiben una tendencia similar a los del caso m = n = p = 1 (figura5.19), excepto que el valor maximo de u es igual a 0,9245 y el valor mınimo es 0,0002.El perıodo o distancia entre dos picos sucesivos y el ancho de u son 3,9996 y 0,3560,respectivamente, independientemente del punto de monitorizacion. El ancho de u seha medido usando el umbral 0,0040.

Los valores maximo y mınimo de v en los puntos de monitorizacion son 0,2112 y0,0079, respectivamente, y el valor de v en la localizacion de monitorizacion se carac-teriza por un rapido ascenso a su valor maximo y un lento descenso a su valor mınimo.

Por lo tanto, el principal efecto de un incremento de n, en la historia temporal deu y v, es la disminucion del perıodo de los picos en la concentracion del activador.Sin embargo, los resultados que se han discutido previamente indican que un campoadvectivo de flujo aniquila las ondas espirales y produce complejos patrones en espacioy tiempo que se caracterizan por frentes planos y curvos.

Las isosuperficies de la concentracion del inhibidor para m = p = 1 y n = 3exhiben una tendencia similar a la de la concentracion del activador, aunque comose ha indicado previamente, u (en los puntos de monitorizacion) tiene una estructurapuntiaguda de mucho menos duracion que la de v. Como consecuencia, v esta porencima de su valor mınimo durante mas tiempo que u.

Las diferencias entre los resultados correspondientes a m = n = p = 1, y m = p = 1y n = 3 se pueden explicar de la siguiente manera.

En primer lugar, como los campos de velocidad empleados en este estudio no sonsolenoidales, la compresibilidad afecta a la velocidad de reaccion introduciendo los

Page 131: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 109

Figura 5.15: Isosuperficies de u = 0,72 en (de izquierda a derecha, de arriba a abajo) t =93,032, 93,208, 93,216, 93,312, 93,368, 93,384, 93,432, 93,554 y 93,568 para m = p = 1 yn = 3.

terminos u∇·v y v∇·v en la parte derecha de las ecuaciones 5.1 y 5.2, respectivamente.Esto es ası si los terminos de conveccion se escriben en la forma de ley de conservacionfuerte, es decir, como ∇· (uv) y ∇· (vv) en las ecuaciones 5.1 y 5.2, respectivamente.

En segundo lugar, para m = n = p = 1 se cumple que:

vx = 0 en x = ±Lx

2, y = 0, o z = 0,

vy = 0 en x = 0, y = ±Ly

2, o z = 0,

vz = 0 en x = 0, y = 0, o z = ±Lz

2.

Por tanto, el unico punto de estancamiento ocurre en x = y = z = 0. Sin embargo,la compresibilidad del campo de velocidad es mınima (nula) en (x, y, z) = (0, 0, 0) ymaxima en (x, y, z) = (Lx/2, Ly/2, Lz/2). La contribucion de la compresibilidad delflujo a la velocidad efectiva de reaccion es nula en (x, y, z) = (0, 0, 0), y esto explicala protuberancia o pico que se observa cuando los frentes casi planos correspondientesa m = n = p = 1 alcanzan este punto.

Sin embargo, para m = p = 1 y n = 3,

vx = 0 en x = ±Lx

2, y = 0, y = ±Ly

3o z = 0,

Page 132: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

110 Capıtulo 5: Resultados numericos

Figura 5.16: Isosuperficies de u = 0,72 en (de izquierda a derecha, de arriba a abajo) t =93,600, 93,624, 93,648, 93,680, 93,704, 93,728, 93,912, 93,936 y 94,016 para m = p = 1 yn = 3.

vy = 0 en x = 0, y = ±Ly

6, y = ±Ly

2o z = 0,

vz = 0 en x = 0, y = 0, y = ±Ly

3o z = ±Lz

2,

y este flujo tiene solo un punto de estancamiento en (x, y, z) = (0, 0, 0). La compresi-bilidad del campo de velocidad es mınima (nula) en (x, y, z) = (0, 0, 0) y maxima en(x, y, z) = (Lx/2, Ly/2, Lz/2), es decir, hay expansion de flujo en (x, y, z) = (Lx/2,Ly/2, Lz/2), y esta expansion reduce la velocidad efectiva de reaccion en este punto.

El valor absoluto de la compresibilidad del campo de velocidad correspondiente am = p = 1 y n = 3 es 5/3 mayor que la correspondiente a m = n = p = 1.

Ademas, para m = n = p = 1,

Sxy = ±A en(0, 0,±Lz

2

),

Sxz = ±A en(0,±Ly

2, 0

)y

Syz = ±A en(±Lx

2, 0, 0

),

mientras que para m = p = 1 y n = 3:

Sxy = ±2A en(0, 0,±Lz

2

)y

(0,±Ly

3,∓Lz

2

),

Page 133: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.4. Efectos de los campos de adveccion 111

Figura 5.17: Concentraciones de u en (de izquierda a derecha, de arriba a abajo) t = 93,032,93,208, 93,216, 93,312, 93,368, 93,384, 93,432, 93,554 y 93,568 para m = p = 1 y n = 3.

Sxz = ±A en(0,±Ly

6, 0

)y

Syz= ±2A en(±Lx

2, 0, 0

)y

(∓Lx

2,±Ly

3, 0

)Por tanto, la deformacion del frente de reaccion causado por el campo de velocidad

crece al aumentar n y esto explica la curvatura y la interaccion entre los frentes y loscontornos, y el plegamiento y estiramiento de los frentes conicos discutidos anterior-mente.

Como se ha indicado previamente [80, 82, 79], el movimiento en la vecindad de unpunto en un medio excitable tridimensional se puede descomponer en una traslacionv, una rotacion de cuerpo rıgido con una velocidad angular igual a 1

2∇×v y una pura

deformacion. Los dos primeros no tienen ningun efecto en la estructura interna localde un frente de onda plano, mientras que el tercero se describe por el tensor simetricode velocidad de deformacion e = 1

2

[(∇v) + (∇v)T

], donde el superındice T indica

traspuesta.

Para frentes de onda localmente planos, la descomposicion mas importante de e enlos puntos de estancamiento esta asociada con b = n ·e ·n donde n es el vector unidadnormal al frente. En un punto de estancamiento de un flujo tridimensional, la velocidadde cambio de la componente transversal de velocidad con la distancia transversal est · e · t donde t es el vector unidad tangente al frente, y es igual a − b. Esto significa

Page 134: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

112 Capıtulo 5: Resultados numericos

Figura 5.18: Concentraciones de u en (de izquierda a derecha, de arriba a abajo) t = 93,600,93,624, 93,648, 93,680, 93,704, 93,728, 93,912, 93,936 y 94,016 para m = p = 1 y n = 3.

que una disminucion en la masa normal de flujo con la distancia a traves del frente, esdecir, b < 0, se refleja en un flujo transversal neto de salida, es decir, t · e · t > 0. Enla teorıa de la combustion, este flujo se denomina estiramiento de la llama [110], y elestiramiento se puede escribir como − n · ∇ × (v × n) = − (n · ∇)(v · n) + ∇ · v.Para el campo de velocidad no solenoidal empleado en este trabajo, el ultimo terminode esta expresion es no nulo.

Los resultados presentados en esta seccion indican que los campos de flujo advec-tivos pueden destruir las ondas espirales y resultan en frentes planos o curvos en unmedio excitable tridimensional, y que un aumento en la frecuencia espacial del campode velocidad resulta en una disminucion del perıodo del patron resultante, aunque losmayores valores de u y v y el ancho de u son casi insensibles a un aumento en lafrecuencia del campo de velocidades. La aparicion de frentes planos o curvos en un me-dio excitable tridimensional es analoga a la que se observa en uno de dos dimensionesdonde se ha encontrado que la amplitud, la frecuencia, la deformacion, la compresibili-dad, la velocidad angular y las condiciones del contorno del campo de velocidad jueganun papel de suma importancia en la determinacion de la ruptura o aniquilacion de lasondas espirales en medios excitables [80, 82, 79].

Una comparacion entre los resultados presentados aquı y los de dos dimensiones [80,82, 79], en los cuales se han utilizado campos de velocidad sinusoidales, con multiples

Page 135: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.5. Conclusiones 113

Figura 5.19: Evolucion temporal de u y v en los puntos de monitorizacion (25δ,25δ,25δ) y(37δ,37δ,13δ), para el caso m = p = 1 y n = 3.

puntos de estancamiento, indica que tanto la deformacion como la rotacion del flujojuegan un papel primordial en la determinacion de la propagacion de ondas en mediosexcitables de dos y tres dimensiones. La deformacion del flujo tuerce el frente de reacciony lo alinea con una de las direcciones principales del tensor de deformacion (la de mayordeformacion) cerca de los puntos de estancamiento, mientras que la adveccion puederesultar en concentraciones casi uniformes si es suficientemente grande.

5.5. Conclusiones

En este capıtulo se ha presentado un estudio de diferentes problemas sobre la propaga-cion de ondas espirales en un medio excitable tridimensional. Se ha utilizado el modeloOregonator de dos ecuaciones.

En primer lugar, se ha estudiado la propagacion de ondas espirales en un medioexcitable sin iluminacion ni adveccion. Se ha mostrado que en ausencia de iluminaciony adveccion, con condiciones de contorno de Neumann homogeneas, se forma una ondaespiral que gira en el sentido de las agujas del reloj independientemente de z. Estaonda es identica a la que se ha observado en los estudios de dos dimensiones de lapropagacion de la onda espiral en un medio excitable.

A continuacion se han analizado los efectos de la iluminacion. Para ello, se han reali-zado dos estudios: medio con iluminacion localizada compacta, y medio con iluminacionlocalizada “en banda”.

Cuando se introduce la iluminacion localizada en un cubo situado en el centro del

Page 136: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

114 Capıtulo 5: Resultados numericos

dominio computacional y se imponen condiciones de contorno de Neumann homogeneasen todos los contornos excepto en el superior e inferior, donde se imponen condicioneshomogeneas de Dirichlet, se observa que la onda espiral conserva su integridad; que,aunque exhibe una muesca a lo largo de la periferia del cubo, es incapaz de penetraren el cubo; que el brazo de la onda espiral cerca de los contornos superior e inferior semueve mucho mas lentamente que entre ambos contornos; y que hay fuertes gradientesde la concentracion del activador debido a la formacion de capas lımites en los contornossuperior e inferior.

Los calculos tambien se han realizado con iluminacion “en banda”, es decir, ilumi-nacion aplicada en un paralelepıpedo que se extiende a traves del dominio completo enla direccion vertical y esta localizado en la zona central de un medio excitable tridi-mensional. Los resultados indican que la onda espiral es destruida por la iluminacionen banda y se crean dos regiones activas, una en cada lado de la banda. Estas regionesactivas se caracterizan por las altas concentraciones de activador que se mueven hacialos contornos paralelos de la banda y, cuando los alcanzan, se mueven mas rapidamenteen una direccion paralela a la banda. Tambien se forman patrones espaciales complejos:regiones en forma auricular y regiones angulares complejas en ambos lados de la banda,donde la concentracion del activador es pequena. Estos patrones espacio-temporales sonperiodicos con un perıodo y un ancho de pulso que son un 288% y un 126%, respecti-vamente, mayores que los correspondientes a los de iluminacion localizada. Ademas, lailuminacion “en banda” no solo destruye la onda espiral, sino que tambien incrementael perıodo y la magnitud de los movimientos de tipo respiratorio que resultan de dichadestruccion.

Por ultimo, se han analizado los efectos que produce en la dinamica de la onda espi-ral la aplicacion de un campo de flujo advectivo y estacionario que satisface la condicionde no penetracion en los contornos del dominio. El estudio se ha hecho en funcion dela frecuencia espacial del flujo. Se ha mostrado que el campo advectivo no permite lapropagacion de ondas espirales; en su lugar, se observan frentes casi planos o curvosy patrones complejos. Estos frentes pueden avanzar, retroceder, y despues propagarsehacia una esquina del dominio, y cambiar de direccion al alcanzar una frontera cuandolas frecuencias espaciales en las tres direcciones de coordenadas son iguales a la unidad.Al principio estos frentes son muy delgados, pero su espesor aumenta y ademas dichosfrentes desarrollan una especie de protuberancia cuando alcanzan el centro del dominio.

Cuando la frecuencia espacial del campo de velocidad aumenta, es decir, cuandoaumenta el numero de ceros de una de las componentes de la velocidad, se observanpatrones espacio-temporales complejos y periodicos. Al principio estos patrones puedenser frentes delgados que se vuelven mas gruesos cuando alcanzan el centro del dominio,y entonces forman pliegues y se enrollan alrededor de una de las aristas del dominiodando lugar a patrones con forma conica. Estos patrones se mueven hacia las fronterasdel dominio y adquieren formas conicas antes de desaparecer del medio excitable.

Tambien se ha encontrado que al aumentar la frecuencia espacial del campo develocidades se produce un efecto en la historia temporal de las concentraciones delactivador y del inhibidor (se han tomado los datos en ocho localizaciones de monitori-zacion aleatorias). Este efecto consiste en que el perıodo de los picos de esta historiatemporal se reduce, mientras que las concentraciones maximas y mınimas y el ancho

Page 137: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

5.5. Conclusiones 115

de los picos son casi independientes de la frecuencia.

La aparicion de frentes casi planos en un medio excitable tridimensional sujeto acampos de flujo estacionarios se ha explicado en terminos de anisotropıa, deforma-cion, rotacion, compresibilidad y numero de puntos de estancamiento introducidos porel campo de velocidad. Los efectos de expansion aumentan la velocidad efectiva dereaccion si el flujo se expande, mientras que la disminuyen si la divergencia del campode velocidad es negativa. Por otro lado, la deformacion causada por el campo de veloci-dad provoca la extension del frente de reaccion. Ambos, la destruccion y la aparicion defrentes casi planos en un medio excitable tridimensional, son analogos a los que se hanencontrado en dos dimensiones, e indican que la rotacion y la deformacion del campojuegan un papel muy importante en la determinacion de la propagacion de ondas enmedios excitables.

Page 138: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

116 Capıtulo 5: Resultados numericos

Page 139: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

6Conclusiones yprincipales aportaciones

La resolucion, por medio de diferencias finitas, de sistemas lineales dispersos de ecua-ciones algebraicas procedentes de la discretizacion de ecuaciones diferenciales en mallasequiespaciadas ha sido objeto de numerosos estudios. Uno de los resultados de estos es-tudios ha sido el desarrollo de bibliotecas muy eficientes para su ejecucion en maquinassecuenciales y paralelas, como ScaLAPACK, SLATEC, y mas recientemente, Block-Solve, PETSc y Aztec. Gracias a ellas, ha sido posible que numerosos investigadoreshayan podido implementar computacionalmente sus modelos fısicos abstrayendose dela arquitectura subyacente sin obtener por ello una perdida significativa de rendimiento.Las eficiencias que se pueden alcanzar pueden llegar a ser muy elevadas, especialmenteen el caso de sistemas derivados de discretizaciones sobre mallas regulares. Sin embar-go, los estudios previos que se han realizado en este trabajo han puesto de manifiestoque en cada modelo fısico descrito por ecuaciones diferenciales se pueden encontrarpeculiaridades que impiden obtener el maximo rendimiento de estas bibliotecas.

Para el caso particular de la simulacion del modelo de Belousov–Zhabotinskii y suimplementacion con PETSc, se han detectado perdidas de eficiencia superiores al 20%respecto a una implementacion completamente manual, debido principalmente a lascaracterısticas especıficas de los patrones de dispersion de la matriz del sistema. Talesdeficiencias pueden ser subsanables con la introduccion en estas bibliotecas de nuevasclases y metodos para la integracion de las ecuaciones, que no solo se ajustarıan al men-cionado sistema sino tambien a una gran variedad de aplicaciones derivadas de sistemasfısicos descritos, no por una sino por varias ecuaciones diferenciales dependientes.

Aun ası nos encontramos frente a un viejo problema. El investigador que requieraun buen rendimiento para sus aplicaciones podra utilizar estas bibliotecas, pero sunivel de abstraccion debera descender a medida que necesite mejorar sus resultados,llegando incluso a la necesidad de programar casi de forma completamente manuallas rutinas mas costosas del programa. En este trabajo, esta necesidad ha aparecidoen varios niveles como, por ejemplo, en la generacion de las estructuras de datos, la

117

Page 140: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

118 Capıtulo 6: Conclusiones y principales aportaciones

implementacion del Gradiente Conjugado o la misma paralelizacion en un modelo dememoria compartida, basada en las bibliotecas OpenMP.

Durante este proceso se han detectado las principales causas de perdida de rendi-miento en el conjunto de operaciones requeridas para resolver el problema. Esto se harealizado sobre una seleccion de las arquitecturas paralelas mas recientes. Las principa-les conclusiones que se extraen apuntan, como era de esperar, al bajo aprovechamientode la localidad a nivel de procesador, y al desequilibrio de carga y latencia de lascomunicaciones entre procesadores.

En el capıtulo 4 se ha desarrollado una implementacion optima del algoritmo deintegracion, y, en particular, de la parte iterativa del PCG, que es la mas costosa enterminos computacionales. El algoritmo desarrollado aprovecha en un alto grado lalocalidad intrınseca del metodo, pero tambien reduce significativamente el coste delas comunicaciones entre procesadores por medio de tecnicas de ocultacion de laten-cia con computaciones. Hasta hace muy poco el solapamiento de comunicaciones concalculos no ha tenido una gran aceptacion entre los investigadores debido en parte aque los resultados obtenidos no merecıan el esfuerzo de programacion requerido [41].Sin embargo, la mayorıa de procesadores ya incorporan caracterısticas que permiten unaprovechamiento real de esta posibilidad (por ejemplo, las memorias cache no bloquean-tes), y se estan desarrollando compiladores y bibliotecas que permiten al programadorhacer un uso real y eficiente de esta tecnica.

Finalmente, se ha detectado que en general ninguno de los dos modelos de progra-macion paralela (memoria compartida o paso de mensajes) puede considerarse superior,ya que cada uno de ellos se puede adaptar mejor o peor a cada sistema paralelo con-creto. Pero sı se ha concluido que una implementacion hıbrida en una aproximacionjerarquica (nodos que se comunican mediante mensajes, formados a su vez por hebrascomputacionales que comparten memoria) disfruta de las ventajas de ambos modelosy disminuye sus inconvenientes, por lo que indudablemente ofrece, al menos, un rendi-miento casi identico al modelo optimo en cada caso, sin incrementar significativamentela complejidad de programacion.

En definitiva, a partir del analisis de las dependencias de datos del conjunto deoperaciones implicadas en el proceso de integracion, se ha desarrollado un modelo queextrae un maximo aprovechamiento de la jerarquıa de memoria en tres niveles: proce-sador, memoria compartida y red de interconexion. Un ordenamiento apropiado de lasoperaciones incrementa el rendimiento de la cache en el nivel de procesador y reduceel coste de las comunicaciones en el nivel de la red de interconexion. Finalmente, unnivel intermedio de memoria compartida permite mejorar el rendimiento en muchas ar-quitecturas y facilita la programacion de codigos distribuidos con carga computacionalequilibrada.

Es de esperar que esta solucion mixta tenga cada vez una mayor aplicacion enlas maquinas actuales y futuras, ya que precisamente se observa una tendencia clarahacia arquitecturas mixtas en lo que respecta a la relacion de los procesadores con lasmemorias fısicas, como un escalon mas en la jerarquıa de memoria. La herramientadesarrollada nos ha permitido realizar numerosas simulaciones y obtener de este modoalgunas aportaciones importantes que se han hecho respecto a la fısica del problema

Page 141: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

119

de la propagacion de ondas espirales en medios excitables tridimensionales.

En primer lugar, se ha mostrado que en ausencia de iluminacion y adveccion (con-diciones de contorno de Neumann homogeneas), se forma una onda espiral que giraen el sentido de las agujas del reloj independientemente de la coordenada z. La ondaes identica a la que se ha observado en estudios similares en 2D, lo que confirma laexactitud de los resultados tridimensionales presentados en este trabajo.

En segundo lugar, los resultados han probado que en presencia de iluminacion lo-calizada (condiciones de contorno homogeneas de Neumann en x e y y homogeneasde Dirichlet en z) se observa que:

Con iluminacion compacta, la onda espiral conserva su integridad, aunqueexhibe una muesca a lo largo de la periferia del cubo y es incapaz de penetraren el. Tambien se ha observado que la onda espiral se hace mas delgada porla parte que esta situada mas cerca de las fronteras z (superior e inferior) deldominio computacional. Este hecho y los fuertes gradientes del activador u en esasfronteras son debidos a las condiciones de Dirichlet impuestas en esas fronteras.

Con iluminacion“en banda”, la onda espiral se destruye y se crean dos regionesactivas, una a cada lado de la banda. Estas regiones se caracterizan por lasaltas concentraciones de activador que se mueven hacia los contornos paralelosde la banda y, cuando los alcanzan, se mueven mas rapidamente en una direccionparalela a la banda. Tambien se forman patrones espaciales complejos donde laconcentracion del activador es pequena. Estos patrones espacio–temporales sonperiodicos con un perıodo y un ancho de pulso que son un 288% y un 126%,respectivamente, mayores que los correspondientes a los de iluminacion localizada.Ademas, la iluminacion “en banda” no solo destruye la onda espiral, sino quetambien incrementa el perıodo y el ancho de los movimientos de tipo respiratorioque resultan de dicha destruccion.

Por ultimo, se ha mostrado que un campo advectivo y estacionario, que satisfacela condicion de no penetracion en los contornos del dominio, no permite la propagacionde las ondas espirales. En su lugar, se observan frentes casi planos o curvos y patronescomplejos. Estos frentes pueden avanzar, retroceder, y despues propagarse hacia unaesquina del dominio, y cambiar de direccion al alcanzar una frontera cuando las fre-cuencias espaciales en las tres direcciones de coordenadas son iguales a la unidad. Alprincipio, estos frentes son muy delgados, pero su espesor aumenta y ademas dichosfrentes desarrollan una especie de protuberancia cuando alcanzan el centro del dominio.

Cuando la frecuencia espacial del campo de velocidad aumenta, se observan patro-nes espacio–temporales complejos y periodicos. Al principio estos patrones pueden serfrentes delgados que se vuelven mas gruesos cuando alcanzan el centro del dominio, yentonces forman pliegues y se enrollan alrededor de una de las aristas del dominio dan-do lugar a patrones con forma conica que se mueven hacia las fronteras y desaparecendel dominio.

La aparicion de frentes planos o curvos en un medio excitable tridimensional esanaloga a la que se observa en uno de dos dimensiones donde se ha encontrado que la

Page 142: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

120 Capıtulo 6: Conclusiones y principales aportaciones

amplitud, la frecuencia, la deformacion, la compresibilidad, la velocidad angular y lascondiciones del contorno del campo de velocidad juegan un papel de suma importanciaen la determinacion de la ruptura o aniquilacion de las ondas espirales en mediosexcitables.

Una comparacion entre los resultados presentados aquı y los de dos dimensiones [80,82, 79], en los cuales se han utilizado campos de velocidad sinusoidales, con multiplespuntos de estancamiento, indica que tanto la deformacion como la rotacion del flujojuegan un papel primordial en la determinacion de la propagacion de ondas en mediosexcitables de dos y tres dimensiones. La rotacion por aumentar el flujo del activadore inhibidor, mientras que el frente se alinea con la direccion principal del tensor dedeformacion correspondiente a estiramientos positivos.

Finalmente, destacaremos que las simulaciones o resultados presentados en el ca-pıtulo 5 han requerido no menos de cuatro meses de CPU, aunque para llegar a laseleccion adecuada de parametros, se podrıa multiplicar el esfuerzo hasta superar unano de CPU. Unos requisitos que no hubieran sido aceptables sin un programa paraleloeficiente.

El trabajo desarrollado en esta tesis tiene una continuidad natural en el campo delos precondicionadores, especialmente en ciertos metodos con un buen comportamientoparalelo (como las tecnicas multigrid), ası como en otros precondicionadores basadosen la fısica del problema. Pero sobre todo, hemos desarrollado una herramienta de granpotencia que nos permitira en los proximos meses realizar numerosas simulaciones deun sistema fısico muy concreto pero con una gran trascendencia: las ondas espirales.

Page 143: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

AComputacion paralela

Para tener una solucion suficientemente fiable a problemas como el considerado en estetrabajo, de elevada complejidad, es necesaria una capacidad de calculo que supera laque pueden ofrecer los computadores secuenciales actuales. Se hace imprescindible portanto el uso de arquitecturas multiprocesadoras para obtener soluciones adecuadas entiempos razonables.

La computacion paralela (o paralelismo) tiene como objetivo principal la obtencionde los mismos resultados que la computacion secuencial, pero empleando menos tiempogracias al uso de multiples procesadores. El principal problema que se plantea con elparalelismo es el reparto del trabajo computacional, lo cual se puede afrontar de di-versas formas. Por ejemplo, a traves de una descomposicion funcional, repartiendo lasdiferentes operaciones que hay que realizar, o bien mediante la distribucion de los datossobre los que se realizan estas operaciones. Sea como fuere, distribuir la computacionde una forma eficiente es esencial para obtener un buen rendimiento de una maquinaparalela. Un programa paralelo eficiente reduce todo lo que puede el tiempo de eje-cucion de una aplicacion o, a cambio, incrementa su productividad significativamente;objetivo que solo se puede alcanzar si se reparte el trabajo de forma equitativa entrelos procesadores, se reduce el tiempo empleado para el intercambio de datos entre losprocesadores y, en general, se minimizan los costes que introduce el propio proceso deparalelizacion.

Desde la aparicion en los anos sesenta de las primeras arquitecturas multiprocesa-doras, se ha producido un vertiginoso crecimiento de los computadores paralelos, y nosolo en el numero de maquinas, sino tambien en variedad y especialmente en potenciade calculo.

No obstante, el desarrollo del software paralelo no ha acompanado consecuentemen-te los espectaculares avances del hardware. Desde el punto de vista del programador,aparece el concepto de computacion distribuida, en la que este considera al computador

121

Page 144: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

122 Apendice A: Computacion paralela

como un conjunto de procesadores conectados a traves de una red de interconexion,que se usan conjuntamente para resolver un problema. El coste de desarrollo de soft-ware paralelo es muy alto, ya que el programador, en el diseno de sus programas, debeconsiderar aspectos propios de la arquitectura de la maquina y analizar el algoritmoque trata de paralelizar de forma especial. Para explotar el paralelismo de un programasecuencial se necesita conocer en profundidad su comportamiento, cuestion que en oca-siones puede no ser facil. Ademas, una buena paralelizacion a menudo requiere cambiarel comportamiento del programa secuencial ya sea reprogramando partes del algorit-mo, o modificando las estructuras de datos involucradas. Pero fundamentalmente, elprogramador debe cambiar su forma de pensar. Recordemos que un programa (pordefinicion) es una secuencia ordenada de operaciones necesarias para llevar a cabo unproyecto y, al fin y al cabo, el paralelismo elimina tal secuencialidad e introduce ciertodesorden.

Para explotar completamente la potencia de las maquinas paralelas son necesarioslenguajes que contemplen los paradigmas de programacion que surgen en el contextode la computacion distribuida. Y aunque existen bibliotecas paralelas que facilitanla programacion de los computadores paralelos (MPI, PVM, OpenMP, etc.), al final,es el programador quien lleva a cabo casi ıntegramente la paralelizacion. Tambien sehan desarrollado compiladores que generan codigo paralelo a partir de uno secuencialexistente, lo que, desde luego, no deja de ser un sueno para cualquier programador. Pero,sin embargo, los resultados no son muy satisfactorios. A medida que se automatiza laparalelizacion de un programa, se pierde eficiencia. En la actualidad se puede decir quelos programas paralelos mas eficientes se generan de forma no automatica.

A continuacion, la seccion A.1 realiza un breve recorrido sobre los conceptos masimportantes de las arquitecturas paralelas, la seccion A.2 analiza algunos aspectos de suprogramacion, y finalmente, en la seccion A.3 se definen algunas medidas que analizanel rendimiento, eficiencia y comportamiento de un algoritmo paralelo.

A.1. Arquitecturas paralelas

Una gran variedad de clasificaciones de arquitecturas paralelas son referidas en la bi-bliografıa, atendiendo a muy diversos criterios. Quizas por ser de las primeras, una delas clasificaciones mas extendidas es la debida a Flynn [38, 45]. Esta clasificacion se basaen la identificacion del flujo de control y flujo de datos entre las unidades de memoriay los elementos de procesamiento (PE). De esta forma Flynn establece la taxonomıasiguiente para las maquinas paralelas:

SISD (Single Instruction Single Data). En este caso, un unico conjunto de ins-trucciones actua sobre un unico conjunto de datos. A esta definicion correspondenlas maquinas secuenciales.

MISD (Multiple Instruction Single Data). En este tipo de arquitecturas se tieneuna unica memoria a la que tienen acceso todos los PE, pero cada PE procesa

Page 145: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.1. Arquitecturas paralelas 123

UC PE M

Figura A.1: Estructura de un computador SISD.

estos datos con un programa propio. En la actualidad, lo mas parecido a este tipode arquitecturas que podemos encontrar son los procesadores segmentados.

UC

PE

UC

PE

UC

PE

M

Figura A.2: Estructura de un computador MISD.

SIMD (Single Instruction Multiple Data). En este caso existe un unico conjuntode instrucciones que actuan sobre los datos propios de cada PE. Los PE estansincronizados y todos ejecutan la misma instruccion en cada instante. Estas ma-quinas hacen uso de instrucciones condicionales que permiten a los PE ejecutar,o no, una instruccion particular atendiendo a las caracterısticas de sus propiosdatos. Cuando estan presentes puntos de ruptura de secuencia del programa, losPE que no efectuan el salto deben permanecer aislados del resto del proceso. Estehecho puede provocar una perdida de eficiencia en los casos en los que existandatos irregulares, a menos que el codigo del programa incluya muchos puntos deruptura. En esta categorıa se incluyen los procesadores vectoriales y matriciales,de amplio uso en las decadas de los setenta y ochenta.

MIMD (Multiple Instruction Multiple Data).

Para este tipo de arquitecturas cada PE tiene su propio conjunto de instruccionesy sus propios datos, de forma que cada PE puede actuar de forma asıncrona.No obstante, es frecuente que se escriba un unico programa para todos los PE,empleando el paradigma conocido como SPMD (Single Program Multiple Data).Una arquitectura de este tipo se puede construir con varias maquinas de tipo SISDcomunicadas mediante una red de interconexion. La mayorıa de las maquinasparalelas actualmente disponibles en el mercado poseen una arquitectura de tipoMIMD.

Page 146: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

124 Apendice A: Computacion paralela

PE

M

PE

M

PE

M

UC

Figura A.3: Estructura de un computador SIMD.

Aunque esta clasificacion es la mas referenciada, posee limitaciones evidentes, yaque existen muchos ejemplos de arquitecturas que incluyen aspectos propios de variasde las categorıas de Flynn. Ademas, existen caracterısticas importantes en el diseno delas arquitecturas que no distingue esta taxonomıa, como, por ejemplo:

La relacion de los procesadores con la memoria principal, ya que esta puede serprivada (distribuida), global (compartida) o una combinacion de estas (compar-tida/distribuida).

La relacion con otros niveles de la jerarquıa de memoria (caches o sistemas dememoria virtual).

El medio de interconexion entre procesadores (a traves de conmutadores en barrascruzadas, bus multiple, bus de tiempo compartido, etc.)

El grado de paralelismo (fuertemente o debilmente acoplados), etc.

Se ha mencionado que uno de los aspectos mas importantes de la arquitectura esla relacion entre procesadores y memoria. Atendiendo a este criterio, se puede ahondarmas en la clasificacion de Flynn, estableciendo la siguiente distincion en las maquinasMIMD:

1. Memoria compartida

Este tipo de maquinas estan constituidas por un conjunto de PE que compartenfısicamente una memoria, y por tanto acceden a los datos a traves de un unicoespacio de direcciones comun a todos ellos. Esto facilita la programacion de altonivel, ya que no es necesario especificar procesos de comunicacion adicionalesentre PE. Todos los procesadores encuentran las variables en esta memoria unica,y por tanto, tardan lo mismo en acceder a cualquier variable, por lo que a menudose conocen como arquitecturas UMA (de acceso a memoria uniforme, o UniformMemory Access)

Page 147: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.1. Arquitecturas paralelas 125

Red de Interconexion

UC

PE

UC

PE

UC

PE

M

Figura A.4: Estructura de un computador MIMD en memoria compartida.

No obstante, esta arquitectura presenta en la actualidad algunos inconvenientes.La mayorıa de estas maquinas se basan en procesadores de tipo RISC con me-morias cache locales, debiendo resolver el denominado problema de coherenciade cache. Cuando un dato se actualiza en una memoria cache local, se debe es-tablecer algun mecanismo para que el resto de PE accedan al dato actualizado.Existen varias tecnicas que resuelven esto, prefiriendo unas u otras en funcion deltipo de red de interconexion. Pero esta circunstancia disminuye la eficacia de lagestion de memoria del sistema.

Otro inconveniente que presentan este tipo de arquitecturas es su falta de es-calabilidad. A medida que aumenta el numero de PE, la red de interconexionno puede absorber el elevado numero de comunicaciones que se generan por laspeticiones a memoria desde los PE.

No obstante, existen diversos multiprocesadores basados en esta arquitecturacomo la familia de los KSR de Kendall Square, los Y-MP y C90 de Cray, y losPower Challenge de Silicon Graphics.

2. Memoria distribuida

En las maquinas de memoria distribuida cada modulo de memoria fısica es locala un PE especıfico, formando un “nodo” computacional. En estos sistemas noaparece el problema de la coherencia de cache, pero cuando un PE necesita undato situado en otra memoria local, se debe establecer un proceso de comuni-cacion a traves de la red de interconexion. La mayorıa de los sistemas de estetipo requieren que el programador controle de forma explıcita estos procesos decomunicacion interprocesador.

En general, se suele decir que con este tipo de arquitecturas se obtienen mejoresrendimientos, aunque estos dependen estrechamente de la distribucion de losdatos en las memorias locales. Las decisiones sobre el mecanismo de distribucion

Page 148: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

126 Apendice A: Computacion paralela

Red de Interconexion

UC

PE M

UC

PE M

UC

PE M

Figura A.5: Estructura de un computador MIMD en memoria distribuida.

de los datos recaen tambien sobre el programador. Por lo tanto, la implementacionde algoritmos sobre este tipo de maquinas es considerada mas compleja que sobrelas maquinas de memoria compartida, aunque en general, es mas eficiente.

Este tipo de arquitecturas se conocen como multicomputadores (a diferencia delresto, considerados simplemente como multiprocesadores). Ejemplos clasicos demulticomputadores son la Connection Machine de Thinking Machines, dotadade una red de procesadores Sparc, los supercomputadores T3D y T3E de Cray,ambos con procesadores Alpha, y el SP-2 de IBM. Tambien se consideran multi-computadores los clusters de estaciones de trabajo.

3. Memoria compartida/distribuida

Este tipo de arquitectura trata de combinar las ventajas de los dos modelos an-teriores, es decir, la escalabilidad del modelo distribuido y la facilidad de usodel modelo compartido. La memoria esta fısicamente distribuida entre los PE,pero un nivel hardware intermedio de encaminamiento de los datos se encar-ga de establecer las comunicaciones de forma automatica y casi transparente alusuario. Se distinguen usualmente dos clases de maquinas de memoria comparti-da/distribuida:

Arquitecturas NUMA (Non-Uniform Memory Access). Para estas maquinasel acceso a un modulo de memoria es directo desde su procesador, mientrasque este acceso debe establecerse a traves de la red de interconexion desdecualquier otro procesador. El tiempo de acceso a las variables es diferente,segun se encuentren estas en una memoria local o remota.

Arquitecturas COMA (Cache Only Memory Architecture). En estas maqui-nas, las memorias locales son exclusivamente cache, no existe jerarquıa dememoria local en cada PE. Estas arquitecturas pueden ser consideradas co-mo un caso particular de las NUMA.

No obstante, podemos incorporar hoy en dıa un tercer tipo, ya que ciertas ar-quitecturas de memoria compartida/distribuida tienen caracterısticas UMA en loque respecta al tiempo de acceso.

La forma de programar estas maquinas es similar a la de un computador de me-moria compartida, ya que a nivel de usuario existe un solo espacio de direcciones.No obstante, para estas maquinas, el programador puede distinguir las denomi-nadas variables locales y variables globales. Las primeras solo las puede usar el

Page 149: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.2. Modelos de programacion paralela 127

Red de Interconexion

UC

PE M

UC

PE M

UC

PE M

Figura A.6: Estructura de un computador MIMD en memoria compartida/distribuida.

codigo de un procesador mientras que las segundas pueden ser accedidas por to-dos los PE. Esto permite distribuir los datos en las memorias locales de formaque se optimice la localidad del acceso a los datos, ya que este aspecto es clavepara el buen rendimiento de este tipo de maquinas.

Las maquinas con memoria compartida/distribuida tambien se denominan ma-quinas de memoria compartida virtual. Presentan una mejor escalabilidad enrelacion con el modelo compartido puro, pero no tan buena como la del mode-lo distribuido, debido a las limitaciones del hardware de encaminamiento pararesolver eficientemente un alto volumen de peticiones no locales.

Ejemplos de maquinas de este tipo son el Exemplar, fabricado por Convex, elDASH, desarrollado en la Universidad de Stanford, las arquitecturas Sun HPC ySunfire, y el Origin2000, lanzado al mercado por Silicon Graphics con procesa-dores MIPS R10000 y R12000.

A.2. Modelos de programacion paralela

Los paradigmas propios de la programacion paralela se encuentran estrechamente liga-dos a las caracterısticas de las diversas arquitecturas de las maquinas paralelas. Ası, sise trata de programar una maquina paralela de memoria compartida, la programacionse ajustara a un modelo de memoria global, caracterizado principalmente por tener dis-ponible una memoria global que puede ser leıda o escrita desde cualquier proceso queforme parte de la computacion. Si se pretende programar una maquina de memoriadistribuida, la programacion debe responder al modelo de paso de mensajes, que se ca-racteriza por el acceso local de cada proceso al bloque de memoria asociado al mismo yla imposibilidad por parte de otro proceso de acceder a ese bloque de memoria, a menosque utilice funciones especiales para ello (funciones para el envıo o recepcion de datos).En este modelo no existe un unico espacio de memoria direccionable. No obstante, lasmaquinas de memoria compartida/distribuida son capaces de aceptar ambos modelosde programacion paralela; en estos casos, es responsabilidad del programador decidirque modelo se ajusta mejor a su aplicacion.

A continuacion se van a analizar las caracterısticas de algunos de los modelos deprogramacion paralela.

Page 150: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

128 Apendice A: Computacion paralela

A.2.1. Modelo de programacion de paso de mensajes

Existen dos cuestiones que el programador de una maquina paralela debe decidir: definirlos procesos que asigna a los PE y especificar la forma en la que esos procesos sesincronizan e intercambian datos. Uno de los puntos centrales en este modelo es que losprocesos se comunican y sincronizan mediante envıos y recepciones de mensajes entreelementos de proceso.

Las operaciones de paso de mensajes son llamadas a una interfaz responsable de ges-tionar la comunicacion fısica entre los PE que intervienen en dicha operacion. Cuandodos procesos intercambian un mensaje, algunos datos de la memoria local del procesa-dor emisor son copiados en la memoria local del procesador receptor. El contenido delos mensajes que intervienen en este tipo de comunicacion se divide en dos partes. Unaparte alberga los datos propiamente dichos, y la otra parte contiene la informacion queutiliza el sistema de comunicacion para copiar de una memoria local en otra. En estainformacion se especifica lo siguiente:

Una identificacion del mensaje.

Que PE es el emisor del mensaje.

Donde esta el dato en la memoria local del emisor.

Que tipo de datos se envıan y cuantos datos hay.

Que PE es el receptor del mensaje.

En que posiciones de la memoria local del receptor se debe copiar el mensaje.

Cuantos datos puede recibir el receptor.

La forma mas simple de transmision de mensajes es la realizada a traves de comu-nicacion punto a punto, en la que un mensaje es enviado por un procesador emisory recogido por un procesador receptor. La comunicacion se descompone en dos fases:emision y recepcion. La fase de emision puede ser:

Sıncrona. La emision no se completa hasta que el receptor no emite una senalque indique que el mensaje esta siendo recibido.

Asıncrona. La emision se completa tan pronto como el mensaje correspondienteha sido cedido al sistema de comunicaciones. En los sistemas que admiten estetipo de comunicaciones, los nodos emisores pueden solapar, en parte, los procesosde comunicacion con otros procesos; de forma que la penalizacion del tiempode comunicaciones en el tiempo total de ejecucion puede reducirse en algunasaplicaciones.

Existen tambien procesos de comunicacion en los que se involucran mas de unapareja de PE. Todas las operaciones de comunicacion colectivas se pueden construir apartir de comunicaciones punto a punto, pero estas no son portables eficientemente a

Page 151: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.2. Modelos de programacion paralela 129

diferentes topologıas de la red de interconexion. Las interfaces de comunicaciones masextendidas (MPI, PVM, ...) incluyen rutinas que implementan este tipo de comunica-ciones, de forma que el programador no debe tener en cuenta la topologıa de la red deinterconexion.

Las comunicaciones colectivas mas utilizadas son las siguientes:

Difusion. Es un proceso de comunicacion de uno a muchos PE. Un procesadorenvıa el mismo mensaje a varios PE a traves de una unica operacion.

Coleccion. Un procesador recoge datos procedentes de varios PE.

Reduccion. Recoge datos de varios PE, como en el caso anterior, pero ademas, losreduce (mediante una operacion conmutativa, como la suma) a un unico elementoque puede, o no, ser enviado a todos los PE participantes en el proceso.

Barrera. Esta operacion establece un punto de sincronizacion en un conjunto deprocesadores. No existen intercambio de datos, pero los procesadores se bloqueanhasta que todos hayan llamado a la rutina de barrera.

El paradigma de paso de mensajes es bastante utilizado debido a la gran variedad deplataformas que soportan este modelo de programacion. Los programas escritos con estemodelo pueden ser ejecutados en arquitecturas de memoria compartida, distribuida,redes de estaciones de trabajo o incluso monoprocesadores. No obstante, a pesar de laportabilidad del modelo, se exige al programador habilidad para distribuir los datosy establecer los puntos de comunicacion de forma que la penalizacion en el tiempo deejecucion total debida a los procesos de comunicacion sea mınima.

A.2.2. Modelo de programacion de memoria compartida

En este modelo las tareas comparten un espacio de direcciones comun, sobre el quepueden leer y escribir de forma asıncrona. Para llevar a cabo el control del acceso amemoria, se establecen mecanismos basados en semaforos y cerrojos, de forma que segarantice la coherencia en la jerarquıa de memoria.

Desde el punto de vista del programador, este modelo presenta la ventaja de que nonecesita especificar explıcitamente en el codigo la comunicacion de datos de emisores areceptores. Con este modelo, el desarrollo de programas paralelos puede ser mas simpleque el modelo de paso de mensajes, aunque la sincronizacion eficiente del programapuede convertirse en un problema de gran complejidad.

A.2.3. Modelo de paralelismo de datos

Otro modelo de programacion paralela es el paralelismo de datos. Esta denominacionhace referencia a la explotacion de la concurrencia derivada de la aplicacion de la mis-ma operacion a multiples elementos de una estructura de datos previamente distribuida

Page 152: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

130 Apendice A: Computacion paralela

entre procesadores. Un programa basado en este modelo esta constituido por una se-cuencia de este tipo de operaciones. Ası, los compiladores requieren que el programadorsuministre informacion sobre la forma de distribuir los datos en los PE, o en otras pa-labras, como los datos establecen la particion de las tareas. Un ejemplo de lenguaje deparalelismo de datos es el denominado High Performance Fortran [51].

A.3. Medidas para la evaluacion de los algoritmos

paralelos

En la programacion paralela, el objetivo en el diseno de un algoritmo no es optimizaruna unica metrica como la aceleracion. Un buen algoritmo debe optimizar un conjuntode funciones tales como el tiempo de ejecucion, las necesidades de memoria, los costesde implementacion, los costes de mantenimiento, la productividad, etc. En esta seccionse definiran algunas medidas que analizan el rendimiento, eficiencia y comportamientode un algoritmo paralelo.

Las medidas mas comunes del rendimiento de las implementaciones paralelas sonla aceleracion (speed-up) y la eficiencia.

La aceleracion alcanzada por un algoritmo paralelo ejecutado en P procesadoresse define como el cociente entre el tiempo de ejecucion del algoritmo paralelo enun unico procesador y el tiempo de ejecucion del algoritmo paralelo ejecutado enP procesadores. Esta aceleracion paralela S(n, P ) se puede expresar como:

S(n, P ) =T (n, 1)

T (n, P )

donde n indica el tamano del problema, y T (n, 1) y T (n, P ) indican los tiemposde ejecucion de los algoritmos ejecutados en 1 y P procesadores, respectivamente.

La eficiencia E(n, P ) se define como la aceleracion dividida por el numero deprocesadores P , y se puede expresar como:

E(n, P ) =S(n, P )

P=

T (n, 1)

P · T (n, P )

Estas ecuaciones no dan suficiente informacion sobre la calidad del algoritmo para-lelo cuando este no es una simple modificacion del algoritmo secuencial. Se debe anadiralgun dato que indique la eficiencia numerica del algoritmo paralelo. Esta se define co-mo el cociente: Tmejor(n)/T (n, 1), donde Tmejor(n) es el tiempo que un procesador dela maquina paralela necesita para ejecutar el algoritmo secuencial mas rapido conocido.Teniendo en cuenta esto, se podrıa definir una aceleracion total y una eficienciatotal, respectivamente, como:

S(n, P ) =Tmejor(n)

T (n, P )E(n, P ) =

S(n, P )

P=

Tmejor(n)

P · T (n, P )

Page 153: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.3. Medidas para la evaluacion de los algoritmos paralelos 131

Sin embargo, las consideraciones practicas limitan la utilidad de estas ultimas defini-ciones. En primer lugar, a menudo es muy difıcil determinar que algoritmo secuenciales el mejor; esto puede depender del tamano del problema n, del hardware particularutilizado, de los aspectos de la implementacion, etc. Mas aun, la nocion de “mejor al-goritmo” puede cambiar en el tiempo, ya que pueden aparecer o desarrollarse mejoresversiones. Tambien ocurre que, a veces, no es posible una buena implementacion de unalgoritmo. En la practica uno puede definir la aceleracion total utilizando el tiempo deejecucion de un algoritmo secuencial bueno en lugar de Tmejor(n).

Si se parte de la hipotesis de que una maquina con P procesadores no puede ejecutarprogramas mas de P veces mas rapido que una maquina con un unico procesador, setiene obviamente que S(n, P ) ≤ P y que E(n, P ) ≤ 1.

En algunas ocasiones es posible alcanzar una aceleracion superior al numero deprocesadores. Las causas que pueden producir superaceleracion o speed–up su-perlineal se pueden agrupar en tres categorıas:

1. Aumento de recursos. En el traslado de un programa desde una maquinasecuencial a una paralela no solo se incrementa la potencia de CPU. Frecuen-temente, otros recursos, como memoria, cache, etc., se incrementan linealmentecon el numero de procesadores. Ası, por ejemplo, las maquinas paralelas suelentrabajar con un conjunto mas reducido de datos que el sistema secuencial, y si nohay muchos requerimientos de datos remotos, la localidad espacial es muy alta,por lo que la jerarquıa de memoria da mejores rendimientos en los procesadoresde un computador paralelo que los que ofrece el uso de un solo procesador. Unejemplo de esto es el caso de un algoritmo de graficos que requiere inserciones deelementos dentro de una lista lineal. En el caso paralelo, las listas lineales son maspequenas y se puede alcanzar superaceleraciones a pesar de los pasos adicionalesque se necesitan para juntar las listas en una sola al final del algoritmo.

2. Algoritmos ineficientes. Si se usan algoritmos secuenciales ineficientes es fre-cuente alcanzar superaceleraciones en las versiones paralelas.

3. Busquedas aleatorias. Muchas tecnicas de optimizacion necesitan buscar unasolucion, posiblemente en un gran espacio de busqueda. Puede darse el caso deque la version paralela encuentre la solucion mas rapidamente debido a que elespacio puede buscarse de forma o en un orden diferente a como se hace en laversion secuencial, y ese cambio puede resultar, eventualmente, en una mejoreficiencia.

Por otro lado, los incrementos de coste que pueden causar una desviacion de laaceleracion lineal son:

1. Fraccion secuencial. Como establece la Ley de Amdahl, la aceleracion que puedealcanzar un computador paralelo esta limitada significativamente por la existenciade una pequena fraccion del codigo inherentemente secuencial, que no puedeparalelizarse. En concreto, La Ley de Amdahl dice:

Page 154: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

132 Apendice A: Computacion paralela

Sea α la fraccion de las operaciones que en una computacion deben derealizarse secuencialmente, siendo 0 ≤ α ≤ 1. La aceleracion maximaalcanzable por un computador paralelo con P procesadores esta entonceslimitada como sigue:

S(n, P ) ≤ 1

α + (1− α)/P≤ 1

α

2. Algoritmos no optimos y aumento de la carga. A menudo puede resul-tar muy difıcil o imposible paralelizar el mejor algoritmo secuencial. En tal casoel algoritmo paralelo puede tener mas cantidad de operaciones que el secuen-cial. Adicionalmente, para evitar la sobrecarga de comunicaciones, uno desearıaduplicar algunas operaciones en diferentes procesadores en lugar de tener un pro-cesador haciendo las operaciones y distribuyendo despues el resultado al resto.

3. Sobrecarga debido al software. La paralelizacion, en sı misma, a menudoda lugar a un incremento del coste de computacion. Algunos ejemplos son: lassobrecargas asociadas con la indexacion, llamadas a procedimientos, adicion decondiciones, etc. Otra causa es que, al paralelizar, los bucles suelen ser mas cortosdebido al posible cambio de tamano de los vectores. Esto reduce la potencialganancia que se puede alcanzar mediante diversas tecnicas de vectorizacion oplanificacion.

4. Desequilibrio de la carga. El tiempo de ejecucion de un algoritmo paralelo sedetermina por el tiempo de ejecucion del procesador que tiene mayor cantidadde trabajo. Cuando la carga computacional no esta correctamente distribuida,aparece el desequilibrio de la carga que puede dar lugar a que algun procesadoreste en estado de espera hasta que el resto de procesadores termine su calculoparticular.

5. Sobrecarga de comunicacion y sincronizacion. Cualquier tiempo utilizadoen comunicaciones y en sincronizacion.

Escalabilidad

Se conoce como escalabilidad de un sistema el comportamiento de dicho sistema para-lelo en funcion del numero de procesadores. Los estudios de escalabilidad determinan elgrado de acoplamiento entre una arquitectura y un algoritmo. Para diferentes sistemas(parejas arquitectura–algoritmo), el analisis puede llevar a distintas conclusiones. Unamaquina puede ser muy eficiente para un algoritmo pero mala para otro, y viceversa.

Por lo tanto, para que una arquitectura se considere como buena, debe de sereficiente para una gran cantidad de clases de algoritmos que se implementen en dichaarquitectura. En el caso ideal, el comportamiento del computador deberıa ser escalablelinealmente con el numero creciente de procesadores utilizados en la implementacionde algoritmos.

La escalabilidad de un sistema Φ(n, P ) para un algoritmo dado, se podrıa definircomo el cociente entre la aceleracion en la maquina real y la aceleracion ideal SI(n, P )

Page 155: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

A.3. Medidas para la evaluacion de los algoritmos paralelos 133

en la que no se tienen en cuenta los tiempos de comunicaciones ni demas sobrecargas[45], es decir,

Φ(n, P ) =S(n, P )

SI(n, P )=

TI(n, P )

T (n, P )

donde TI(n, P ) es el tiempo de ejecucion paralelo (ideal) en el que se ignoran lassobrecargas de comunicaciones.

Intuitivamente, cuanto mayor es la escalabilidad, mejor es el comportamiento que laarquitectura dada puede alcanzar en la ejecucion del algoritmo dado. En el caso ideal,SI(n, P ) = P , la definicion de escalabilidad se reduce a la definicion de la eficiencia.

Isoeficiencia

Como ya se ha visto anteriormente, dada una arquitectura paralela y un tamano deproblema determinado, la aceleracion de un algoritmo paralelo no sigue creciendo inde-finidamente al aumentar el numero de procesadores, sino que tiende a alcanzar ciertovalor lımite. Para un problema de tamano fijo, la aceleracion alcanza este maximo bienporque las sobrecargas de comunicacion crecen al aumentar el numero de procesadores,o bien porque el numero de procesadores supera el grado de concurrencia inherente alalgoritmo. Pero hasta ahora se ha considerado que la escalabilidad de un sistema semide por la aceleracion alcanzada en la resolucion de un problema de tamano fijo. Sinembargo, en muchos casos, podemos encontrar un tamano de problema W (p) para elcual las aceleraciones alcanzadas se mantengan en valores proximos a P . Esta nuevaperspectiva nos induce a utilizar una nueva medida de la eficiencia: la isoeficiencia[45, 58], que relaciona el tamano del problema con el numero de procesadores requeridospara mantener una eficiencia constante.

Page 156: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

134 Apendice A: Computacion paralela

Page 157: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

B Tecnicas de visualizacion

La visualizacion se esta convirtiendo en un aspecto cada vez mas importante en elcampo de la computacion de altas prestaciones. Ello es debido, fundamentalmente, aque las simulaciones de los computadores producen grandes cantidades de datos que hande analizarse. Es extremadamente difıcil leer y comprender un archivo con unos cuantosMbytes de longitud. A medida que el volumen de datos aumenta, la representacionvisual de los mismos se convierte en el metodo mas practico para entender su contenido.

La visualizacion ha pasado de ser una simple utilidad para representar resultadosa convertirse en una herramienta muy valiosa para la comprension de los mismos. Unode los resultados de este cambio ha sido el incremento en el numero de modelos quedescriben metodos para integrar la visualizacion dentro del analisis de resultados.

Hasta hace poco tiempo solo la mayorıa de los metodos de visualizacion permitıanrepresentar conjuntos de datos de dos dimensiones. Sin embargo, uno de los tiposmas comunes de datos producidos por el modelado de sistemas fısicos es el volumentridimensional, ya sea por la utilizacion de modelos en 3D, o bien por la visualizaciondel avance temporal de modelos en 2D.

Existen diferentes formas de visualizar un volumen de datos como los que se hanobtenido en este trabajo. Por ejemplo, se puede visualizar un campo de velocidadutilizando pequenas flechas que indican la direccion y la magnitud del campo en cadapunto (muy utiles para la simulacion de dinamica de fluidos), o se pueden mostrar laslıneas integrales del campo, o bien se pueden visualizar isosuperficies de una de lascomponentes del campo. Tambien se pueden mostrar volumenes con opacidad variable,o renderizado de volumenes (volume rendering).

Las tecnicas que se han elegido en este trabajo son las isosuperficies y los volumenescon opacidad variables. Para las primeras se ha utilizado la herramienta MATLAB[131] y para los segundos las herramientas Ogle [129] y AVS (Application VisualizationSystem) [130]. En ambas tecnicas se necesita un valor de referencia. En la isosuperficiese muestra la superficie formada por el lugar geometrico de los puntos cuyo valor es el

135

Page 158: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

136 Apendice B: Tecnicas de visualizacion

de referencia (o muy proximo a el). En la representacion de volumenes con opacidadvariable, a las regiones proximas a dichos puntos se les aplica un mayor grado deopacidad (o menor transparencia). El grado de opacidad de una region depende, portanto, del valor de la variable. Un codigo de colores ayuda, en este caso, a comprenderlos resultados.

B.1. Isosuperficies con MATLAB

Una isosuperficie es una superficie en la que los datos tienen un valor constante.

Para obtener estas isosuperficies se ha utilizado una rutina (surfcv) desarrolladapor Ruslan L. Davidchack [133] que representa una superficie de un valor constantepara cualquier funcion de tres variables: f(x,y,z)= constante. La superficie se calculapor interpolacion lineal de los valores de f y se dibuja mediante parches triangulares,aprovechando la funcion fill3 de MATLAB. En esta rutina, el color de cada parcheviene determinado por su orientacion respecto a una direccion especificada.

En este trabajo se ha modificado ligeramente la parte de la rutina surfcv que asignael color a la isosuperficie, para indicar con un codigo de colores el valor de referencia(la constante) empleado.

En las figuras que se presentan en el capıtulo 5 se observan dos tipos de isosuperfi-cies.

En el primer tipo se representa el mismo valor constante de la variable en todos lospasos de tiempo. Por ejemplo, en la figura 5.1 se muestra la isosuperficie correspondientea u = 0,72. Como en todas las imagenes de la figura se representan las isosuperficiescorrespondientes al mismo valor, todas presentan el mismo tono de gris.

En el segundo tipo, se obtiene el valor maximo de la variable y se calcula el 90% deese valor en cada paso de tiempo. Se representa la isosuperficie correspondiente al valorcalculado. Por ejemplo, en la figura 5.10 se presentan las isosuperficies de u= 0,90·umax.Se observa que en cada una de las nueve imagenes, la isosuperficie presenta un colordiferente; esto indica que representan valores diferentes. Para obtener los diferentescolores se ha modificado la funcion surfcv para que utilice un codigo de colores queayude a saber si el valor representado es pequeno o grande. En concreto se ha elegidoel mapa de colores denominado fire (en MATLAB). Este mapa de colores asigna elcolor negro a los valores mas pequenos, despues el rojo, el naranja, el amarillo y, porultimo, el blanco para los mas grandes.

B.2. Opacidad variable con Ogle y AVS

Un renderizado de opacidad (tambien llamado renderizado de volumenes, o volumerendering) visualiza un volumen de datos escalares asociando a cada valor del datoun color y una opacidad. De esta forma, se visualizan algunos valores de datos comotransparentes y otros practicamente opacos, y ası las regiones transparentes no eclipsan,

Page 159: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

B.2. Opacidad variable con Ogle y AVS 137

ni confunden, a las regiones opacas. Ademas el usuario puede decidir los valores quequiere mostrar y los que quiere hacer menos visibles. A menudo las representaciones deopacidad parecen colecciones de nubes llenas de color.

Estas representaciones comparten algunas caracterısticas con las isosuperficies. Am-bas reproducen un volumen tridimensional de datos escalares. Si se utiliza como ana-logıa una grafica en dos dimensiones (plot), las isosuperficies son como las lıneas delcontorno y las representaciones de opacidad son como las imagenes pseudo-coloreadas.El problema con esta analogıa es que las graficas en dos dimensiones muestran varioscontornos, pero la representacion de isosuperficies solo permite ver una superficie paraque no se oculten unas detras de las otras. Las representaciones de opacidad evitaneste problema porque efectivamente muestran multiples valores de datos. En lugar dehacer una simple eleccion de mostrar o no mostrar unos valores de datos, el usuarioasigna, creando un mapa de opacidad, una transparencia variable en funcion de latranscendencia de los valores de los datos.

Para obtener este tipo de representaciones se han utilizado las herramientas AVS yOgle.

En el desarrollo de AVS se plantearon como objetivo permitir a los investigadoresque lo deseen aplicar la potencia de los modernos computadores a problemas de vi-sualizacion de una forma sencilla, sin la necesidad de pasar mucho tiempo escribiendoprogramas especıficos para ello.

Para ello, AVS proporciona una gran cantidad de modulos que se pueden ir juntandoformando una red. Estos modulos se pueden editar facilmente, de forma que es unaherramienta muy sencilla de manejar. Las funciones de los modulos son: filtrado de losdatos para que se puedan utilizar, organizacion de los datos en primitivas geometricas,y representacion de las primitivas en figuras o imagenes.

AVS permite visualizar los volumenes de datos de todas las formas posibles, utilizan-do modulos diferentes para cada caso. Por ejemplo, para el renderizado de volumenesque se ha utilizado en esta tesis, se necesita un modulo trazador (tracer), recibiendoeste nombre porque para su obtencion se utilizan tecnicas de trazado de rayos (ray tra-cing). En la figura B.1 se muestra el esquema generico de los modulos que se necesitany como se conectan entre ellos.

El esquema completo para nuestro caso particular se muestra en la figura B.2. Comose puede observar, tiene una gran simplicidad.

Para hacer todas las elecciones de codigo de colores, valores transparentes, valoresno transparentes, etc., el usuario tan solo tiene que editar los modulos adecuados yseleccionar las opciones que desee.

En este trabajo se ha utilizado esta herramienta para todos los trabajos prelimi-nares. Para obtener los resultados definitivos que se presentan en el capıtulo 5 se hautilizado Ogle.

Ogle es un visualizador de datos cientıficos capaz de renderizar, en poco tiempo,conjuntos de datos extremadamente grandes, especialmente si se trata de mostrar vo-lumenes con opacidad variable. Su velocidad se basa en que los datos que emplea para

Page 160: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

138 Apendice B: Tecnicas de visualizacion

Figura B.1: Esquema generico en AVS para un renderizado de volumenes.

Figura B.2: Esquema completo de AVS para visualizacion de ondas espirales.

Page 161: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

B.2. Opacidad variable con Ogle y AVS 139

la visualizacion ocupan un solo byte por celda, admitiendo incluso que se le suministreun volumen en formato comprimido. Deja por tanto al usuario la tarea de convertir susvalores de la funcion a bytes. En nuestro caso particular, esta tarea se realiza durantela propia simulacion1.

Tambien se caracteriza por su portabilidad, su capacidad para realizar animacionescasi automaticamente, y su facilidad de uso y aprendizaje. Finalmente, es fiable ygratuito.

Ogle permite visualizar los volumenes de datos mediante otras tecnicas, aunque solohemos utilizado la representacion de opacidad en este trabajo.

Mientras AVS es mas apropiado para visualizar los detalles de una imagen particu-lar, Ogle es especialmente util (por economıa de tiempo y almacenamiento) para crearsecuencias.

1La aplicacion almacena periodicamente los estados de la simulacion usando reales de doble preci-sion, y con mayor periodicidad, en formato de bytes.

Page 162: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

140 Apendice B: Tecnicas de visualizacion

Page 163: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

COrdenamientostopologicos

Los ordenamientos validos para las tareas en un grafo dirigido acıclico se conocen comoordenamientos topologicos. Existen varios algoritmos para encontrar un ordenamientotopologico. Entre ellos, consideremos el siguiente [22]:

Codigo 3

program top_ord K = null /*nodos sin arcos entrantes*/

L=null /*nodos en el ordenamiento topologico*/

for each vertice v in G /*G es el grafo dirigido acıclico*/

I[v] = numero de arcos entrantes de v

If (I[v] equal to 0) then K=K +v

call top_search(G,K,L)

end

routine top_search(G,K,L)

while (G not equal to null)

K=K-v /* seleccionar y podar un nodo en K */

for each_arc (v,w) /* arcos salientes de v */

I[w]=I[w]-1

If (I[w] equal to 0) then K=K +w

L=L+v, G=G-v /*sentencia etiquetada*/

end

141

Page 164: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

142 Apendice C: Ordenamientos topologicos

Si anadimos las siguientes lıneas a este algoritmo, justo debajo de la penultimasentencia (etiquetada), se puede observar que el algoritmo no busca uno, sino todos losalgoritmos topologicos del grafo [87]:

K’=rotar una posicion la lista K

Call top_search(G,K’,L)

permitiendo realizar una busqueda exhaustiva del orden mas apropiado para las tareascomputacionales de un determinado codigo, o una busqueda aleatoria si se limita eltiempo de busqueda, resultando un algoritmo pseudo–optimo.

Page 165: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

D Obtencion del metodo deJacobi a partir de PCG

Segun el algoritmo 7, el metodo PCG puede considerarse como un procedimiento queproporciona una aproximacion a la solucion x en el espacio dominio y una aproximaciona Ax en el espacio imagen b, minimizando αp y r, respectivamente. A partir deesta idea, se puede derivar una familia de algoritmos como sigue.

Si el residuo r se utiliza (inexactamente) en el espacio x, usando un precondicio-nador ( A−1), el vector resultante p se puede utilizar como estimacion del error e,y, finalmente, se puede corregir el residuo usando p y A en el espacio b como semuestra en el siguiente algoritmo.

Algoritmo 10

r0 = b − Ax0

for i = 1, 2, . . . , Lpi = A−1 · ri−1

xi = xi−1 + pi

opcionalmente, ρi = ri−1 · pi

qi = Api

ri = ri−1 − qi

end

En el algoritmo PCG, α se mantiene en valores cercanos a la unidad, siempre que elprecondicionador se aproxime bastante a la inversa de la matriz, por lo que la principaldiferencia entre este algoritmo y PCG reside en la direccion de actualizacion p. En

143

Page 166: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

144 Apendice D: Obtencion del metodo de Jacobi a partir de PCG

PCG, p se obtiene corrigiendo su valor anterior utilizando una direccion de correccionr, mientras que en el algoritmo 10, el valor de p se obtiene directamente a partir der.

Mediante el uso de diferentes precondicionadores en el algoritmo 10 obtendremosuna familia de algoritmos muy variados. Es curioso destacar como en el caso del pre-condicionador de Jacobi obtenemos el clasico metodo iterativo de Jacobi.

El metodo de Jacobi ofrece una gran ventaja frente al metodo del gradiente con-jugado precondicionado en un entorno paralelo: no existe la necesidad de implementaruna sincronizacion global entre los procesadores (salvo que optemos por detectar laconvergencia utilizando una norma que implique una reduccion, lo cual es bastanteaconsejable). Precisamente, la ausencia de reducciones es una consecuencia de conside-rar α=1 y no requerir direcciones ortogonales en la actualizacion.

En [68], se ha utilizado el metodo de Jacobi junto con el PCG (una o dos iteracionesde PCG seguidas de iteraciones Jacobi) para desarrollar simulaciones muy largas deondas espirales con una malla muy fina.

Page 167: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

Bibliografıa

[1] V. S. Adve and M. K. Vernon. The influence of random delays on parallel execution times.Proceedings of the 1993 ACM SIGMETRICS Conference on Measurement and Modellingof Computer Systems, pages 61–73, 1993.

[2] W. F. Ames. Numerical methods for partial differential equations. Academic Press, NewYork, 1992.

[3] E. Anderson, Z. Bai, C. H. Bischof, J. Demmel, J. J. Dongarra, J. Du Croz,A. Greenbaum, S. Hammarling, A. McKenney, S. Ostrouchov and D. C. Soren-sen. LAPACK Users’ Guide, SIAM, Philadelphia, PA, USA, 2nd edition, 1995(http://www.netlib.org/lapack/lug/lapack lug.html).

[4] P. Andresen, M. Bache and E. Mosekilde. Stationary space-periodic structures with equaldiffusion coefficients. Physical Review E, 60:297–301, 1999.

[5] I. Aranson and I. Mitkov. Helicoidal instability of a scroll vortex in three–dimensionalreaction–diffusion systems. Physical Review E, 58:4556–4559, 1998.

[6] C. Aykanat, F. Ozguner and D.S. Scott. Vectorization and parallelization of the conjuga-te gradient algorithm on hypercube–connected vector processors. Microprocess. Micropro-gram., 29:67–82, 1990.

[7] J. L. Baer. Computer systems architecture. Computer Science Press, New York, 1988.

[8] S. Balay, W. D. Gropp, L. Curfman McInnes and B. F. Smith, PETSc users manual,ANL-95/11 - Revision 2.1.0, Argonne National Laboratory, 2001.

[9] S. Balay, W. D. Gropp, L. C. McInnes and B. F. Smith. Efficient management of para-llelism in object oriented numerical software libraries. Modern software tools in scientificcomputing, E. Arge, A. M. Bruaset and H. P. Langtangen, edit., pages 163–202, BirkhauserPress, 1997.

[10] R. Barrett, M. Berry, T.F. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhout,R. Pozo, C. Romine and H. Van de Vorst. Templates for the solution of linear systems:building blocks for iterative methods. SIAM, Philadelphia, 1994.

[11] R. Baxter, M. Bowers, P. Graham, G. Wojcik, D. Vaughan and J. Mould. An OpenMPapproach to parallel solvers in PZFlex. In Proceedings of the second international conferenceon engineering computational technology, Civil-Comp Press, Leuven, Belgium, 2000.

[12] V. N. Biktashev, I. V. Biktasheva, A. V. Holden, M. A. Tsyganov, J. Brindley and N. A.Hill. Spatiotemporal irregularity in an excitable medium with shear flow. Physical ReviewE 60:1897–1900, 1999.

145

Page 168: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

146 BIBLIOGRAFIA

[13] V. N. Biktashev, I. V. Biktasheva, J. Brindley, A. V. Holden, N. A. Hill and M. A.Tsyganov. Effects of shear flows on nonlinear waves in excitable media. J. Biol. Phys.,25:101–113, 1999.

[14] S. Booth and J. Fisher. Introduction to the T3D. Technical report, Edinburgh ParallelComputer Centre. The University of Edinburgh, Edinburgh, 1998.

[15] P. K. Brazhnik and J. J. Tyson. Velocity–curvature dependence for chemical waves inthe Belousov–Zhabotinskii reaction: theoretical explanation of experimental observations.Physical Review E, 59:3920–3925, 1999.

[16] J. R. Bunch and D. J. Rose. Sparse matrix computations. Academic Press, New York,1976.

[17] R. L. Burden and J. D. Faires. Analisis numerico. Grupo Editorial Iberoamericana,Mejico, 1985.

[18] F. Cavazzini, Enterprise Server Product Sales, Sun Enterprise, 2001.(http://www.sun.fr/formation/bioinformatique/pres/fabrice.pdf)

[19] A. T. Chronopoulos and C. W. Gear. S-step iterative methods for symmetric linearsystems. J. Comput. Appl. Math. 25:153–168, 1989.

[20] J. Demmel, M. Heath and H. van der Vorst. Parallel linear algebra. Acta Numerica,2:111–197, 1993.

[21] J. W. Demmel. Applied numerical linear algebra. SIAM, Philadelphia, 1997.

[22] E. W. Dijkstra. A note on two problems in connection with graphs. Numer. Math.,1:269-271, 1959.

[23] M. Dolnik, A. M. Zhabotinskii and I. R. Epstein. Resonant suppression of Turing patternsby periodic illumination, Physical Review E, 63:26101–26110, 2001.

[24] J. Dongarra, I. Duff, D. Sorensen and H. van der Vorst. Numerical linear algebra forhigh-performance computers. SIAM, Philadelphia, 1989.

[25] J. Dongarra, I. Duff, D. Sorensen and H. van der Vorst. Solving linear systems on vectorand shared memory computers. SIAM, Philadelphia, 1991.

[26] I. S. Duff, edit. Sparse matrices and their uses. Academic Press, New York, 1980.

[27] I. S. Duff, A. M. Erisman and J. K. Reid. Direct methods for sparse matrices. ClarendonPress, Oxford,1986.

[28] I. S. Duff, R. G. Grimes and J. G. Lewis. Users’ guide for the Harwell–Boeing sparsematrix collection. Research and Technology Division, Boeing Computer Services, 1992.

[29] E. D’Azevedo, V. Eijkhout and C. Romine. LAPACK working note 56: Reducing com-munication costs in the conjugate gradient algorithm on distributed memory multiproces-sor, Tech. Report, Computer Science Department, University of Tennessee, Knoxville, TN,1993.

[30] S. Ethier and Z. Lin. Mixed–mode parallelization (OpenMP–MPI) of the gyrokinetictoroidal code GTC to study microturbulence in fusion plasmas. Annual Meeting of theDivision of Computational Physics, American Physical Society, 2001.

Page 169: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

BIBLIOGRAFIA 147

[31] R. J. Field and M. Burger, edit. Oscillations and travelling waves in chemical systems.John Wiley & Sons, New York, 1985.

[32] C. J. Fitzsimons, J. V. Ashby, R. F. Fowler and C.Greenough. An efficient implementa-tion of Bi–CGSTAB applied to three–dimensional semiconductor device problem. ERCIMWorkshop, Pisa, 1992.

[33] N. Fornasari and S. Rovida. Conjugate–Gradient algorithms on a Cray–T3D. LectureNotes Comput. Sci., 1067:668–673, Proc. of High Perf. Comp. and Netw., Bruselas, 1996.

[34] L. Forstova, H. Sevcikova, M. Marek and J. H. Merkin. Electric field effects on selectivityof reactions within propagating reaction fronts. Chemical Engineering Science, 55:233–243,2000.

[35] I. Foster. Designing and building parallel programs. Addison–Wesley, Reading, Masachu-setts, 1994.

[36] G. H. Golub and C. F. Van Loan.Matrix computations. North Oxford Academic, Oxford,1983.

[37] W. D. Gropp, D. K. Kaushik, D. E. Keyes and B. F. Smith. High performance parallelimplicit CFD. Parallel Computing, 27:337-362, 2001.

[38] UEA CALMA Group. Parallelism in combinatorial optimisation. Technical report 2.4,School of Information Systems. University of East Anglia, Norwich, UK, 1995.

[39] A. Gupta, V. Kumar and A. Sameh. Performance and scalability of preconditionedconjugate gradient methods on parallel computers. IEEE Trans. on Parallel and Distr.Systems, 4(5):455–469, 1995.

[40] E. Hagersten. The Bus-based SMP Sun E6500. Advanced parallel compu-ter architectures. Course notes, Uppsala University, 1999. (http://www.tdb.uu.se/∼hpc/courses/apca/99/e6000-ho.PDF)

[41] J. L. Hennessy and D. A. Patterson. Computer architecture: a quantitative approach.Morgan Kaufmann, San Francisco, California, 1996.

[42] D. Henty. Performance of hybrid message-passing and shared–memory parallelism fordiscrete element modelling. Supercomputing’00, 2000.

[43] A. V. Holden, M. Markus and H. G. Othmer, edit. Nonlinear wave processes in excitablemedia. Plenum Press, New York, 1991.

[44] S. A. Hutchinson and J. N. Shadid. Official Aztec user’s guide: version 2.1, MassivelyParallel Computing Research Center, Sandia National Laboratories, Albuquerque, NM,1999.

[45] K. Hwang. Advanced computer architecture: parallelism, scalability, programmability.McGraw–Hill, New York, 1993.

[46] S. M. Hwang, W. G. Choe and K. J. Lee. Complex dynamics of a spiral tip in thepresence of an extrinsic local modulation. Physical Review E, 62:4799–4803, 2000.

[47] R. Jain. The art of computer systems performance analysis. Wiley, Chapter 13, 1993.

Page 170: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

148 BIBLIOGRAFIA

[48] M. T. Jones and P. E. Plassmann. Solution of large, sparse systems of linear equationin massively parallel applications. In Proceedings of Supercomputing ’92, IEEE ComputerSociety Press, pages 551-560, 1992.

[49] W. D. Jourbert and G. F. Carey. PCG: A software package for the iterative solutionof linear systems on scalar, vector and parallel computers. Proceedings of the Sixth SIAMConference on Parallel Processing for Scientific Computing, R. F. Sincovec, D. E. Keyes,M. R. Leuze, L. R. Petzold and D. A. Reed, edit., pages 515–518, SIAM, 1993.

[50] M. Kærn and M. Menzinger. Flow-distributed oscillations: Stationary chemical waves ina reacting flow, Physical Review E, 60:3471–3474, 1999.

[51] C. H. Koelbel, D. B. Loveman, R. S. Schreiber, G. L. Steele Jr. and M. E. Zosel. TheHigh Performance Fortran handbook. The MIT Press, Cambridge, London, 1994.

[52] R. Kapral and R. Showalter. Chemical waves and patterns. Kluwer Academic, Dordrecht,1995.

[53] D. K. Kaushik and D. E. Keyes. Efficient parallelization of an unstructured grid solver:A memory-centric approach. Proceedings of the International Conference on Parallel CFD,Istanbul, June 1999. U. Gulcat and D. R. Emerson, edit., pages 55–67, Istanbul TechnicalUniversity Press, 2000.

[54] J. P. Keener and J. J. Tyson. The dynamics of scroll waves in excitable media. SIAMReview, 34:1–39, 1992.

[55] D. E. Keyes, T. F. Chan, G. Meurant, J. S. Scroggs and R. G. Voigt, edit., 5th Interna-tional Symposium on Domain Decomposition Methods for Partial Differential Equations.SIAM, Philadelphia, 1992.

[56] D. Klepacki. Mixed mode programming. SP SciComp’99, IBM Advanced ComputingTechnology Center, October 1999.

[57] M. G. Knepley, V. Sarin and A. H. Sameh. Parallel simulation of particulate flows. FifthIntl. Symp. on solving irregular structured problems in parallel: IRREGULAR ’98, LNCS1457, pages 226-237, Springer–Verlag, New York, August 1998.

[58] I. M. Llorente, F. Tirado and L. Vazquez. Some aspects about the scalability of scientificapplications on parallel computers. Parallel Computing, 22:1169-1195, 1996.

[59] I. M. Llorente, M. Prieto and F. Tirado. An Environment to Develop Parallel Code forSolving Partial Differential Equations. Journal of Systems Architecture 45:543-554, 1999.

[60] T. Mai. Modified Lanczos method for solving large sparse linear systems. Commun. inNumer. Meth. in Engin, 9:67–79, 1993.

[61] R. M. Mantel and D. Barkley. Parametric forcing of scroll–wave patterns in three–dimensional excitable media. Physica D, 149:107–122, 2001.

[62] M. Markus, M. Krafczyk and B. Hess. Randomized automata for isotropic modellingof two– and three–dimensional waves and spatiotemporal chaos in excitable media. A. V.Holden, M. Markus, H. G. Othmer, edit., Nonlinear Wave Processes in Excitable Media,pages 161–182, Plenum Press, New York, 1991.

Page 171: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

BIBLIOGRAFIA 149

[63] J. May and B. de Supinski. Experiences with mixed MPI and threaded programmingmodels. Proc. 1999 Intl. Conf. on Parallel and Distributed Processing Techniques and Ap-plications (PDPTA ’99), June 1999.

[64] E. Minty, R. Davey, A. Simpson and D. Henty. Decomposing the potentially parallel.Technical report, Edinburgh Parallel Computer Centre. The University of Edinburgh, Edin-burgh, 1998. (http://www.epcc.ed.ac.uk/epic/decomposing/index.html).

[65] A. P. Munuzuri, V. Perez–Munuzuri and V. Perez–Villar. Attraction and repulsion ofspiral waves by localized inhomogeneities in excitable media. Physical Review E, 58:R2689–R2692, 1998.

[66] J. M. Ortega. Introduction to parallel and vector solution of linear systems. Frontiers ofComputer Science, Plenum Press, New York, 1988.

[67] E. M. Ortigosa, L. F. Romero and J. I. Ramos. Three-dimensional simulations of spi-ral waves in reacting and diffusing media on DSM computers. In Applications of High-Performance Computing in Engineering VI. M. Ingber, H. Power and C. A. Brebbia, edit.,pages 11-20, WIT Press, Southampton, United Kingdom, 2000.

[68] E. M. Ortigosa, L. F. Romero and J. I. Ramos. Spiral waves in three–dimensional ex-citable media with light–sensitive reaction. TR UMA-DAC-02/02, University of Malaga,Spain, 2002.

[69] A. V. Panfilov, S. C. Muller, V. S. Zykov and J. P. Keener. Elimination of spiral wavesin cardiac tissue by multiple electrical shocks. Physical Review E, 61:4644–4647, 2000.

[70] D. A. Patterson and J. L. Hennessy. Computer Organization and Design. Morgan Kauf-mann, San Francisco, California, 1997.

[71] S. Pissanetzky. Sparse matrix technology. Academic Press, 1984.

[72] P. E. Plassmann and M. T. Jones. BlockSolve95 users manual: scalable library for theparallel solution of sparse linear systems. Argonne National Laboratory, December 1995.(http://www-unix.mcs.anl.gov/∼freitag/SC94demo/software/blocksolve.html)

[73] W. H. Press, S. A. Teukolsky, W. T. Vertterling and B. P. Flannery. Numerical recipesin FORTRAN. Cambridge University Press, 1992.

[74] D. M. Pressel. Scalability vs. performance. Trip Report: DoD HPCMP UsersGroup 2000 Albuquerque, New Mexico, June 2000. (http://www.hpcmo.hpc.mil/Htdocs/UGC/UGC00/paper/daniel pressel scale paper.pdf).

[75] D. M. Pressel, T. Kendall and S.Thompson. Queuing for symmetric multiprocessors.The 2000 International Conference on Parallel and Distributed Processing Techniques andApplications. PDPTA’2000, Monte Carlo Resort, Las Vegas, Nevada, USA, June 2000.

[76] A. Quarteroni and A. Valli. Numerical approximation of partial differential equations.Springer–Verlag, New York, 1994.

[77] J. I. Ramos. Linearization methods for reaction-diffusion equations: multidimensionalproblems. Appl. Math. Comput., 88:225–254, 1997.

[78] J. I. Ramos. Dynamics of spiral waves in excitable media with local time–periodic mo-dulation. Chaos, Solitons & Fractals, 13:1383–1392, 2002.

Page 172: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

150 BIBLIOGRAFIA

[79] J. I. Ramos. Tile patterns in excitable media subject to non–solenoidal flow fields. Chaos,Solitons & Fractals, 12:2267–2281, 2001.

[80] J. I. Ramos. Convection–induced anisotropy in excitable media subject to solenoidaladvective flow fields. Chaos, Solitons & Fractals, 12:1897–1908, 2001.

[81] J. I. Ramos. Spatio–temporal patterns in excitable media with non–solenoidal flow strai-ning. Mathematics and Computers in Simulation, 55:607–619, 2001.

[82] J. I. Ramos. Propagation of spiral waves in anisotropic media: from waves to stripes.Chaos, Solitons & Fractals, 12:1057–1064, 2001.

[83] J. I. Ramos. Wave propagation and suppression in excitable media with holes and ex-ternal forcing. Chaos, Solitons & Fractals, 13:1243–1251, 2002.

[84] R. D. Richtmyer and K. W. Morton. Difference methods for initial value problems. JohnWiley & Sons, New York, 1967.

[85] L. F. Romero and E. L. Zapata. Data distributions for sparse matrix vector multiplica-tion. J. Parallel Computing, 21:583-605, 1995.

[86] L. F. Romero. Simulacion de laseres de semiconductores en multiprocesadores. PhDthesis, Departamento de Arquitectura de Computadores, Universidad de Malaga, Spain,1996.

[87] L. F. Romero, E. M. Ortigosa and E. L. Zapata. Data-task parallelism for the VMECprogram. J. Parallel Computing, 27(10):1347-1364, 2001.

[88] S. Romero. Simulacion de objetos deformables en multiprocesadores. PhD thesis, Depar-tamento de Arquitectura de Computadores, Universidad de Malaga, Malaga, 2000.

[89] Y. Saad and M. H. Schultz. GMRES: A generalized minimal residual algorithm forsolving nonsymmetric Linear Systems. SIAM J.Stat. Comput., 7:856–869, 1986.

[90] Y. Saad. Krylov subspace methods for solving large unsymmetric linear systems. Math.Comput., 37:105-126, 1981.

[91] A. H. Sameh and V. Sarin. Hybrid parallel linear system solvers. Int. J. Numer. Meth.Fluids, submitted 1999.

[92] V. Sarkar. Determining average program execution times and their variance. SIGPLANConference on Programming Language Design and Implementation, pages 298-312, 1989.

[93] C. D. Scarbnick, M. C. Chang, M. H. Schultz and A. B. Sherman. A Parallel softwarepackage for solving linear systems. In Proceedings of the Fourth IEEE Symposium on theFrontiers of Massively Parallel Computation, pages 397-401, 1992.

[94] I. Schebesch and H. Engel. Interacting spiral waves in the Oregonator model of light–sensitive Belousov–Zhabotinskii reaction. Physical Review E, 60:6429–6434, 1999.

[95] U. Schendel. Sparse matrices: numerical aspects with applications for scientists and en-gineers. Ellis Horwood series in Mathematics and its Applications, John Wiley & Sons,New York, 1989.

[96] S. K. Scott, B. R. Johnson, A. F. Taylor and M. R. Tinsley. Complex chemical reac-tions.Chemical Engineering Science, 55:209–215, 2000.

Page 173: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

BIBLIOGRAFIA 151

[97] H. Shan and J. Singh. Parallel sorting on cache-coherent DSM multiprocessors. Super-computing ’99, Portland, Oregon, 1999.

[98] J. R. Shewchuk. An introduction to the conjugate gradient method without the agonisingpain. Internal Report, School of Computer Science, Carnegie Mellon University, Pittsburgh,PA, USA, Aug. 1994 (http://www.cs.cmu.edu/∼jrs/jrspapers.html).

[99] L. A. Smith and J. M. Bull. Development of mixed mode MPIOpenMP applications.Workshop on OpenMP Applications and Tools (WOMPAT 2000), San Diego, July, 2000.

[100] L. A. Smith and P. Kent. Development and performance of a mixed OpenMPMPIquantum Monte Carlo code. Proceedings of the First European Workshop on OpenMP,Lund, Sweden, Sept. 1999.

[101] A. Sohn, Y. Paek, J. Ku, Y. Kodama, Y. Yamaguchi. Communication studies of threedistributed-memory multiprocessors. In Proc. of IEEE Symposium on High PerformanceComputer Architecture, Orlando, Florida, pages 310-314, January 1999.

[102] M. R. Spiegel. Estadıstica. McGraw-Hill-Interamericana, 1991.

[103] W. Stallings. Organizacion y arquitectura de computadores. Prentice Hall, 2000.

[104] A. S. Tanenbaum. Structured computer organization. Fourth Edition, Prentice-Hall,1999.

[105] H. Truong, T. Fahringer, G. Madsen, D. Malony, H. Moritsch and S. Shende. On usingSCALEA for performance analysis of distributed and parallel programs. In Proceedings ofthe 9th IEEE High-Performance Networking and Computing Conference, SC´2001, Denver,Colorado, USA, November 2001.

[106] R. F. Van der Wijngaart. Efficient implementation of a 3–dimensional ADI method onthe iPSG860. Supercomputing ’93, Portland, Oregon, November 1993.

[107] M. Vinson. Interaction of spiral waves in inhomogenous excitable media. Physica D,116:313–324, 1998.

[108] R. F. Warming and R. M. Beam. On the construction and application of implicitfactored schemes for conservation laws. Symposium on Computational Fluid Dynamics,SIAM-AMS Proceedings, 11:85-129, 1978.

[109] M. Wellner, A. M. Pertsov and J. Jalife. Spiral drift and core properties. Phys. Rev. E,59:5192–5204, 1999.

[110] F. A. Williams. Combustion Theory. Addison-Wesley, New York, 1985.

[111] A. T. Winfree. Stable particle–like solutions to nonlinear wave equations of three–dimensional excitable media. SIAM Review, 32:1–53, 1990.

[112] A. T. Winfree. The geometry of biological time. Springer–Verlag, New York, 2001.

[113] H. Yagisita, M. Mimura and M. Yamada. Spiral wave behaviors in an excitable reaction–diffusion system on a sphere. Physica D, 124:126–136, 1998.

[114] D. M. Young. Iterative solution of large linear systems. Computer Science and AppliedMathematics, Academic Press, Londres, 1971.

Page 174: TESIS DOCTORAL - Biblioteca UMA · Grafo de dependencias del algoritmo PCG (a), y del PCG utilizando el precon-dicionador de Cholesky (b). Cada nodo representa una operaci´on de

152 BIBLIOGRAFIA

[115] Z. Zlatev. Computational methods for general sparse matrices. Mathematics and itsApplications, Kluwer Acad. Publ., Boston, 1991.

[116] Z. Zuohuan, Z. Tianshou, Z. Zifan and Z. Suochun. Periodic solution and global struc-ture of Oregonator. Chaos, Solitons & Fractals, 11:1191–1195, 2000.

[117] PETSc home page, 2001. http://www.mcs.anl.gov/petsc

[118] Edinburgh Parallel Computing Center. The Sunfire E6800 systems, 2001.http://www.epcc.ed.ac.uk/sun/documents/hpc-intro

[119] Scientific Computing at NPACI, 1999. http://www.npaci.edu/online/v3.14/SCAN.html

[120] SLATEC Common Mathematical Library Version 4.1. http://www.kachinatech.com/∼hjjou/slatec-doc/

[121] Message Passing Interface (MPI) Forum Home Page. http://www.mpi-forum.org

[122] Sun Enterprise, 2001. http://www.sun.com/servers/midrange/sunfire6800

[123] http://www.math.chalmers.se/∼jacques/kf2na/Historia/Belousev.html

[124] http://online.redwoods.cc.ca.us/instruct/darnold/DEProj/sp98/Gabe/intro.htm

[125] http://www.cs.ucsb.edu/∼tyang/class/240b99f/refer.html

[126] http://www.cs.princeton.edu/∼shz/research.html

[127] http://polaris.cs.uiuc.edu/polaris/polaris.html

[128] http://www.netlib.org/scalapack/scalapack home.html

[129] http://www.colorado-research.com/∼gourlay/software/Graphics/Ogle/index.html

[130] http://www.avs.com/software/soft t/avs5.html

[131] http://www.mathworks.com/products/matlab/

[132] http://www.epcc.ed.ac.uk

[133] http://weizen.chem.ukans.edu/ruslan/