|
|
Parallel templates for numerical linear algebra, a high performance computation library
|
Joris Koster
|
|
Supervisor: Dr. R. Bisseling |
|
| Description: |
In numerous scientific fields numerical linear algebra is used for
validating or solving discretised theoretical models. Pattern matching (e.g. searching in databases),
seismology, biology or weather forecasts are some of the numerous fields
where numerical algebra is being applied. The discretised models all share
the same representation:
Ax=b
where x is the unkown vector, A a matrix representing the
discretised model and b the known vector representing the known
result or measured sample.
Iterative solver methods can be used to obtain the solution vector
x within a given accuracy. During the last years different
iterative solvers methods where designed, each method posing different
restrictions on the matrix A and exposing a different convergence
behaviour. In
Templates the restrictions and behaviour of many of these methods are
summarized and a general implementation description is given.
The resolution or dimension of the discretised model often determines the
accuracy of the desired solution. A larger dimension will generally deliver
a more accurate solution. But a larger dimension will often require both a
longer computation time and more computer memory. It is often possible to
lower the computation time when using multiple processors, i.e. by using a
distributed (parallel) implementation of the iterative solver methods. By
distributing the problem amongst several processors we can also lower the
processor-local memory requirements.
The Parallel template library for nummerical linear algebra enables
the construction of linear numerical algebra algorithms by providing
an intuitive set of matrix and vector computation
routines that can be executed in a distributed or sequential environment.
The library was written in C++ using the
BSP library for parallel execution.
|
|
|