A Householder-based algorithm for Hessenberg-triangular reduction
a hyperparalel implementation

Luis Manuel Román García

ITAM

Investigación II

31 enero 2018

  • Intuición sobre el problema

  • Introducción a los reflectores de Householder

  • Observaciones intersantes

  • Futuros pasos

  •  

Contenido

Contenido

Intuición sobre el problema

Supongamos que queremos resolver el siguiente problema:

Intuición sobre el problema

Ax = \lambda xB
Ax=λxBAx = \lambda xB

y resulta que B es trinagular superior, i.e. 

b_{ij} = 0; \quad i > j
bij=0;i>jb_{ij} = 0; \quad i > j

El problema que intentaremos resolver es pasar a A a una forma Hessenberg sin perder la estructura de B

Decimos que A está en forma Hessenberg si

a_{ij} = 0; \quad i > j +1
aij=0;i>j+1a_{ij} = 0; \quad i > j +1

Intuición sobre el problema

(A, B) =                       ,                                               ,

¿Cuál es el problema? 

 

Que todo lo que se hace de un lado de la ecuación se tiene que hacer del otro lado ¿cómo transformar a A sin perder B?

Intuición sobre el problema

(A, B) =                       ,                                               ,

¿siguiente problema?

Pasar de Hessenberg a semidiagonal... matemáticamente, no existe un método que termine en un número finito de pasos (teoría de Galois)

Introducción a los reflectores de Householder

Imaginemos que quisieramos resolver una versión  más simple del problema en cuestión: 

Introducción a los reflectores de Householder

Ax = b
Ax=bAx = b

¿Cuáles serian nuestras opciones?

  • Factorización LU con pivoteo
  • Gram Schmidt
\approx \frac{n^3}{3}
n33\approx \frac{n^3}{3}
\approx n^3
n3\approx n^3
  • Rotaciones de Givens
  • Reflexiones de Householder
\approx \frac{4n^3}{3}
4n33\approx \frac{4n^3}{3}
\approx \frac{2n^3}{3}
2n33\approx \frac{2n^3}{3}

Para este problema usaremos los reflectores de Householder, aprovechando que tienen una propiedad curiosa... pero antes un reflector de Householder es un operador lineal ortogonal que tiene la siguiente propiedad:

Introducción a los reflectores de Householder

R_ix = \alpha e_i
Rix=αeiR_ix = \alpha e_i

Con 

R_i = I - 2 \frac{uu^*}{u^*u}
Ri=I2uuuuR_i = I - 2 \frac{uu^*}{u^*u}

La propiedad curiosa es que un reflector por la izquierda para la inversa de una matriz B, es un reflector por la derecha para la misma matriz.

Introducción a los reflectores de Householder

RB^{-1}e_i = \alpha e_i \Rightarrow BRe_i = \frac{1}{\alpha}e_i
RB1ei=αeiBRei=1αeiRB^{-1}e_i = \alpha e_i \Rightarrow BRe_i = \frac{1}{\alpha}e_i

Luego, nuestro problema se reduce a resolver de manera eficiente

Bx = e_i
Bx=eiBx = e_i

Observaciones Interesantes

  • Las reflexiones de Householder pueden ser acumuladas en matrices para aprovechar la posible paralelización.

  • Hasta ahora sólo he visto implementaciones con soluciones cerradas del sistema lineal ¿algún proceso iterativo funcionará?

  • Ya no se trabajará con GPUs si no con una tarjeta multiprocesador de bajo costo llamada Parallella

Observaciones interesantes

Futuros pasos

deck

By Luis Roman

deck

  • 801