Algoritma SPIKE adalah solver paralel hibrida untuk sistem linear berpita yang dikembangkan oleh Eric Polizzi dan Ahmed Sameh.[1]^[2]
Algoritma SPIKE berkaitan dengan sistem linear AX = F , di mana A adalah sebuah banded
matriks bandwidth jauh lebih sedikit daripada
, dan F adalah
matriks yang mengandung
sisi kanan. Ini dibagi menjadi tahap preprocessing dan tahap postprocessing.
Pada tahap preprocessing, sistem linear AX = F dipartisi menjadi bentuk tridiagonal blok

Asumsikan, untuk saat ini, bahwa blok diagonal Aj (j = 1,...,p dengan p ≥ 2) adalah nonsingular. Tentukan matriks blok diagonal
- D = diag(A1,...,Ap),
maka D juga nonsingular. Kiri-mengalikan D−1 untuk kedua sisi sistem memberi

yang harus diselesaikan pada tahap postprocessing. Penggandaan-kiri oleh D−1 setara dengan pemecahan
sistem formulir
- Aj[Vj Wj Gj] = [Bj Cj Fj]
(menghilangkan W1 dan C1 untuk
, dan Vp dan Bp untuk
), yang dapat dilakukan secara paralel.
Karena sifat berpita A, hanya beberapa kolom paling kiri dari setiap Vj dan beberapa kolom paling kanan dari masing-masing Wj dapat berupa nol. Kolom ini disebut spike.
Tanpa kehilangan sifat umum, asumsikan bahwa setiap lonjakan mengandung tepat
kolom (
jauh lebih sedikit dari
) (bantalan spike dengan kolom nol jika perlu). Partisi paku di semua Vj dan Wj ke
and 
dimana V (t)
j , V (b)
j , W (t)
j dan W (b)
j adalah dari dimensi
. Partisi juga semua Xj dan Gj menjadi
and 
Perhatikan bahwa sistem yang dihasilkan oleh tahap preprocessing dapat direduksi menjadi sistem pentadiagonal blok dengan ukuran yang jauh lebih kecil (ingat bahwa
jauh lebih sedikit dari
)

yang kami sebut sistem tereduksi dan dilambangkan dengan S̃X̃ = G̃.
Setelah semua X (t)
j dan X (b)
j ditemukan, semua X′j dapat dipulihkan dengan paralelisme sempurna via
