# Intel® Adaptive Spike-Based Solver

Publicado em 11 de outubro de 2010

What If Home | Product Overview | Intel® TM ABI specification | Technical Requirements FAQ | Primary Technology Contacts | Discussion Forum | Blog |

### Product Overview

**November 2014: This WhatIf project has been retired, but will remain here for reference. **

The Intel® Adaptive Spike-Based Solver is a poly-algorithm that uses many different strategies to solve large banded systems in parallel. It uses a novel decomposition method to balance computation against communication requirements. Since the characteristics of the input matrix (e.g., size, bandwidth, degree of diagonal dominance, degree of sparsity, number of available processors, etc.) affect the solution strategy, the solver contains an adaptive layer to automatically select the optimum strategy at runtime. The solver is parallelized with MPI to take advantage of high-performance computing (HPC) clusters and other parallel architectures.

### Features and Benefits

Solving sparse linear systems is a crucial step in many applications. Very often, banded linear systems play a critical role there. For example, they arise frequently after a general sparse system is reordered in some fashion. In other instances, they are constructed as effective preconditioners to general sparse systems where they are solved via iterative methods. Existing parallel software using direct methods for banded matrices are mostly based on LU factorization. In contrast, the Intel® Adaptive Spike-Based Solver is based on a different decomposition method that naturally leads to lower communication cost at the expense of increased arithmetic cost. This tradeoff is advantageous in modern architectures where the increase in arithmetic performance outpaces memory performance. The Intel® Adaptive Spike-Based Solver offers HPC users a new and valuable tool for solving large banded systems.

### Technical Requirements

The Intel® Adaptive Spike-Based Solver supports the Intel® 64 and Itanium architectures on Linux. The solver uses MPI to express parallelism so a standard-compliant MPI-1 implementation is required. The solver should work with most Fortran 90/95 and C compilers.

## Publications

- Eric Polizzi and Ahmed Sameh, “A parallel hybrid banded solver: the SPIKE algorithm” Parallel Computing, 32:177-194, 2006.
- Eric Polizzi and Ahmed Sameh, “SPIKE: A parallel environment for solving banded linear systems” Computers and Fluids, 36:113-120, 2007.

### Frequently Asked Questions

**Q:** Why do I want to use this solver?

**A:** The Intel® Adaptive Spike-Based Solver offers superior parallel scalability compared with alternatives such as the band solver in ScaLAPACK. The good scalability is mainly due to algorithm differences as opposed to implementation technique.

**Q:** Does the Intel® Adaptive Spike-Based Solver require MPI?

**A:** Yes. The Intel® Adaptive Spike-Based Solver is a parallel library that uses MPI. The supported MPI implementations are listed in Appendix C of the User Guide. However, any standard-compliant MPI implementation should work.

**Q:** What happens if the Intel® Adaptive Spike-Based Solver is invoked with only one process?

**A:** The Intel® Adaptive Spike-Based Solver is a parallel library. At least two MPI processes are required for parallel computation. The solver will fall-through to LAPACK if launched with only one process.

**Q:** What is “adaptive” about the Intel® Adaptive Spike-Based Solver?

**A:** The Intel® Adaptive Spike-Based Solver is a poly-algorithm that can use many different strategies to solve a banded system. Some strategies perform better than others depending on the matrix characteristics (e.g., size, bandwidth, diagonal dominance, etc.). The solver can automatically select the best strategy based on the matrix characteristics. In other words, the solver can adapt to a given input matrix. Simply set the autoadapt parameter of the matrix_data structure to true to enable the Spike_Adapt layer (see Table 2.1 of the User Guide).

**Q:** Can I bypass the adaptive layer of the Intel® Adaptive Spike-Based Solver?

**A:** Yes. Setting the autoadapt parameter of the matrix_data structure to false will bypass the adaptive layer (see Table 2.1 of the User Guide). In this case, you must manually select a solution strategy as described in Section 2.4 of the User Guide. This is sometimes advantageous if the best strategy for a given matrix is already known. A standalone Spike_Adapt executable is provided to help determine the best solution strategy without invoking the solver. This executable is described in Section 2.5 of the User Guide.

**Q:** How do I get support or post additional questions?

**A:** Support questions can be posted to the Intel® Adaptive Spike-Based Solver dicussion forum.

### Primary Technical Contacts

Henry Gabb is a Principal Engineer in the Intel Software and Solutions Group. He has been working on parallel applications and parallel performance issues since joining Intel in 2000. Prior to joining Intel, Henry was Director of Scientific Computing at the US Army Engineer Research and Development Center MSRC, a DoD high-performance computing site. Henry holds a BS in biochemistry from LSU and a PhD in molecular genetics from the UAB School of Medicine. He has several peer-reviewed research papers on high-performance computing and the computational life sciences.