-
Notifications
You must be signed in to change notification settings - Fork 556
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
Muelu: Interoperability with Epetra and Tpetra #11201
Comments
@trilinos/muelu |
Ok, I see. Epetra and Tpetra can be used in the same build, but that requires the GO types to match, i.e. GO=int. That should also work in deal.ii. However, using 2 different global ordinal types at the same time is not allowed. I think that's reasonable. Does deal.ii have a required dependency on Epetra? Cause you should be able to disable Epetra and still use MueLu with Tpetra. |
@cgcgcg We currently still rely on Epetra. The long-term plan is to move to Tpetra, but we're not there yet. Since Trilinos relies on its own decision in choosing what Where is the place inside Muelu where you decide which |
We require Tpetra to be enabled for MueLu, and that MueLu uses Tpetra's GO. Currently I don't think that within the constraints of xSDK there is a way to use MueLu with Tpetra and Epetra. xSDK wants 64 bit GO. Epetra does not provide that (there are caveats to this statement), so Epetra should be disabled in xSDK. (But for practical reasons it obviously isn't.) I was thinking more about ways to simplify your transition. Outside of xSDK you could build deal.ii with GO=int and Epetra+Tpetra and perform bake-offs that are fair. |
Actually, what we typically do in large computations is use Epetra through its 64-bit interfaces. Do you have an idea how many places Muelu has that call Epetra functions? Depending on whether Tpetra uses 32- or 64-bit integers, one could call either the 32- or 64-bit Epetra functions. |
Hm, I haven't tried the Xpetra/MueLu support for 64 bit Epetra. I'll give that a shot an see what actually works. |
It actually works reasonably well for us. Depending on whether deal.II uses 32- or 64-bit |
Is this actually on the MueLu side, or is this more related to how Xpetra handles things? |
@bangerth I tried Epetra-64 support in Xpetra/MueLu a few years ago and it took me a while to even get the code to compile. The tests were failing all over the place. You can look at this old half-done branch to see what I had to change to get MueLu to compile https://github.com/trilinos/Trilinos/tree/xpetra-epetra64 @GrahamBenHarper Neither Xpetra nor MueLu correctly supports Epetra64 everywhere. Or at least it didn't in 2019. |
As far as I can tell, the Xpetra support for Epetra 64 doesn't build. So GO=int is the only way to have both Tpetra and Epetra enabled in MueLu. |
I had not realized that MueLu supports both Epetra and Tpetra via Xpetra, and that Xpetra only supports 32-bit Epetra. That's a shame, but I understand that that is not worth fixing. Thanks for talking this through with me. I suppose there isn't much that can be done about the issue then. Should we close the issue? |
Sorry that we couldn't provide a nicer solution. Once deal.ii can make its Epetra dependency optional it should be easier to set this up. |
I have a recent build of deal.II on our clusters. If I could find time, I would absolutely love to help... however, time is always the problem. |
Bug Report
@trilinos/muelu
Description
As discussed at the TUG meeting yesterday, here is the issue the deal.II project is facing with Muelu (to the best of my understanding -- @Rombur is the real expert):
GO
type is notint
; this was first pointed out as a problem in Trilinos, Albany: getting Albany and Trilinos to compile again using spack spack/spack#14215 and specifically this comment: Trilinos, Albany: getting Albany and Trilinos to compile again using spack spack/spack#14215 (comment)The text was updated successfully, but these errors were encountered: