The original goal of this project was to investigate whether it was possible to optimize a QR factorization - by means of discrete optimization of various properties of the factorization - so that it would be a viable alternative to some existing iterative solvers for sparse systems.
We ended up with an optimizer and some related tools for code-generation and testing, that optimizes the row- and column ordering of a system of linear equations, and finds a suitable sequence of Givens rotations to apply in order to completely factorize the given system. Plain Fortran code can be automatically generated, to solve the system specified.
It seems from the results in chapter 7, and results gathered from numerous test-runs not documented here, that the row- and column ordering yields substantial improvements on some systems, whereas other systems may have a structure not suitable for optimization (several examples are given in the results chapter).
Even if a system of linear equations does not have a structure which is obviously well suited for optimization, a solver generated by means of the tools developed during this project, may still be very efficient compared to iterative alternatives. The only real demand from the tools is, that the system must be sparse. The system on which the tools are used, should not hold more than 15 - 20% non-zeros.
Only time will tell, whether the solvers generated from the software developed here, will find use in the simulation software for which it was originally developed. Unfortunately this project ends here, and the comparison with the currently used iterative solver - and eventually other solvers - will not make it into this report.
From where I stand, it looks as though we are going to incorporate code generated by these tools, into the aerial pollution simulation software. At least to see if it yields the performance gain it seems to promise in this report.