Álgebra Lineal Numérica Universidad de la República, Uruguay Curso 2019 Técnicas de reciclado en métodos iterativos Autor: Pablo Báez Echevarría 4.474.885-0 20 de diciembre de 2019 Docentes: Pablo Enzatti Ernesto Dufrechou Índice 1. Introducción 3 2. Fundamentos matemáticos 2.1. GMRES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Iteración de Arnoldi . . . . . . . . . . . . . . . . . . . . 2.1.2. Pseudocódigo de GMRES(m) . . . . . . . . . . . . . . . 2.2. Reciclado en subespacios de Krylov . . . . . . . . . . . . . . . . 2.2.1. Idea general . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Reciclado en GMRES: rGCROT/rGCRO-DR . . . . . . 2.2.3. Aplicación del reciclado a secuencias de sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Principales trabajos en la materia 3.1. Recycling Krylov Subspaces for Sequences of Linear Systems (2004) . . . . . . . 3.1.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Recycling Krylov subspaces for efficient large-scale electrical impedance tomography (2010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Recycling BiCG with an Application to Model Reduction (2010) . . . . . . . . 3.3.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Recycling Krylov subspaces for CFD applications and a new hybrid recycling solver (2015) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1. Breve reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Krylov Subspace Recycling for Fast Iterative Least-Squares in Machine Learning (2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Strategies For Recycling Krylov Subspace Methods And Bilinear Form Estimation (2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems (2018) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7 7 13 15 15 16 20 22 22 22 23 23 24 24 25 25 26 26 26 27 27 27 27 4. Paquetes de software 28 4.1. PETSc + HPDDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2. KryPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1 5. Conclusión 32 Referencias 33 2 1. Introducción En muchas aplicaciones de la ingeniería (en áreas tales como Análisis Estructural, Teoría de Control, Imagenología Médica, etc.), nos encontramos con que debe resolverse una secuencia de sistemas lineales A(i) x(i) = b(i) , i = 1, 2, . . . donde la variación entre la matriz A(i) y A(i+1) es relativamente leve. Estas matrices A(i) suelen ser de grandes dimensiones y presentar la propiedad de ser dispersas, término que proviene de la traducción del inglés sparse matrices y que se usa para referirse a matrices con una gran cantidad de elementos iguales a cero (lo opuesto a matriz “dispersa” es matriz “densa”). Estas matrices dispersas frecuentemente aparecen en la discretización de ecuaciones diferenciales al usar modelos de elementos finitos o diferencias finitas. Por ejemplo, una discretización de diferencias finitas de una ecuación en derivadas parciales puede traducirse en una matriz de dimensión m = 105 con solo v = 10 elementos no nulos por fila. Por otra parte, muy frecuentemente el vector b(i+1) (o incluso la matriz A(i+1) ) depende de la solución del sistema anterior x(i) de manera que el sistema i + 1 no queda completamente determinado hasta que se resuelve el sistema i. En este contexto, es fundamental que el tiempo de ejecución para resolver cada sistema en la secuencia (así como la memoria empleada) se reduzca lo máximo posible, ya que de eso depende el costo de todo el proceso. Los métodos directos (como escalerización gaussiana o descomposición LU) llegan a la solución exacta después de un número finito de pasos, dependiente del tamaño de la matriz del sistema. Para el caso de matrices de estas dimensiones, resultan prohibitivos (y son aún menos aplicables si para resolver el sistema i + 1 debe esperarse a tener la solución del sistema i). Lo natural para resolver estos sistemas es utilizar métodos iterativos, que buscan aproximar la solución mediante una sucesión generada iterativamente (que se interrumpe cuando el error es menor que un cierto umbral prefijado por el usuario). Dentro de la clase de los métodos iterativos, los basados en subespacios de Krylov han demostrado ser particularmente útiles en el caso de matrices grandes. No obstante, los métodos basados en subespacios de Krylov suelen requerir un número muy elevado de iteraciones para construir una buena solución, y las iteraciones pueden ser costosas. Por tanto se han buscado maneras de reducir la cantidad de iteraciones aumentando la tasa de convergencia. Una de las técnicas empleadas recientemente (con bastante éxito), es el reciclado de subespacios de Krylov. Esencialmente consisten en “reciclar” parte de la información que fue calculada para el sistema i-ésimo para reducir la cantidad de iteraciones en el sistema (i + 1)-ésimo, basándose en que A(i+1) ≈ A(i) . Hay muchos métodos basados en subespacios de Krylov. Básicamente los hay de dos “familias”: una es de la ORTHODIR, MINRES, CGR, GMRES, etc. y la otra es la de CG, QMR, 3 BiCG, bi-Lanczos, etc. El reciclado se implementa de manera diferente en cada uno (si bien hay similaridades dentro de cada “familia”). En la sección 2 nos centramos en métodos del tipo GMRES. GMRES(m) (o GMRES con reinicialización o Restarted GMRES ) es uno de los métodos más robustos que existen y por tanto ampliamente utilizado en la práctica. El único inconveniente es que demandaba demasiado espacio (por eso la reinicialización), y en algunos casos convergía lentamente, pero las técnicas de reciclado han conseguido sortear en parte dicho inconveniente. El presente trabajo tiene como objetivos fundamentales: (1) exponer los principios básicos en los que se basa la técnica de reciclado de subespacios de Krylov (partiendo prácticamente de cero, es decir, sin dar por sentado ningún conocimiento previo más que conocimientos elementales de álgebra lineal) y (2) relevar el estado del arte en la materia, listando y comentando brevemente los trabajos académicos de mayor relevancia. El autor puso especial esmero en la sección 2 de fundamentos matemáticos, procurando que fuese una exposición autocontenida.1 1 Algo bastante tedioso en la lectura de los papers es que siempre uno remite a otro por tal o cual resultado, y al final la exposición teórica de cada uno se vuelve una maraña difícil de desentrañar. 4 2. Fundamentos matemáticos Sea A ∈ Fm×m una matriz dispersa y b ∈ Fm×1 un vector. Se desea encontrar una solución aproximada a la ecuación lineal Ax = b (2.1) La eficiencia de resolver 2.1 depende de tres factores: (1) el algoritmo matemático empleado, (2) su implementación, y (3) las características particulares del problema que dio origen al sistema 2.1. En la mayoría de las aplicaciones, la matriz A es muy grande y un método directo es imposible de aplicar o demasiado costoso. Los métodos basados en subespacios de Krylov son una buena opción para resolver sistemas de estas características. Estos métodos encuentran una solución aproximada en el subespacio de Krylov a través de un proceso iterativo en vez de resolver 2.1 directamente por medio de eliminación gaussiana o descomposición LU. Sin embargo, los métodos basados en subespacios de Krylov podrían requerir demasiadas iteraciones para alcanzar una solución con la precisión deseada. Estos métodos suelen requerir de un precondicionador para mantener la cantidad de iteraciones en un número razonable, pero el precondicionador podría ser costoso de computar. Llámese x0 al vector de partida (estimación inicial) y r0 = b − Ax0 al residuo. Los métodos basados en subespacios de Krylov actualizan la solución aproximada en cada iteración de la siguiente manera: en el paso n, se forma xn = x0 + zn , con zn ∈ Kn (A, r0 ), donde2 Kn (A, r0 ) = [r0 , Ar0 , . . . , An−1 r0 ] es el subespacio de Krylov asociado a la matriz A y el vector r0 . ¿Por qué este subespacio es adecuado para construir una solución aproximada? Para responder esta pregunta, lo primero es notar que si se hace el cambio de variable z = x − x0 (2.2) Az = r0 (2.3) resolver 2.1 es equivalente a resolver En efecto, si en 2.3 se impone 2.2 se tiene que Az = r0 ⇔ A(x − x0 ) = b − Ax0 ⇔ Ax = b De esta manera, se puede ver a zn como la solución aproximada n-ésima del sistema equivalente 2.3. ¿Y por qué es natural expresar la solución de un sistema Az = r0 como combinación lineal de r0 , Ar0 , A2 r0 , . . . , Ak r0 , . . . ? Para responder a esta pregunta, considérese XA (λ) = cm λm + cm−1 λm−1 + · · · + c1 λ + c0 2 Como en GAL1 y GAL2, se está usando la notación de paréntesis recto para denotar al subespacio generado por un conjunto de vectores. 5 el polinomio característico de A. Por el teorema de Cayley-Hamilton, XA (A) = 0, es decir, 0 = cm Am + cm−1 Am−1 + · · · + c1 A + c0 (2.4) donde c0 = XA (0) = det(A − 0I) = det(A). Asumiendo que es no nulo, existe la inversa A−1 , por lo que multiplicando ambos miembros de 2.4 por A−1 , cm Am−1 + cm−1 Am−2 + · · · + c1 + c0 A−1 = 0 luego A−1 = − 1 (cm Am−1 + cm−1 Am−2 + · · · + c1 ) det(A) En consecuencia, la solución de 2.3 es z = A−1 r0 1 (cm Am−1 r0 + cm−1 Am−2 r0 + · · · + c1 r0 ) =− det(A) esto es, una combinación lineal de r0 , Ar0 , A2 r0 , etc. De hecho, con un argumento análogo, se puede probar que si el polinomio mínimo de una matriz no singular A tiene grado `, entonces la solución de Az = r0 pertenece K` (A, r0 ). De esta manera, si el polinomio mínimo de A tiene un grado ` bajo, el espacio de Krylov al que pertenece la solución es pequeño y los métodos de Krylov convergerán más rápido. ¿Cómo se elige zn ? Una posibilidad (que es en la que se basan los métodos MINRES, GCR, ORTHODIR y GMRES) es elegir zn de manera tal que minimice la norma euclídea del residuo rn = b − Axn .3 Esto es equivalente a tomar rn ⊥ AKn (A, r0 ) = Kn (A, Ar0 ). De hecho, se tiene el siguiente4 Teorema 2.1. El vector zn ∈ Kn (A, r0 ) satisface zn = arg mı́n kb − A(x0 + z)k2 = arg z∈Kn (A,r0 ) mı́n kr0 − Azk2 z∈Kn (A,r0 ) si y sólo si llamando rn = b − Axn = r0 − Azn al residuo, rn ⊥ AK n (A, r0 ) 3 (2.5) Este criterio se conoce como minimum residual approach, pero no es el único. Otro muy empleado es tomar zn de forma tal que el residuo sea ortogonal al actual subespacio de Krylov, es decir, rn ⊥ Kn (A, r0 ). Esto minimiza la norma-A del error, es decir, kxn − x̄kA . donde x̄ es la solución a 2.1. Este otro criterio se conoce como Ritz–Galerkin approach y es el que conduce a métodos también muy populares en la literatura como el método del gradiente conjugado (abreviado CG) y el método de Lanczos. En [1] se desarrollan exhaustivamente estos criterios así como otros dos adicionales. 4 Este teorema (así como su demostración) se encuentra en [2]. 6 Demostración. Está basada en el hecho de que si V es un espacio vectorial con producto interno y S es un subespacio de dimensión finita, entonces5 kv − PS (v)k ≤ kv − sk, ∀s ∈ S O sea, PS (v) es el vector de S que mejor aproxima a v, en el sentido de que hace mínima kv − sk. Esto se puede observar en la figura 1. Obsérvese también que, dado que V = S ⊕ S ⊥ , S⊥ v Ps (v) S Figura 1: Como se ve en el dibujo, PS (v) es el vector de S “más parecido” a v. se tiene que v − PS (v) = PS ⊥ (v), o sea, v − PS (v) ⊥ S. En otras palabras, ŝ = arg mı́n kv − sk s∈S ⇔ ŝ = PS (v) ⇔ v − ŝ ⊥ S En el caso que nos ocupa, zn = arg 2.1. 2.1.1. mı́n kr0 − Azk z∈Kn (A,r0 ) ⇔ wn = arg ⇔ r0 − wn ⊥ AKn (A, r0 ) ⇔ r0 − Azn ⊥ AKn (A, r0 ) mı́n kr0 − wk, wn = Azn w∈AKn (A,r0 ) GMRES Iteración de Arnoldi El método GMRES primero construye una base ortonormal de Kn (A, r0 ) para expresar zn como combinación lineal de los elementos de dicha base. Para ello, emplea la iteración 5 La demostración de esta proposición se puede encontrar en la pág. 96 del libro “rojo” de GAL2. 7 de Arnoldi, que se explicará a continuación. Como se vio en el curso, es posible reducir una matriz A arbitraria a forma Hessenberg mediante semejanza unitaria, o sea, hallar una matriz V unitaria (i.e. V H V = I) tal que V H AV = H (2.6) o equivalentemente, AV = V H (2.7) Como m es muy grande, el cálculo de una reducción completa es impensable. En su lugar, se trabaja con n columnas (con n m) de las matrices AV y V H. Llámese: Vn ∈ Fm×n a la submatriz de V formada por las primeras n columnas. H̃n ∈ F(n+1)×n a la submatriz de H formada por las n + 1 primeras filas y n primeras columnas. El miembro izquierdo de 2.7 es v11 a1m v21 .. a2m . .. . vn,1 . . amm . vm1 a11 a12 · · · a21 a22 · · · . .. .. . . . . am1 am2 · · · ··· ··· .. . v1n v2n .. . ··· ··· vn,2 · · · .. . vnn .. . ··· .. . vm2 · · · vmn ··· v12 v22 .. . v1m v2m .. . vnm .. . vmm (2.8) mientras que el miembro derecho h11 h21 v1m 0 v2m 0 .. .. . . vn+1,m 0 .. . 0 vmm .. . 0 h12 h13 h14 · · · h22 h23 h24 · · · h32 h33 h34 · · · 0 h43 h44 · · · .. .. .. . . . h1n h2n h3n h4n .. . ··· ··· ··· ··· ··· ··· ··· ··· h1m h2m h3m h4m .. . v11 v12 · · · v1,n+1 · · · v22 · · · v2,n+1 · · · v21 . .. . . .. . . . . . vn+1,1 vn+1,2 · · · vn+1,n+1 · · · . .. h 0 h n,n nm . . . . .. .. .. .. 0 hn+1,n hn+1,m vm1 vm2 · · · vm,n+1 · · · .. .. .. .. . . . . 0 ··· ··· ··· 0 hm,m−1 hm,m (2.9) (en verde se ha delimitado Vn , en azul Vn+1 y en rojo H̃n ). Si nos fijamos solo en las n primeras columnas de los productos matriciales a ambos lados de la igualdad en 2.7, se tiene AVn = Vn+1 H̃n 8 (2.10) puesto que las filas n + 2, n + 3, etc. de H son cero (restringidos siempre a las n primeras columnas). En este momento es necesario hacer la siguiente observación: se puede ver el producto de una matriz X por un vector como una manera de expresar las columnas de X como combinación lineal con coeficientes los elementos del vector. Para fijar ideas, x 1 y1 z1 a ax1 + by1 + cz1 x2 y2 z2 b = ax2 + by2 + cz2 x 3 y3 z3 c ax3 + by3 + cz3 ax1 by1 cz1 = ax2 + by2 + cz2 ax3 by3 cz3 x1 y1 z1 = a x2 + b y2 + c z2 x3 y3 z3 Una consideración análoga vale para el producto de matrices: la columna k-ésima del producto XY no es otra cosa que XYk siendo Yk la columna k de Y ; en consecuencia, la columna k-ésima de XY es la combinación lineal de las columnas de X dada por los coeficientes de la columna k de Y . Gráficamente, se puede ver en la figura 2. Figura 2: Interpretación gráfica del producto matricial. 9 Entonces, sea vk la columna k de Vn , esto es: Vn = v1 v2 · · · vn Fijémonos en la columna k (con 1 ≤ k ≤ n) a ambos lados de la igualdad 2.7. A la izquierda, la columna k-ésima de A es Avk (2.11) mientras que a la derecha será una combinación lineal de las columnas de Vn+1 con coeficientes los elementos de la columna k-ésima de H̃n , o sea, h1k v1 + h2k v2 + · · · + hk+1,k vk+1 (2.12) Igualando 2.11 y 2.12, se llega a la importante relación de recurrencia: Avk = h1k v1 + h2k v2 + · · · + hk+1,k vk+1 , k = 1, 2, . . . , n (2.13) Despejando de 2.13 vk+1 se tiene lo siguiente: vk+1 = 1 hk+1,k (Avk − h1k v1 − · · · − hkk vk ) (2.14) En el paso k, se conoce v1 , . . . , vk y se desea calcular vk+1 . Los coeficientes hik con 1 ≤ i ≤ k son viH Avk puesto que V H AV = H = (hik ) con hik = (V H )(i) (AV )(k) donde el subíndice indica la fila y el supraíndice la columna, pero (V H )(i) = viH y (AV )(k) = AV (k) = Avk . Por último, como vk+1 debe tener norma 1, se toma hk+1,k como kAvk − h1k v1 − · · · − hkk vk k2 . El resultado es el algoritmo 1. 10 Algoritmo 1 Algoritmo de Arnoldi Entrada: A ∈ Fm×m y un entero n, 0 < n < m Salida: H̃n ∈ F(n+1)×n forma Hessenmberg parcial de A, y Vn+1 ∈ Fm×(n+1) r0 1: v1 = kr0 k2 2: para k = 1, . . . , n hacer 3: w = Avk 4: para i = 1, . . . , k hacer 5: hik = viH w 6: w = w − hik vi 7: fin para 8: kk+1,k = kwk2 9: si hk+1,k = 0 entonces 10: stop 11: fin si 12: vk+1 = w/hk+1,k 13: fin para De esta manera, se empieza tomando v1 como el vector r0 normalizado, o sea, v1 = krr00k2 . Entonces [r0 ] = [v1 ]. A continuación, se multiplica Av1 de modo que [r0 , Ar0 ] = [v1 , Av1 ]. El objetivo es encontrar v2 de manera tal que [r0 , Ar0 ] = [v1 , Av1 ] = [v1 , v2 ] y {v1 , v2 } sea un conjunto ortonormal. Aplicando 2.14 con k = 1: v2 = 1 (Av1 − h11 v1 ) h21 Se calcula h11 = v1H Av1 y w = Av1 − h11 v1 . Posteriormente, se toma v2 como w dividiéndolo entre su norma h21 = kwk2 . El v2 así generado es un vector unitario y además ortogonal a v1 pues 1 (v H w) kwk2 1 1 = v1H (Av1 − h11 v1 ) kwk2 1 (v H Av1 − h11 v1H v1 ) = kwk2 1 1 = (h11 − h11 · 1) kwk2 v1H v2 = =0 Además Av1 = h11 v1 + h21 v2 , lo que muestra que [r0 , Ar0 ] = [v1 , Av1 ] = [v1 , v2 ]. Si resultara que h21 = 0, eso significaría que Av1 ∈ [v1 ], o equivalentemente, Ar0 ∈ [r0 ]. En tal caso, el 11 algoritmo se detiene. En general, si hk+1,k = 0 entonces Kn (A, r0 ) = [r0 , Ar0 , . . . , An−1 r0 ] = [v1 , . . . , vk ] luego dim Kn (A, r0 ) = k ya que {v1 , . . . , vk } es base ortonormal de Kn (A, r0 ). En efecto, si hk+1,k = 0, esa condición implica que Ak r0 se puede escribir como combinación lineal de r0 , Ar0 , . . . , Ak−1 r0 , es decir Ak r0 = α1 r0 + α2 (Ar0 ) + · · · + αk (Ak−1 r0 ), αi ∈ F (2.15) luego Ak+1 r0 = α1 (Ar0 ) + α2 (A2 r0 ) + · · · + αk (Ak r0 ) y sustituyendo en la anterior expresión Ak r0 por el miembro derecho de 2.15 se llega a que también Ak+1 r0 es combinación lineal de r0 , Ar0 , . . . , Ak−1 r0 . Un argumento inductivo muestra que Am r0 ∈ [r0 , Ar0 , . . . , Ak−1 r0 ] para todo m ≥ k. La iteración de Arnoldi es equivalente (desde el punto de vista estrictamente algebraico) a aplicar el proceso de Gram-Schmidt a la matriz de Krylov 2 Kn = r0 Ar0 A r0 · · · n−1 A r0 para obtener su descomposición QR, Kn = Vn Rn Esta matriz Vn sería la misma que la producida por el método de Arnoldi. La diferencia (muy importante) es que en el proceso de Arnoldi no se forma explícitamente la matriz Kn . Formar esta matriz (con el costo de almacenamiento que eso conllevaría), y luego aplicarle GramSchmidt a sus columnas, sería un algoritmo muy inestable puesto que, por lo visto en el curso sobre el método de las potencias, la sucesión r0 , Ar0 , A2 r0 , etc. converge (salvo productos por constantes) a un vector propio asociado al valor propio dominante de A. En consecuencia, a medida que n aumenta, las columnas de Kn tienden a ser “más linealmente dependientes” entre sí, haciendo de Kn para n grande, una matriz muy mal condicionada. Y es bien sabido que el algoritmo clásico de Gram-Schmidt, cuando la matriz A es mal condicionada, sufre de pérdida de ortogonalidad, es decir las columnas de Q en la descomposición A = QR, no son realmente ortogonales. 12 2.1.2. Pseudocódigo de GMRES(m) La iteración de Arnoldi explicada en la subsección anterior es el núcleo del algoritmo GMRES, presentado en [3] por Yousef Saad y Martin H. Schultz (1986). En el paso n, la solución se construye como xn = x0 + zn , donde zn = arg kb − A(x0 + z)k2 = arg mı́n z∈Kn (A,r0 ) kr0 − Azk2 mı́n z∈Kn (A,r0 ) (2.16) Aquí A y b son los de 2.1, que pueden considerarse la matriz y el vector independiente, respectivamente, ya precondicionados. La recurrencia de Arnoldi permite encontrar una base ortob b normal {v1 , . . . , vn } → − Kn (A, r0 ) a partir de la base ortonormal {v1 , . . . , vn−1 } → − Kn−1 (A, r0 ) calculada en la iteración anterior. Por tanto, zn = β1 v1 + β2 v2 + · · · + βn vn , βi ∈ F (2.17) Llamando β1 β2 n×1 yn = , .. ∈ F . βn Vn = v1 v2 · · · vn se puede reescribir 2.17 vectorialmente como: zn = Vn yn (2.18) La iteración de Arnoldi, como se describió antes, también produce una matriz H̃n de tamaño (n + 1) × n satisfaciendo 2.10, o sea, AVn = Vn+1 H̃n . En consecuencia, kr0 − Azn k2 = kr0 − AVn yn k2 (2.19) = kr0 − Vn+1 H̃n yn k2 (2.20) Por otra parte, r0 = kr0 k2 v1 (puesto que v1 fue elegido como r0 normalizado) y a su vez v1 es la primera columna de Vn+1 , es decir, v1 = Vn+1 e1 , donde e1 = (1, 0, . . . , 0)H ∈ F(n+1)×1 . Estas dos observaciones permiten reescribir 2.20 como kr0 − Azn k2 = Vn+1 (kr0 k2 e1 − H̃n yn ) = kr0 k2 e1 − H̃n yn 2 puesto que para cualquier x ∈ F(n+1)×1 , se tiene kVn+1 xk2 = (Vn+1 x)H Vn+1 x H = xH Vn+1 Vn+1 x = xH In+1 x = kxk22 13 2 (2.21) (2.22) H V 6 (Vn+1 n+1 = In+1 porque las columnas de Vn+1 son ortonormales ). En resumida cuenta, en cada iteración, para hallar xn debe resolverse yn = arg mı́n y∈Fn×1 kr0 k2 e1 − H̃n y 2 (2.23) Esto es un problema de mínimos cuadrados de tamaño n.7 Una vez resuelto, se toma: zn = Vn yn , xn = x0 + zn Como se puede ver, el algoritmo necesita almacenar las matrices Vn y H̃n (así como otras estructuras auxiliares necesarias para resolver el problema de mínimos cuadrados). Estas matrices aumentan de tamaño en la medida que n crece; por ejemplo, en cada iteración es necesario almacenar un nuevo vector de Arnoldi. Se puede decir que el costo de almacenamiento crece de forma lineal con el número de iteraciones. Por esta razón, en la práctica, suele emplearse una variante de GMRES, que reinicia las estructuras de datos cada cierto número de pasos utilizando como solución inicial la calculada hasta ese momento. Ese procedimiento se conoce como Restarted GMRES o GMRES(m) donde m es la cantidad de iteraciones por ciclo. Es el algoritmo 2. 6 In+1 representa la matriz identidad de tamaño (n + 1) × (n + 1). En https://en.wikipedia.org/wiki/Generalized_minimal_residual_method, en la sección 5 del artículo, se explica cómo se resuelve este problema de mínimos cuadrados. Esencialmente se calcula la descomposición QR de la matriz H̃n y existen unas consideraciones de eficiencia (expuestas en el paper original de los creadores [3]), para calcular de forma “barata” la descomposición QR de H̃n en base a la descomposición QR de H̃n−1 , de la iteración anterior. 7 14 Algoritmo 2 Algoritmo GMRES(m), adaptado de [4] Entrada: A ∈ FN ×N , b ∈ FN ×1 , x0 (estimador inicial), m (cantidad de iteraciones por ciclo), maxit (número máximo de iteraciones), tol (umbral de tolerancia) Salida: Solución aproximada x̃ de Ax = b 1: i = 0 (contador global de iteraciones) 2: Inicializar: ri = b − Axi , v1 = ri /kri k2 , V1 = v1 3: para n = 1, . . . , m hacer 4: Incrementar el contador: i = i + 1 5: Ortogonalizar: v̂n+1 = Avn − Vn hn , donde hn = VnH Avn 6: Normalizar: vn+1 = v̂n+1 /kv̂n+1 k2 # " h i Hn−1 hn , donde la primera colum7: Actualizar: Vn+1 = Vn vn+1 , Hn = 0 kv̂n+1 k2 na se omite cuando n = 1 8: Resolver el problema de mínimos cuadrados: yn = arg mı́n kri−n ke1 − Hn y y 9: 10: 11: 12: 13: 14: 15: Construir la solución aproximada: xi = xi−n + Vn yn Actualizar el residuo: ri = b − Axi si i = maxit o kri k2 ≤ tol ∗ kbk2 entonces devolver x̃ = xi fin si fin para Borrar estructuras de datos complementarias e ir al paso 2. 2.2. 2.2.1. Reciclado en subespacios de Krylov Idea general Como se vio en la sección anterior, el método GMRES necesita almacenar una base ortonormal de subespacios de Krylov crecientes K1 ⊂ K2 ⊂ . . . ⊂ Kn ⊂ . . . y por tanto, a medida que el número de iteraciones aumenta, el costo computacional y de memoria se vuelve excesivo. La manera obvia de atacar este problema es la de reiniciar GMRES cada cierto número de iteraciones m. Sin embargo, esta estrategia adolece de un problema. Supongamos que GMRES(m) se reinicia habiendo progresado muy poco. En consecuencia, el método se reinicia con un residuo que es casi igual al del ciclo anterior por tanto GMRES(m) explora en este siguiente ciclo un espacio de búsqueda casi coincidente con el espacio de búsqueda de 15 los anteriores m pasos. Como la solución óptima de ese espacio de búsqueda ya fue calculada, esto conduce a una convergencia muy lenta o incluso al estancamiento. En este contexto, es natural plantearse si no existe alguna manera de conservar una parte del subespacio de Krylov calculado al término de la última iteración de un ciclo, en la primera iteración del ciclo siguiente, de manera de acelerar la convergencia tras el reinicio. Por eso la literatura habla de “reciclar” parte de un subespacio de Krylov. Esta misma técnica puede ser aplicada para resolver una secuencia de sistemas lineales A(i) x(i) = b(i) , i = 1, 2, . . . (2.24) donde la matriz A(i) ∈ FN ×N y el vector independiente b(i) ∈ FN ×1 cambian de un sistema al siguiente, y a menudo ni siquiera están disponibles en forma simultánea. Se puede reducir el costo de resolver estos sistemas “reciclando” parte del subespacio de Krylov entre resoluciones lineales consecutivas. Pero originalmente la técnica de reciclado de subespacios de Krylov fue desarrollada para la aplicación entre ciclos de un mismo sistema lineal (GMRES(m)) para evitar recomputar prácticamente el mismo subespacio recurrente luego del reinicio. Se explicará primero cómo funciona el reciclado entre ciclos de GMRES(m) y luego cómo se aplicaría entre sistemas lineales consecutivos de una secuencia como en 2.24. En términos generales, la idea de reciclado de subespacios de Krylov es: (1) Computar el subespacio a reciclar de manera eficiente (y en base a algún criterio) al pasar de un sistema lineal al próximo (o de un ciclo a otro, en el caso que se tenga un único sistema lineal como en GMRES(m)). (2) Mejorar la tasa de convergencia del método iterativo iterando de manera que los residuos rn sean ortogonales a dicho subespacio (para evitar lo máximo posible recorrer espacios de búsqueda ya explorados). Hay dos preguntas importantes asociadas con el tema de reciclado: I Cómo seleccionar el subespacio a ser reciclado. II Cómo se usa dicho subespacio en el método de Krylov correspondiente. Las respuestas a estas preguntas varían dependiendo del método de Krylov del que se trate. En la subsección siguiente, se detalla el punto II para el caso de métodos del tipo GMRES. 2.2.2. Reciclado en GMRES: rGCROT/rGCRO-DR rGCROT y rGCRO-DR son dos algoritmos de reciclado de subespacios de Krylov basados en GMRES, y tienen la misma estructura en el sentido de que manejan el subespacio reciclado (en la “mecánica” del algoritmo) exactamente de la misma forma (véase el algoritmo 3). 16 Algoritmo 3 rGCROT(m, k)/rGCRO-DR(m,k), extraído de [5] 1: Elegir x̂; computar r̂ = b − Ax̂, kbk2 , e inicializar i = 0 2: Elegir/Dada U , computar C̃ = AU y C̃ = CR (descomposición QR reducida) 3: ξ = C H r̂; r0 = r̂ − Cξ; ρ0 = kr0 k2 ; x0 = x̂ + U (R−1 ξ) 4: Elegir tol, m y maxit 5: mientras ρi > tol ∗ kbk2 y i ≤ maxit hacer 6: v1 = ri /ρi 7: para j = 1, . . . , m hacer 8: vj+1 = Avj ; i = i + 1 9: para l = 1, . . . , k hacer H 10: bl,j = cH l vj+1 ; vj+1 = vj+1 − cl bl,j // vj+1 = vj+1 − CC vj+1 11: fin para 12: para l = 1, . . . , j hacer 13: hl,j = vlH vj+1 ; vj+1 = vj+1 − vl hl,j 14: fin para 15: hj+1,j = kvj+1 k2 ; vj+1 = vj+1 /hj+1,j 16: fin para // AVm = CB + Vm+1 H̃m (Arnoldi ampliada) 17: Resolver y = arg mı́nỹ∈Fm×1 ke1 ρi−m − H̃m ỹk2 18: z = −By // B = (bl,j ) 19: xi = xi−m + Vm y 20: xi = xi − U (R−1 z) 21: ri = b − Axi ; ρi = kri k2 22: Actualizar U y C como se quiera 23: fin mientras Sea U ∈ KN ×k tal que Im(U ) es el subespacio que se desea reciclar (este subespacio tiene a lo sumo dimensión k y es el generado por las columnas de U ). Se asume que U se obtuvo de un ciclo previo de GMRES(m) o de la resolución de un sistema lineal anterior en una secuencia como 2.24. Basados en el teorema 2.1, el residuo en la iteración j de GMRES es minimizado cuando rj ⊥ AKj (A, r0 ). Además, por lo comentado anteriormente, se desea que rj sea ortogonal a AU . Primero, se computa C̃ = AU y se halla su descomposición QR, C̃ = CR donde C N ×k cumple C H C = Ik y R ∈ Fk×k es triangular superior. Al hacer ξ = C H r̂ y r0 = r̂ − Cξ, lo cual es equivalente a r0 = (IN − CC H )r̂, se está ortogonalizando el residuo inicial r̂ con respecto a Im(C). Entonces el algoritmo arranca con una aproximación inicial x̂ 17 y un residuo inicial r̂ cuya relación es r̂ = b − Ax̂ A continuación, modifica con cierto criterio r̂ (toma la componente ortogonal al subespacio Im(C)) y lo transforma en r0 . En consecuencia, debe actualizar en forma acorde el estimador inicial. Llamando x0 al valor actualizado de x̂, debe hallarse x0 tal que b − Ax0 = r0 Observar que b − Ax0 = r0 = r̂ − CC H r̂ = (b − Ax̂) − CC H r̂ luego Ax0 = Ax̂ + CC H r̂ (2.25) pero como AU = CR entonces AU R−1 = C y sustituyendo en 2.25, Ax0 = Ax̂ + AU R−1 C H r̂ = A(x̂ + U R−1 C H r̂) luego x0 = x̂ + U R−1 C H r̂ = x̂ + U R−1 ξ (2.26) que es la fórmula que aparece en el pseudocódigo. De esta manera, se ha tomado r0 , v1 de manera tal que r0 , v1 ⊥ Im(C) A continuación, se ortogonaliza vj+1 con respecto a las columnas de C antes de ortogonalizarse con respecto a v1 , . . . , vj . Esto produce Vm+1 ⊥ Im(C) satisfaciéndose la relación de Arnoldi ampliada, AVm = CB + Vm+1 H̃m , donde B = C H AVm (2.27) también escrita como (IN − CC H )AVm = Vm+1 H̃m 18 (2.28) En consecuencia, se aproxima el próximo residuo en un espacio, Im(Vm+1 H̃m ), que en efecto es ortogonal con respecto al subespacio Im(C). De esta manera, gracias a la relación de Arnoldi ampliada, todos los residuos en un ciclo dado se toman ortogonales a Im(C). La actualización óptima de la solución (que se toma en el espacio Im(U ) + Im(Vm )) conduce a un problema de mínimos cuadrados modificado (en relación a GMRES). Se tiene xm = x0 + Vm y + U R−1 z ⇒ rm = r0 − AVm y − Cz (2.29) ya que rm = b − Axm = b − A(x0 + Vm y + U R−1 z) = (b − Ax0 ) − AVm y − AU R−1 z = r0 − AVm − Cz puesto que C = AU R−1 . Si en la expresión para el residuo de 2.29 se impone la recurrencia de Arnoldi 2.27, el problema de mínimos cuadrados queda: (y, z) = arg mı́n ỹ∈Fm×1 ,z̃∈Fk×1 Vm+1 (kr0 k2 e1 − H̃m ỹ) − C(B ỹ + z̃) 2 (2.30) Se puede minimizar por un lado la componente Vm+1 (análoga a GMRES) y luego la componente C. La última se minimiza tomando z = −By (ya que aquí se anula la norma). Si el subespacio “recurrente” se mantiene aproximadamente constante de un ciclo a otro (o de un sistema al siguiente), esta técnica de reciclado resulta ser muy efectiva. El costo adicional sería esencialmente el de tener que ortogonalizar vm+1 con respecto a las columnas de C. Comparado con GMRES(m), incluso podría requerir menos memoria ya que m podría ser mucho menor, mientras que el número de columnas de U y C suele ser modesto. Hasta aquí se ha explicado cómo se usa el subespacio reciclado en la mecánica del algoritmo, pero no se ha dicho ni una palabra sobre cómo se elige Im(U ), y es en este punto donde difieren GCROT y GCRO-DR. De hecho, en el algoritmo 3 se asume U “dada” o “elegida” de alguna manera que no se especifica cuál es. Como abordar los dos enfoques extendería demasiado el presente informe, se explicará más en detalle cómo hace GCROT. En el caso de GCRODR, se dirá solamente que aproxima un subespacio invariante para reciclar entre iteraciones, empleando técnicas que involucran vectores de Ritz. 19 Para el caso de GCROT, llámese rm al residuo al cabo de m iteraciones. Considérese s < m y llámese rs al residuo al cabo de s iteraciones. Ahora supóngase que se reinicia el método al finalizar la iteración s y se emplea como residuo inicial a rs . Se deja correr el algoritmo y se completan m − s iteraciones. Llámese r al residuo obtenido tras completarse estas iteraciones. Lo mejor que podría ocurrir es que krk2 = krm k2 pero en general, krk2 ≥ krm k2 . ¿Por qué? Obsérvese que en el método sin reiniciar se computaron los residuos rs+i , con 1 ≤ i ≤ m − s para que fuesen ortogonales a AKs+i (A, r0 ) (por lo visto en el teorema 2.1) y por tanto para que fuesen ortogonales a AKs (A, r0 ) puesto que Ks ⊂ Ks+i , ∀i. En el método reiniciado a la iteración s, en cambio, los residuos subsiguientes no se calculan para que sean ortogonales a AKs (A, r0 ), es decir la ortogonalidad de los residuos con respecto a AKs (A, r0 ) se pierde, enlenteciendo la convergencia. Pues bien, GCROT preserva un subespacio tal que la pérdida de ortogonalidad con respecto al subespacio descartado es la menor posible. La desviación (con respecto al óptimo) al reiniciar el método en la iteración s es e = r − rm que es lo que se llama error residual. “Truncar” el subespacio de Krylov de manera óptima implica seleccionar (y retener) un subespacio k-dimensional de AKs (A, r0 ) tal que la magnitud del error residual kek2 = kr − rm k2 sea mínima. Esto depende de los ángulos principales entre AKs (A, r0 ) y AKm−s (A, rs ) (por detalles, véase [6]). 2.2.3. Aplicación del reciclado a secuencias de sistemas lineales De nuevo, se explicará cómo se procede en el caso de GCROT; en el caso de GCRO-DR hay un procedimiento análogo muy similar. GCROT mantiene matrices Uk y Ck satisfaciendo8 : AUk = Ck CkH Ck = Ik (2.31) (2.32) La idea es cómo traspasar la matriz Uk del sistema i-ésimo al sistema (i + 1)-ésimo. 8 En el algoritmo 3 se tenía C̃ = AU pero C̃ no cumplía la condición de tener sus columnas ortonormales. Por eso se descomponía C̃ = CR donde ahora sí C H C = Ik luego CR = AU ⇒ Se puede considerar Uk = U R−1 . 20 C = A(U R−1 ) Después que se resuelve el sistema i-ésimo, se tiene la relación A(i) Uk = Ck . Se deben modificar Uk y Ck de manera tal que las identidades 2.31 y 2.32 sigan cumpliéndose con respecto a A(i+1) . Esto se logra de la siguiente manera: 1: [Q, R] = descomposición QR reducida de A(i+1) Ukold 2: Cknew = Q 3: Uknew = Ukold R−1 De esta forma, A(i+1) Uknew = A(i+1) Ukold R−1 = Q = Cknew y se procede con GCROT en el sistema A(i+1) x(i+1) = b(i+1) En muchos casos, computar A(i+1) Ukold es mucho más barato que hacer k multiplicaciones matriz-vector, pues A(i+1) Ukold = A(i) + ∆A(i) Ukold = A(i) Ukold + ∆A(i) Ukold = Ckold + ∆A(i) Ukold O sea, en realidad basta computar ∆A(i) Ukold , pero si A(i) ≈ A(i+1) entonces ∆A(i) será una matriz llena de ceros (mucho más dispersa que A(i) ), por lo que pueden realizarse optimizaciones. Si A(i+1) ≈ A(i) entonces el uso de Uknew ayudará significativamente a mejorar la convergencia en la resolución del sistema (i + 1)-ésimo. 21 3. Principales trabajos en la materia A continuación se listan los principales trabajos académicos sobre reciclado de subespacios de Krylov. 3.1. Recycling Krylov Subspaces for Sequences of Linear Systems (2004) Por detalles, véase [7]. 3.1.1. Breve reseña Éste es un paper clásico en la materia (infaltable en la bibliografía de casi todos los trabajos posteriores). Uno de sus autores es Eric de Sturler9 , uno de los investigadores más prolíficos en esta área. Para varios problemas tomados de la física/ingeniería (cuya resolución implica, en algunos casos, hallar la solución de una secuencia de sistemas lineales como 2.24), demuestra que se puede reducir la cantidad de iteraciones a la mitad. Esto lo consigue mediante dos enfoques diferentes: rGCROT y rGCRO-DR, que fueron esencialmente los explicados en la sección de fundamentos teóricos del presente informe. Los problemas usados como ejemplo fueron: Fatiga y fractura de materiales: Estudio de propagación del agrietamiento por fatiga en un plato metálico 2D. Estructura electrónica: Cálculos basados en la ecuación de Schrödinger para predecir propiedades físicas clave de sistemas de materiales con un gran número de átomos. Se consideraron sistemas resultantes de aplicar el método KKR.10 QCD: Problema de cromodinámica cuántica.11 Convección-difusión: Consiste en resolver la ecuación en derivadas parciales12 uxx + uyy + cux = 0 en [0, 1] × [0, 1] con condiciones de borde u(x, 0) = u(0, y) = 0 u(x, 1) = u(1, y) = 1 9 https://en.wikipedia.org/wiki/Eric_de_Sturler https://en.wikipedia.org/wiki/Korringa-Kohn-Rostoker_method 11 https://en.wikipedia.org/wiki/Quantum_chromodynamics 12 https://en.wikipedia.org/wiki/Convection-diffusion_equation 10 22 Para ello, se “discretiza” el dominio convirtiéndolo en una malla de puntos. Se tomó h = 1/41 como distancia entre los puntos tanto en el eje x como en eje y resultando una matriz 1600 × 1600. Cuando c = 0 se da el caso simétrico y cuando c 6= 0 se da el caso no simétrico. De estos 4 problemas, el más importante es el primero. A continuación se muestra una tabla comparativa con los resultados: Productos matriz-vector Método GMRES(40) GMRES-DR(40,20) GCROT(40,34,30,5,1,2) CG GMRES rGCROT(40,34,30,5,1,2) rGCRO-DR(40,20) 27188 14305 14277 14162 14142 7482 6901 Cuadro 1: Tabla comparativa de los diferentes algoritmos para el problema de fatiga y fractura de materiales. 3.1.2. Conclusión Como se puede ver en la tabla 1, los métodos que implementan reciclado, demandan una cantidad de productos matriz-vector que es aproximadamente la mitad de los métodos que no emplean reciclado, lo que habla de la importancia de esta técnica para acelerar la convergencia. Y el desempeño supera ampliamente al del método GMRES, uno de los más empleados en la práctica. Otra conclusión a la que arribaron es que aún no se entiende del todo cómo afecta a la convergencia la selección del subespacio a reciclar. Para el último ejemplo, el de la ecuación en derivadas parciales de convección-difusión, en el caso c 6= 0, GCRO-DR y rGCRO-DR llevaron aproximadamente la misma cantidad de productos matriz-vector (es decir, la técnica de reciclado no mejoró el desempeño). En cambio sí hubo una mejora significativa al pasar de GCROT a rGCROT. El autor desconoce la causa de este fenómeno. 3.2. Recycling Krylov subspaces for efficient large-scale electrical impedance tomography (2010) Por detalles, véase [8]. 23 3.2.1. Breve reseña El responsable de este trabajo es Luis Augusto Motta Mello, brasilero de la Universidad de San Pablo, y de los restantes tres coautores, dos son brasileros (uno de ellos residente en EEUU), y el faltante, que figura segundo13 , es Eric de Sturler (el mismo que fue mencionado antes por ser coautor del artículo anterior). El propósito de esta superflua observación es remarcar las cuantiosas contribuciones de este PhD en matemática aplicada (de origen holandés), a este tema en concreto (el de reciclado de subespacios de Krylov). La Tomografía de Impedancia Electrónica (EIT, por Electrical Impedance Tomography, en inglés) es una técnica de imagenología médica que infiere imágenes de las partes internas de un cuerpo a partir de mediciones eléctricas de su superficie. Para esto, se unen electrodos conductores a la piel de la persona y se aplican corrientes alternas de baja intensidad a algunos o a todos los electrodos, y los potenciales eléctricos resultantes son medidos. Luego, en base a las mediciones, un algoritmo de estimación obtiene la distribución tridimensional de admitancia interna que corresponde a la imagen. Uno de los objetivos principales es alcanzar una resolución alta a bajo costo computacional. Cuando se emplea el método de los elementos finitos y la malla correspondiente es redefinida para incrementar la resolución, el costo computacional aumenta considerablemente. En este marco, se presenta un método iterativo basado en reciclar subespacios aproximadamente invariantes (de subespacios de Krylov) que consigue reducir el tiempo de cómputo para una malla con una cantidad creciente de puntos, y producir así una imagen 3D de alta resolución. El algoritmo empleado es básicamente RMINRES (variante que emplea reciclado de MINRES) adaptado al contexto, es decir, con varios ajustes hechos “a la medida” de este problema en concreto. Asimismo se propone un poderoso precondicionador. El artículo incluye un pseudocódigo muy detallado del algoritmo propuesto. 3.2.2. Conclusión La variante de RMINRES implementada condujo a una reducción significativa del costo computacional. Se observó también que RMINRES es más rápido que MINRES y que CG. De cara al futuro, se planteaba la posibilidad de paralelizar la solución a las ecuaciones de elementos finitos para acelerar el proceso de optimización todavía más, así como considerar otros precondicionadores. 13 Después del primer autor, los autores subsecuentes suelen ser ordenados según su contribución a la investigación, empezando por el que contribuyó más y finalizando con el que menos. 24 3.3. Recycling BiCG with an Application to Model Reduction (2010) Por detalles, véase [9]. 3.3.1. Breve reseña Los dos primeros autores, Kapil Ahuja y Eric de Sturler, son los mismos (incluso en el mismo orden) que en [7]. El último ha aparecido como autor en todos los trabajos analizados hasta el momento. Este paper se centra en resolver una secuencia de sistemas lineales duales: A(i) x(i) = b(i) , A(i)H x̃(i) = b̃(i) , ∀i = 1, 2, . . . donde A(i) ∈ Cn×n y b(i) , b̃(i) varían con i, las matrices A(i) son grandes y dispersas, la solución del sistema dual es relevante y el cambio de un par de sistemas al siguiente es pequeño. El método del gradiente biconjugado (BiCG) ha demostrado ser ventajoso para sistemas con estas características. Los autores proponen adaptar BiCG para que emplee la técnica de reciclado (con el propósito de mejorar aún más el desempeño), y llaman al algoritmo resultante rBiCG (Recycling BiCG). Esencialmente, recicla dos subespacios de Krylov de un par de sistemas lineales duales, para el siguiente. La técnica para incorporar reciclado a BiCG sienta las bases para desarrollar variantes (que implementen reciclado) de otros algoritmos del tipo bi-Lanczos, como CGS, BiCGSTAB, QMR y TFQMR. A nivel teórico, introducen un algoritmo bi-Lanczos ampliado y una relación de recurrencia de dos términos (de orden dos) modificada para incluir el reciclado en cada iteración. Los subespacios reciclados son aproximadamente subespacios invariantes por izquierda y por derecha correspondientes a los valores propios más cercanos al origen, y son determinados resolviendo un problema de valores propios a la vez que se resuelven los sistemas duales de la secuencia. El flamante algoritmo rBiCG es estrenado para abordar los siguientes problemas: Convección-difusión: Se resuelve una ecuación en derivadas parciales del tipo conveccióndifusión una vez discretizada. Reducción de modelos: La reducción de modelos es un procedimiento matemático que tiene como propósito simplificar el modelo analítico de un sistema; esto es, encontrar otro (cuya dimensión sea mucho menor), que presente un comportamiento similar al del modelo original. De esta manera, trabajando sobre el modelo simplificado, se pueden obtener resultados (que no difieren sustantivamente de aquellos que se obtendrían con el modelo sin simplificar), en un menor tiempo de ejecución y con un consumo de recursos de cómputo mucho más modesto. Para llevar a cabo esta reducción de modelos se em- 25 plea el algoritmo IRKA (Iterative Rational Krylov Algorithm), que implica resolver una secuencia de sistemas lineales duales muy lentamente cambiante. 3.3.2. Conclusión Se demostró la utilidad de rBiCG para reducción de modelos usando IRKA, constituyendo un nicho importante para este solucionador. Asimismo se demostró la efectividad de rBiCG para sistemas no simétricos (resultantes de la ecuación en derivadas parciales del problema de convección-difusión). 3.4. Recycling Krylov subspaces for CFD applications and a new hybrid recycling solver (2015) Por detalles, véase [5]. 3.4.1. Breve reseña Este paper, a mi juicio, es uno de los que tiene mejor introducción teórica. Uno de los autores es, de nuevo, Eric de Sturler. Se abordan dos problemas de dinámica de fluidos14 que involucran resolver las ecuaciones de Navier-Stokes para el caso incompresible: 1. Flujo turbulento a través de un canal. 2. Flujo a través de medios porosos. Para este tipo de problemas, es común emplear métodos precondicionados basados en subespacios de Krylov; en particular, BiCGStab y GMRES(m) son usados para el caso de sistemas no simétricos. El primero es popular porque sus iteraciones tienen bajo costo pero puede fallar en caso de problemas inestables, especialmente si arranca con un estimador inicial muy alejado de la solución. GMRES(m) es mucho más robusto pero la reinicialización puede conducir a una convergencia muy lenta. En consecuencia, se evalúa el método rGCROT para estos sistemas. Este método, como se describió en la sección teórica, recicla un subespacio luego de cada reinicialización, mejorando drásticamente la convergencia con respecto a GMRES(m). El reciclado también es ventajoso para sistemas lineales subsecuentes si la matriz cambia muy lentamente o es constante. No obstante, las iteraciones de rGCROT siguen siendo costosas en memoria y tiempo de cómputo (por la ortogonalización) en comparación con las de BiCGStab. En consecuencia, en este paper se propone un solucionador híbrido que combina las iteraciones 14 CFD significa Computational fluid dynamics o “Dinámica de Fluidos Computacional” en español. 26 de bajo costo de BiCGStab con la robustez de rGCROT. Esencialmente, este solucionador emplea rGCROT para construir un subespacio efectivo de reciclaje, y luego recicla sucesivamente este mismo subespacio en la mecánica del solucionador rBiCGStab. Se evaluó rGCROT en el problema 1 y se evaluaron los dos (rGCROT y el método híbrido combinación de rGCROT y rBiCGStab) en el problema 2, observando una mejora en el desempeño significativa en ambos casos. 3.4.2. Conclusión Los solucionadores (basados en reciclado de subespacios de Krylov) rGCROT y rBiCGStab fueron testeados en el caso de dos importantes aplicaciones de Dinámica de los Fluidos Computacional que llevan a una secuencia de sistemas lineales, y se compararon con los solucionadores estándar GMRES(m) y BiCGStab. En el caso del problema 1, rGCROT tuvo mejor desempeño que ambos BiCGStab y GMRES(m) en términos de tiempo de ejecución y cantidad de productos matriz-vector. El algoritmo híbrido fue probado en el problema 2, siendo el que resultó más rápido de todos demandando una cantidad de operaciones matriz-vector moderada en comparación con BiCGStab, GMRES(m) y rGCROT. 3.5. Krylov Subspace Recycling for Fast Iterative Least-Squares in Machine Learning (2017) Por detalles, véase [10]. 3.6. Strategies For Recycling Krylov Subspace Methods And Bilinear Form Estimation (2017) Por detalles, véase [11]. 3.7. Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems (2018) Por detalles, véase [12]. 27 4. Paquetes de software 4.1. PETSc + HPDDM PETSc15 (Portable, Extensible Toolkit for Scientific Computation) es una colección de estructuras de datos y rutinas, desarrolladas por el Laboratorio Nacional Argonne, para facilitar la tarea de resolver de manera escalable (empleando programación paralela) aplicaciones científicas modeladas por ecuaciones en derivadas parciales. Emplea MPI (Message Passing Interface) para la comunicación mediante pasaje de mensajes. PETSc es la librería de software para ecuaciones en derivadas parciales y cálculos con matrices dispersas, de uso más difundido en el mundo. Entre las diferentes funcionalidades que provee, implementa una larga lista de solucionadores de sistemas lineales, entre los cuales se encuentran los métodos iterativos basados en subespacios de Krylov (véase figura 3). Figura 3: Soporte para métodos de Krylov de PETSc. Por su parte, HPDDM16 (que significa High-Performance Unified Framework for Domain Decomposition Methods) es una librería escrita en C++11 con MPI y OpenMP para paralelis15 16 https://www.mcs.anl.gov/petsc/ https://github.com/hpddm/hpddm 28 mo, que implementa de manera eficiente métodos de descomposición de dominios.17 La misma tiene soporte para métodos basados en reciclado de subespacios de Krylov (como rGCRO-DR). KSPHPDDM18 es una interfaz de PETSc que permite consumir métodos de HPDDM (véase figura 4). De esta manera, por ejemplo, con --download-hpddm, y las opciones en tiempo de ejecución -ksp_type hpddm, -ksp_hpddm_krylov_method gcrodr y -ksp_hpddm_recycle N, con N positivo, se estaría usando rGCRO-DR. Figura 4: Interfaz KSPHPDDM. 4.2. KryPy KryPy19 es un paquete de Python creado específicamente para metódos de Krylov (véase figura 5). Como se ve en la figura 6, este paquete proporciona métodos para las versiones con 17 https://en.wikipedia.org/wiki/Domain_decomposition_methods https://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/KSP/KSPHPDDM.html 19 https://krypy.readthedocs.io/en/latest/ 18 29 reciclado de CG, MINRES y GMRES. Figura 5: Página principal de KryPy. 30 Figura 6: Documentación de krypy.recycling. 31 5. Conclusión Se ha hecho un relevamiento de: (1) los trabajos más importantes relacionados al reciclado de subespacios de Krylov, y (2) los principales paquetes de software disponibles en la Web que implementan estos solucionadores. Asimismo el presente informe, desde el punto de vista matemático, pretender servir como una primera aproximación al tema, para que el eventual lector comprenda los principios básicos en los que se sustenta esta técnica. Como se puede ver por las fechas de los trabajos académicos relevados, hay mucha investigación reciente referida a la materia lo que habla por sí solo sobre la utilidad práctica de estas técnicas. Es un campo fértil para investigar en dos áreas: A nivel práctico, adaptando algoritmos existentes para incorporar reciclado y viendo en qué problemas de la realidad se pueden aplicar. A nivel teórico, estudiando cómo incide la selección del subespacio a reciclar en la tasa de convergencia. 32 Referencias [1] H. Van der Vorst, Iterative Krylov Methods for Large Linear Systems. Cambridge Monographs on Applied and Computational Mathematics, Cambridge University Press, 2003. [2] E. de Sturler, Iterative Methods on Distributed Memory Computers. PhD thesis, Delft University of Technology, Delft, the Netherlands, 1994. [3] Y. Saad and M. H. Schultz, “GMRES: A Generalized Minimal Residual Algorithm for Solving Nonsymmetric Linear Systems,” SIAM Journal on Scientific and Statistical Computing, vol. 7, no. 3, pp. 856–869, 1986. [4] I. Ipsen and C. Meyer, “The Idea Behind Krylov Methods,” The American Mathematical Monthly, vol. 105, no. 10, pp. 889–899, 1998. [5] A. Amritkar, E. de Sturler, K. Świrydowicz, D. Tafti, and K. Ahuja, “Recycling Krylov subspaces for CFD applications and a new hybrid recycling solver,” Journal of Computational Physics, vol. 303, pp. 222–237, 2015. [6] E. de Sturler, “Truncation Strategies for Optimal Krylov Subspace Methods,” SIAM Journal on Numerical Analysis, vol. 36, no. 3, pp. 864–889, 1999. [7] M. Parks, E. de Sturler, G. Mackey, D. Johnson, and S. Maiti, “Recycling Krylov Subspaces for Sequences of Linear Systems,” SIAM Journal on Scientific Computing, vol. 28, no. 5, pp. 1651–1674, 2004. [8] L. Mello, E. de Sturler, G. Paulino, and E. Silva, “Recycling Krylov subspaces for efficient large-scale electrical impedance tomography,” Computer Methods in Applied Mechanics and Engineering, vol. 199, no. 49-52, pp. 3101–3110, 2010. [9] K. Ahuja, E. de Sturler, S. Gugercin, and E. Chang, “Recycling BiCG with an Application to Model Reduction,” SIAM Journal on Scientific Computing, vol. 34, no. 4, pp. 1925– 1949, 2010. [10] F. Roos and P. Hennig, “Krylov Subspace Recycling for Fast Iterative Least-Squares in Machine Learning,” arXiv, 2017. [11] K. Świrydowicz, Strategies For Recycling Krylov Subspace Methods And Bilinear Form Estimation. PhD thesis, VT (Virginia Tech), 2017. Dissertation submitted to Virginia Tech in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Mathematics. 33 [12] H. Al Daas, L. Grigori, P. Hénon, and P. Ricoux, “Recycling Krylov subspaces and reducing deflation subspaces for solving sequence of linear systems,” tech. rep., RR-9206, Inria Paris, 2018. HAL Id: hal-01886546. 34