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

Support 64-bit local indices in Tpetra & downstream packages #280

Closed
mhoemmen opened this issue Apr 7, 2016 · 7 comments
Closed

Support 64-bit local indices in Tpetra & downstream packages #280

mhoemmen opened this issue Apr 7, 2016 · 7 comments
Labels
CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. pkg: Amesos2 pkg: MueLu pkg: Tpetra story The issue corresponds to a Kanban Story (vs. Epic or Task) TpetraRF type: enhancement Issue is an enhancement, not a bug

Comments

@mhoemmen
Copy link
Contributor

mhoemmen commented Apr 7, 2016

Original e-mail to trilinos-users:

We would like to use Tpetra, Belos, Amesos2 and MueLu with both local
index type = long and global index type = long. Unfortunately, this does
not appear to be supported out of the box, at least I couldn't find the
right CMake settings.
I suppose I have to manually instantiate all the required classes with
the appropriate types or is there another way?
At the moment I am getting undefined symbol errors at runtime in our
project such as (demangled):

MueLu::TpetraOperator<double, long, long, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::getDomainMap() const

@mhoemmen
Copy link
Contributor Author

mhoemmen commented Apr 7, 2016

I suppose I have to manually instantiate all the required classes with
the appropriate types or is there another way?

As a possible temporary work-around, you could try disabling ETI (-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=OFF), then just try using LocalOrdinal = long. At some point, we will need to add CMake options to enable other LocalOrdinal types, so that they work with ETI ON.

@mhoemmen
Copy link
Contributor Author

mhoemmen commented Apr 7, 2016

btw I would recommend using long long instead of long. C++11 and C99 guarantee that long long has >= 64 bits. long may have 32 bits on some platforms.

@wfspotz
Copy link
Contributor

wfspotz commented Apr 14, 2016

For PyTrilinos, I thought it might be nice for the ordinals to match the Python integers, which are long (I should double check the exact type used by Python: long, or long long, or something else?). This would reduce the chance for overflow, and reduce the required error checking for the wrappers. What I am not going to support is multiple ordinal types in Python. I might abstract the local ordinal type out so that it is only specified in one place. Then we can start with local ordinal = int and graduate to long long (or whatever is appropriate) when it is better supported.

@mhoemmen
Copy link
Contributor Author

What I am not going to support is multiple ordinal types in Python.

@wfspotz That's perfectly OK :-) Once we can support one LocalOrdinal type other than int, we can support others with little extra effort. I prefer long long because it is always (at least) 64 bits, but long isn't hard to add either.

@cihanuq
Copy link

cihanuq commented May 25, 2016

@mhoemmen Your recommendation to use long long instead of long is sensible, however in our software we had issues with third party libs (namely, umfpack and netcdf) which both don't appear to support long long by default, unless on Windows.

@mhoemmen mhoemmen added type: enhancement Issue is an enhancement, not a bug story The issue corresponds to a Kanban Story (vs. Epic or Task) labels Sep 16, 2016
@mhoemmen mhoemmen added this to the Tpetra-backlog milestone Nov 2, 2016
@kddevin kddevin added this to Backlog in Tpetra Oct 26, 2017
@crtrott crtrott added this to Backlog in TpetraRF FY18 Oct 26, 2017
@github-actions
Copy link

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 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.

@github-actions github-actions bot added the MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. label Dec 15, 2020
@github-actions
Copy link

This issue was closed due to inactivity for 395 days.

@github-actions github-actions bot added the CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. label Jan 16, 2021
TpetraRF FY18 automation moved this from Backlog to Done Jan 16, 2021
Tpetra automation moved this from Backlog to Done Jan 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. pkg: Amesos2 pkg: MueLu pkg: Tpetra story The issue corresponds to a Kanban Story (vs. Epic or Task) TpetraRF type: enhancement Issue is an enhancement, not a bug
Projects
Tpetra
  
Done
TpetraRF FY18
  
Done
Development

No branches or pull requests

4 participants