Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup Ifpack2 RILUK code #1589

Closed
srajama1 opened this issue Aug 8, 2017 · 9 comments
Closed

Cleanup Ifpack2 RILUK code #1589

srajama1 opened this issue Aug 8, 2017 · 9 comments
Assignees

Comments

@srajama1
Copy link
Contributor

srajama1 commented Aug 8, 2017

This is primarily concerned with the confusing experimental piece of code that is in Ifpack2's RILUK. This code can be removed.

@aprokop
Copy link
Contributor

aprokop commented Aug 8, 2017

@srajama1 There are two defines, IFPACK2_ILUK_EXPERIMENTAL and IFPACK2_HTS_EXPERIMENTAL. Are you saying that all the code that is in those defines can be removed? This would get rid of Basker, for example.

@ambrad
Copy link
Contributor

ambrad commented Aug 8, 2017

@srajama1, @aprokop, HTS is explicitly included in RILUK only in support of Basker; the ifdefs for HTS are nested inside those for Basker. We propose to remove Basker (and so HTS with it) from RILUK; Basker was there only for experiments a while ago. Once that is done, as a nice side effect, HTS will be in LocalSparseTriangularSolver only.

@aprokop
Copy link
Contributor

aprokop commented Aug 8, 2017

@ambrad Thanks for the explanation! Out of curiosity, what's the fate of Basker?

@ambrad
Copy link
Contributor

ambrad commented Aug 8, 2017

@srajama1 can comment on this more. As I understand it, Basker is highly effective for its intended target of complete factorizations, especially for matrices having a certain structure. It is and will remain available in ShyLU, with I think an Amesos2 interface. But it isn't the best method for a multithreaded incomplete factorization, for which it wasn't designed in the first place.

@srajama1
Copy link
Contributor Author

srajama1 commented Aug 8, 2017

@ambrad summarized it well. It works well as complete factorization especially for problems with BTF structure. The experiment to make it work as ILU(T) was not as effective and should be removed from Ifpack2.

@aprokop
Copy link
Contributor

aprokop commented Aug 8, 2017

@srajama1 What's BTF?

@aprokop
Copy link
Contributor

aprokop commented Aug 9, 2017

I have a patch in-progress, will submit a PR soon.

aprokop added a commit to aprokop/Trilinos that referenced this issue Aug 9, 2017
@ambrad
Copy link
Contributor

ambrad commented Aug 9, 2017

Thanks @aprokop. BTW, BTF = block triangular form. A typical matrix for which exploiting BTF makes sense has a range of very small to very large blocks on the diag and dependencies on these blocks that are a tree (and thus give a block tri rather than a general matrix). Rather than factorize such a matrix monolithically, Basker orchestrates threading over factorizations of each block, then doing a solve with the triangular structure.

@aprokop aprokop self-assigned this Aug 9, 2017
@aprokop aprokop added the stage: in progress Work on the issue has started label Aug 9, 2017
aprokop added a commit that referenced this issue Aug 10, 2017
Fix #1589.

Build/Test Cases Summary
Enabled Packages: Ifpack2
Enabled all Forward Packages
0) MPI_RELEASE_DEBUG_SHARED_PT => passed: passed=718,notpassed=0 (11.55 min)
@aprokop
Copy link
Contributor

aprokop commented Aug 10, 2017

Pushed in c0d440c.

@aprokop aprokop closed this as completed Aug 10, 2017
@aprokop aprokop removed the stage: in progress Work on the issue has started label Aug 10, 2017
crtrott pushed a commit to mndevec/Trilinos that referenced this issue Aug 17, 2017
Fix trilinos#1589.

Build/Test Cases Summary
Enabled Packages: Ifpack2
Enabled all Forward Packages
0) MPI_RELEASE_DEBUG_SHARED_PT => passed: passed=718,notpassed=0 (11.55 min)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants