Trilinos
Trilinos copied to clipboard
Teuchos: Can we just always build with Complex?
Because if it doesn't work, your blas is broken...
Thoughts?
@mhoemmen @bartlettroscoe : Opinions?
So few customers use complex numbers and it increase the build time and binaries by enough I would say we should not. But we have several builds testing with complex turned on and off I think we should be safe. What I think we can't support very well is having some packages enable complex and some disable it. We can't test all of those permutations so we are asking for broken code.
Here's the idea:
- @csiefer2 says that neither
Teuchos_ENABLE_COMPLEX
by itself, norTrilinos_ENABLE_COMPLEX_DOUBLE
, have any effect on Thyra or Stratimikos instantiations, independent of Tpetra's own complex arithmetic options. - Enabling
Teuchos_ENABLE_COMPLEX
all the time costs little. - If complex-arithmetic BLAS doesn't work, your BLAS is broken anyway.
- Therefore, why not just enable
Teuchos_ENABLE_COMPLEX
all the time, and get rid of the option?
@bartlettroscoe wrote:
So few customers use complex numbers
- Sierra builds with complex arithmetic enabled, and some Sierra products use it.
- Users who don't want to enable complex arithmetic solvers can set
Trilinos_ENABLE_COMPLEX_DOUBLE=OFF
etc.
Solvers have their own options for Scalar types. That's where all the building and testing cost goes. Things like Teuchos::ScalarTraits
specializations for std::complex<double>
don't cost so much.
@mhoemmen asked:
Therefore, why not just enable
Teuchos_ENABLE_COMPLEX
all the time, and get rid of the option?
I guess I don't care too much but we have seen broken complex functions in BLAS and LAPACK.
@bartlettroscoe wrote:
we have seen broken complex functions in BLAS and LAPACK.
You can't enable complex solvers without complex Teuchos. If complex-arithmetic LAPACK is broken, then many solvers would no longer work. MueLu depends on LAPACK, for example. The fall-back Teuchos::BLAS
implementation for unsupported Scalar types won't suffice.
This suggests that complex BLAS and LAPACK need to work if Trilinos_ENABLE_COMPLEX_*=ON
. Otherwise, we should error out at configure time. Users who don't care about complex arithmetic can always set Trilinos_ENABLE_COMPLEX_*=OFF
to work around a broken BLAS and LAPACK.
@mhoemmen said:
Users who don't care about complex arithmetic can always set
Trilinos_ENABLE_COMPLEX_*=OFF
to work around a broken BLAS and LAPACK.
So you want to just remove Teuchos_ENABLE_COMPLEX
and have it respond directly to ${PROJECT_NAME}_ENABLE_COMPLEX
? I am fine with that.
@bartlettroscoe wrote:
So you want to just remove
Teuchos_ENABLE_COMPLEX
and have it respond directly to${PROJECT_NAME}_ENABLE_COMPLEX
? I am fine with that.
That's right! The idea is to remove ways in which users can break the build by setting options weirdly.
This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity.
If you would like to keep this issue open please add a comment and/or remove the MARKED_FOR_CLOSURE
label.
If this issue should be kept open even with no activity beyond the time limits you can add the label DO_NOT_AUTOCLOSE
.
If it is ok for this issue to be closed, feel free to go ahead and close it. Please do not add any comments or change any labels or otherwise touch this issue unless your intention is to reset the inactivity counter for an additional year.
revive
Any news on this? I keep having to rebuild Trilinos everywhere to enable Teuchos_ENABLE_COMPLEX
because I have a Belos solver that depends on this. If this could be enabled by default even without any other ${PROJECT_NAME}_ENABLE_COMPLEX
being enabled that would help a lot.
This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity.
If you would like to keep this issue open please add a comment and/or remove the MARKED_FOR_CLOSURE
label.
If this issue should be kept open even with no activity beyond the time limits you can add the label DO_NOT_AUTOCLOSE
.
If it is ok for this issue to be closed, feel free to go ahead and close it. Please do not add any comments or change any labels or otherwise touch this issue unless your intention is to reset the inactivity counter for an additional year.
begot autobot
This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity.
If you would like to keep this issue open please add a comment and/or remove the MARKED_FOR_CLOSURE
label.
If this issue should be kept open even with no activity beyond the time limits you can add the label DO_NOT_AUTOCLOSE
.
If it is ok for this issue to be closed, feel free to go ahead and close it. Please do not add any comments or change any labels or otherwise touch this issue unless your intention is to reset the inactivity counter for an additional year.
This issue was closed due to inactivity for 395 days.