Sparse linear system solvers are at the heart of a large class of science and engineering applications. They arise in partial differential equation solvers, optimization techniques, and statistical modeling. Innovations in computer hardware, such as multicore processors and scalable multiprocessors offer tremendous performance potential, while posing significant challenges for the design of efficient solvers. This project addresses these challenges in the context of a new and powerful solver called Spike. Spike decomposes a linear system into a set of decoupled systems, and a much smaller reduced system. Such a novel decomposition results in a much reduced level of memory references and interprocessor communications, at the cost of a modest increase in the number of arithmetic operations.
This project investigates fundamental numerical, algorithmic, and software development aspects of Spike. It addresses matrix reordering, storage schemes, underlying direct and iterative solvers, error analysis, and comprehensive validation. It directly focuses on emerging hardware platforms by minimizing memory references and maximizing concurrency. The project also aims to create a toolkit that can automatically provide a non-expert user with the most efficient version of Spike, based on the underlying hardware characteristics. The project also integrates Spike into a state-of-the-art quantum-scale nanoelectronics simulation environment, NESSIE, to demonstrate true application performance. The Spike toolkit is a general-purpose software package useful in a wide variety of scientific computing applications. The broader impact of such a solver, which is well well-suited to emerging platforms, is tremendous. By integrating Spike into NESSIE, this project has significant impact on quantum-scale modeling environments. The project makes significant educational and outreach contributions through the development of novel instructional material, new courses, classroom projects, and software.