Open mhoemmen opened 5 years ago
complex<float>
.complex<double>
, but @crdohrm could say whether Salinas uses any Trilinos features that depend on this being enabled in Trilinos.@dsunder is working on a fix in Kokkos. See discussion here: https://github.com/kokkos/kokkos/issues/1964 . For now, I plan on just submitting fixes to Tpetra's tests (e.g., 42.0*z
doesn't compile if z
is complex<float>
; that breaks some tests). I don't want code to compile unless I know that it works, so I'd rather not submit the compilation work-around for now.
Hi guys, Salinas uses Tpetra with complex matrices for frequency domain analyses.
Oops, hit the wrong button. Will Reopen and comment.
@crdohrm wrote:
Hi guys, Salinas uses Tpetra with complex matrices for frequency domain analyses.
complex<double>
, complex<float>
, or both?
Answer carefully -- every Scalar type you want adds to the build time.
Looks like we only use complex<double>
for Tpetra
@crdohrm wrote:
Looks like we only use complex for Tpetra
complex<double>
or complex<float>
?
I show build errors both with Trilinos_ENABLE_COMPLEX=OFF (which I expect based on @crdohrm's responses).
Building with Trilinos_ENABLE_COMPLEX_DOUBLE=ON causes the previously discussed (with @mhoemmen) issues with UMFPACK built without complex support.
Sorry about that. Only complex<float>
for Tpetra.
Looks like the text inside <> gets omitted in my comments.
What I meant to say is that we only use Tpetra with complex double. We do not use Tpetra with complex float. Sorry for the confusion.
Thanks @crdohrm !
Best practice is to enclose code-like text in backquotes. For example: complex<double>
.
@rrdrake @theguruat12 @trilinos/framework Please note Clark's comments above.
@ndellingwood
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?
Is anyone actually using complex+float ?
@trilinos/tpetra @trilinos/amesos2
I found this out when testing Amesos2. See e.g., #4194.
Current Behavior
Tpetra and downstream classes do not build with
Scalar=complex<float>
. I get errors of the form discussed here: https://github.com/kokkos/kokkos/issues/1964 . The caseScalar=Kokkos::complex<double>
still works, because it uses a different overload of these Kokkos functions that does not attempt to put the output type in a union withunsigned long long int
.Motivation and Context
Sierra currently enables
complex<float>
in its Trilinos build. This error also showed up in #4194, since Amesos2 was incorrectly attempting to build withScalar=complex<float>
, even though it was not enabled in Tpetra.Possible Solution
I am working on a work-around, namely to overload
Kokkos::Impl::atomic_fetch_oper
andKokkos::Impl::atomic_oper_fetch
specifically forKokkos::complex<float>
.Steps to Reproduce
Set the CMake option
Trilinos_ENABLE_COMPLEX_FLOAT:BOOL=ON
.Related Issues