Sie sind auf Seite 1von 8

Algoritmo Spike

Steban Cadena Giraldo 1670129


Néstor Cardona Campo 1529933
Julián Andrés Campiño 1226070

Febrero-Junio 2018.

Universidad del Valle


Escuela de Ingeniería de Sistemas y Computación
Análisis y métodos numéricos.

1
CONTENIDO

1.INTRODUCCIÓN…………………………….………………………….....................3
2.MARCOTEÓRICO………………………………………………........…………….....4
3.1 MATRICES CON BANDA.......................................................................4
3. ALGORITMO SPIKE...........................................................................................5
4.1 ETAPA DE PRE-PROCESAMIENTO.................................................. ..5
4.1.1 PARTICION.............................................................................. 5
4.1.2 FACTORIZACIÓN.................................................................... 6
4.2 ETAPA DE POST-PROCESAMIENTO...................................................6
4.MÉTODO..............................................................................................................7
5.1 POLIALGORITMO..................................................................................7
5.CONCLUSIONES.................................................................................................8
6.BIBLIOGRAFÍA....................................................................................................8

2
1. INTRODUCCIÓN

En este documento se presentará una descripción del algoritmo Spike para computación
paralela y como es utilizado en la resolución de matrices de tipo banda-estrecha. Se
presentarán características sobre el algoritmo básico, cuya idea, que data de 1978, está basada
en una técnica de divide y conquistaras que involucra dos etapas: pre-procesamiento y post-
procesamiento que a su vez también se dividen en algunos pasos. Las matrices con las que
vamos a trabajar, que son los sistemas de ecuaciones lineales con banda, son utilizados en
muchas áreas de la ingeniería, tales como la mecánica computacional y la nanoelectrónica
computacional. Estas aplicaciones suelen dar lugar a sistemas lineales de banda estrecha muy
grandes, por lo que es pertinente desarrollar algoritmos paralelos que sean robustos y
eficaces.

3
2.MARCO TÉORICO

2.1 MATRICES CON BANDA

Antes de hablar del algoritmo en sí, debemos hablar primero del tipo de matrices que serán
usadas, y ese tipo de matrices son las matrices con banda.

Una matriz banda o matriz con banda, se refiere a toda matriz cuyos valores no nulos se
encuentran en su diagonal principal y en cada uno de sus costados.

Sea una matriz cuadrada 𝐴 𝑛𝑥𝑛, para ser una matriz banda debe cumplir con la siguiente
condición:

𝑎𝑖𝑗 = 0 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 |𝑖 − 𝑗| > 𝛽

Siendo 𝛽 ≪ 𝑛 , 𝛽 el ancho de la banda.

Figura 1. Ilustramos una matriz 𝑇 𝑛𝑥𝑛 con un 𝛽 = 1.

4
3. EL ALGORITMO SPIKE

Vamos a considerar n sistema de ecuaciones lineales con banda de la forma 𝐴𝑥 = 𝐹 con 𝐴


una matriz 𝑛𝑥𝑛 y un ancho de banda 𝛽 < 𝑛.

Este algoritmo se divide em dos etapas, que son las etapas de preprocesamiento y la etapa
de post-procesamiento

3.1 ETAPA DE PREPROCESAMIENTO


Esta etapa también está divida en dos partes que son:

3.1.1 PARTICIONAMIENTO
Esta etapa consiste en particionar el sistema original en diferentes procesadores.

Cualquier sistema de ecuaciones lineales con banda puede ser particionado en un bloque de
la forma tridiagonal. Supongamos que p es el número de bloques diagonales, entonces
tenemos bloques diagonales con bandas 𝐴𝑗 (𝑗 = 1, … , 𝑝) de orden 𝑛𝑗 y por cada partición 𝑗
𝐵𝐽 (𝑗 = 1, … , 𝑝 − 1) y 𝐶𝑗 (𝑗 = 2, … , 𝑝) tenemos matrices de acoplamiento asociadas con los
bloques super-diagonales y sub-diagonales respectivamente.

Figura 2. Ejemplificando la partición con 𝑝 = 4

5
3.1.2 FACTORIZACIÓN

Para está etapa, supondremos que cada matriz 𝐴𝑗 es no singular, entonces 𝐴 podría ser
factorizada como 𝐴 = 𝐷𝑆 donde 𝐷 es una matriz diagonal por bloques, que consiste en los
bloques diagonales 𝐴𝑗

𝐷 = 𝑑𝑖𝑎𝑔(𝐴1 , … , 𝐴𝑝 )
Y una matriz 𝑆 llamada Spike, de aquí el nombre del algoritmo, en donde llamaremos
𝑉𝑗 (𝑗 = 1, … , 𝑝 − 1) y 𝑊𝑗 (𝑗 = 2, … , 𝑝) , los spikes derecho e izquierdo respectivamente,
calculados de la siguiente manera

0 𝐶
𝐴𝑗 𝑉𝑗 = [𝐵 ] 𝑦 𝐴𝑗 𝑊𝑗 = [ 𝑗 ] (1)
𝑗 0

La matriz spike tiene la siguiente forma:

Fig 3. Forma de la matrix Spike con 4 particiones

3.2 ETAPA DEL POST-PROCESAMIENTO

Resolver el sistema 𝐴𝑥 = 𝐹 ahora se reduce a dos pasos


(a)Solucionar 𝐷𝐺 = 𝐹,
(b)Solucionar 𝑆𝑥 = 𝐺

La solución del sistema lineal DG = F en el Paso (a), produce la matriz RHS modificada G
necesaria para el Paso (b). En caso de asignar una partición a cada procesador, el paso (a) se
realiza con un paralelismo perfecto. Si desacoplamos las etapas de pre y post-procesamiento,
el Paso (a) puede combinarse con la generación de los spikes en la Eq (1).

6
4. MÉTODO

4.1 POLI ALGORITMO

Para una implementación eficaz del algoritmo existen varias opciones en arquitecturas
paralelas, que además disminuye la complejidad y el almacenamiento requerido. Estas
elecciones dependen de las propiedades del sistema lineal, así como la arquitectura. Como
vimos anteriormente, Spike consta de tres etapas, las cuales pueden manejarse de varias
maneras:

(1) Factorización de los bloques diagonales 𝐴𝑗


(2) Cálculo de los Spikes,
(3) Esquema de solución para manejar el sistema reducido.

En la etapa (1), cada sistema lineal asociado con 𝐴𝑗 , se puede resolver ya sea:
i. Directamente, haciendo uso de LU con pivoteo parcial o factorización de Cholesky
si 𝐴𝑗 es definida positiva simétrica
ii. Usando factorización LU sin pivotar, pero con una estrategia de impulso diagonal
iii. Iterativamente con una estrategia de prea condicionamiento mediante una
aproximación apropiada de la inversa de 𝐴𝑗 .

En la etapa (2), explícitamente, los Spikes pueden ser calculados completa o parcialmente
utilizando la ecuación (1), o implícitamente, ejecutándose paralelamente con la etapa (1)

En la etapa (3), se habrá obtenido un sistema reducido, el cual podrá ser calculado de tres
formas:
i. Directamente, usando la forma recursiva del algoritmo Spike.
ii. Iterativamente, con un esquema precondicionador.
iii. Aproximadamente, usando la forma truncada del algoritmo Spike.

7
5.CONCLUSIÓN

• El algoritmo Spike es un algoritmo muy eficaz a la hora de resolver sistemas de


ecuaciones lineales con banda, y parte de su efectividad se debe a que existen varias
maneras de implementarlo de acuerdo con las necesidades de una persona o de las
restricciones de una arquitectura especifica.

6.BIBLIOGRAFÍA

[1] P. Arbenz and M. Hegland, “The stable parallel solution of general narrow banded
linear systems,” no. January, 1997.
[2] C. Band, T. Systems, P. M. T. Heath, M. T. Heath, and M. T. Heath, “Outline
Parallel Numerical Algorithms inefficient Tridiagonal Linear System Tridiagonal
System , Natural Order Two-Way Elimination Tridiagonal System , Two-Way
Elimination Odd-Even Ordering Tridiagonal System , Odd-Even Ordering Cyclic
Reduction Cyclic Re.”
[3] E. Polizzi and A. H. Sameh, “A parallel hybrid banded system solver : the SPIKE
algorithm,” vol. 32, pp. 177–194, 2006.
[4] M. Manguoglu, A. H. Sameh, and O. Schenk, “PSPIKE : A Parallel Hybrid Sparse
Linear System Solver,” pp. 1–12.

Das könnte Ihnen auch gefallen