[feature][SeqILU] faster implementation of ILU preconditioner
This MR implements a faster ILU version by simply using Compressed Row Storage for the lower and upper triangular matrices. This way the access for the upper triangular can be done forwards in memory.
Also, the new class SeqILU unifies both, SeqILU0 and SeqILUn.
Merge request reports
Activity
assigned to @markus.blatt
@markus.blatt This is not true. It uses the same memory plus some overhead that can be adjusted.
@markus.blatt The memory consumption is only temporarily higher. The overall consumption during application of the preconditioner should be similar. That could also be included as a dynamic switch to allow for both versions. An implementation using less memory during the transition (i.e. reused some memory of the matrix ILU) would be quite an effort and might be hacky, e.g. reusing the storage of ILU in a different way. So I'm not so convinced that this is worthwile.
Does this change your argument?
added 1 commit
- 2a82fa64 - [cleanup] Allow SeqILU to use old and new storage format, old being the
@markus.blatt: I have now implemented the SeqILU such that both implementations can be used, the current one being the default option. From my point of view this could be merged now.
- Resolved by Markus Blatt
added 26 commits
-
2a82fa64...b3e7fc90 - 24 commits from branch
master
- be38b8de - [feature][SeqILU] faster implementation of ILU preconditioners using a
- cdfebf9c - [cleanup] Allow SeqILU to use old and new storage format, old being the
-
2a82fa64...b3e7fc90 - 24 commits from branch
@markus.blatt: I have addressed your concerns. The setup now uses the reverse iterators to keep the exact order of the matrices. Also, for memory estimation the non zeros are used, which should work here since the bug with non zeros being 0 even for a matrix setup correctly is fixed I guess.
added 1 commit
- 8d53d312 - [cleanup] adjust SeqILU to recent updates for SimdScalar.
added 1 commit
- 7e9942d4 - [cleanup] nonzeros --> nonzeroes (arrrgggghhh).
changed milestone to %DUNE 2.6.0
mentioned in commit 09cecfde
Merged, thanks. Concerning the backport tag. I tried to cherry-pick manually but it seems a bit too involved for me and I soon gave up. There have been a lot of changes to the category stuff in master which seem to bite us here. Maybe it would have been easier if the unification would have been skipped. But this is a pure guess.
Edited by Markus Blatt