Font Size: a A A

Building sparse linear solver component for large scale scientific simulation and multiphysics coupling

Posted on:2010-02-10Degree:Ph.DType:Thesis
University:Indiana UniversityCandidate:Liu, FangFull Text:PDF
GTID:2448390002475812Subject:Computer Science
Abstract/Summary:
Sparse linear solves are ubiquitous in high performance computing (HPC) and often are the most computational intensive parts in scientific computing codes. A few of the many applications relying on sparse linear solvers include fusion energy simulation, space weather simulation, climate modeling, and environmental modeling. Although a large number of linear solver packages are available, no single solver can handle all problems arising from the real world applications. Even within a single application, as the linear systems evolve from time step to time step, the choice of solver may also need to change. A mechanism facilitating easy switching among solver packages has long been recognized as a major need in HPC. Because linear solvers for parallel codes often are deeply embedded in the application, minimizing the required application code changes related to this switching will help lessen the difficulty of changing solvers as the problems change. We believe that A common interface spanning multiple solver packages can be developed to meet all above requirements. The Common Component Architecture provides a way to allow multiple parties to collaborate together on designing and using a common interface, with multiple underlying implementations. A generic interface is needed and can be developed using CCA for sparse linear solvers.;Designing a generic interface for linear solver is nontrivial. By comparing widely used linear solver packages such as Trilinos, Petsc, SuperLU, Hypre and MUMPS, we can identify three phases for solving a linear system: Setting up the linear system data structures, setting up solution parameters, and solving the system. Even with these three phases in common, there are three challenges to defining a generic interface, (1) to accomodate different APIs and input data structure and to hide their difference; (2) to take into account different use cases such as multiple right hand side solve, one time solves; (3) to handle multilevel method which may have different algorithms on different levels.;In addition to allowing applications to switch among linear solvers, a linear solver interface is also needed for the increasingly important area of model coupling. In fusion energy simulations in particular, efforts are underway to integrate codes that currently work on relatively isolated parts of the problem. This decoupling is achieved by isolating different modes and eigenvalues, assuming the others are constant. Coupling codes involves all of the modes from each constituent code, and newly introduced intermediate modes that do not appear in any of the physics submodels. A linear solver interface will help in creating solvers for the integrated multiple fusion simulations that combine separate codes, and can use each code's native and specialized solvers for the subproblems corresponding to each physics submodel.;This thesis provides a generic solver interface to cover full range of solver types and solver packages, and it provides a uniform way to hide the difference from packages. This allows the application to be able to switch between solver packages in the runtime.
Keywords/Search Tags:Solver, Linear, Simulation, Application, Interface
Related items