Open mhoemmen opened 5 years ago
We should have just deprecated that template parameter...
I'm curious: why does code exist using Comm
Deprecating is a good idea. Finding someone with cycles to do it is the problem. :(
I agree that we should basically static_assert(std::is_same<T, int>::value, "anything else is crazy")
and eventually remove the template parameter. MPI uses int
, and no alternative is anywhere on our radar. Top500 supercomputers have plateaued around supporting a maximum of one million MPI ranks and don't show many signs of approaching 2 billion MPI ranks.
I int
not also used for the size of the buffers of data being copied? With an signed 32 bit integer, that tops off at just over 2 billion elements, no? Is that not still an issue?
But I agree that Teuchos::Comm<>
should not have been templated (I argued against it at the time).
The MPI Standard is moving towards separating MPI process rank from counts and displacements. Process ranks will stay int
. See e.g., https://github.com/mpi-forum/mpi-issues/issues/137 .
We could just change the methods of Teuchos::Comm
to accept a signed 64-bit integer as their count argument, and convert to whatever the underlying MPI supports as necessary internally.
Jeff Hammond's "BigMPI" paper and library shows a library-based solution. Process ranks remain 32 bits.
@ibaned wrote:
We could just change the methods of
Teuchos::Comm
to accept a signed 64-bit integer as their count argument, and convert to whatever the underlying MPI supports as necessary internally.
This would be an interesting way to maintain backwards compatibility with older MPI versions, once MPI BigCount lands.
@bartlettroscoe wrote:
But I agree that
Teuchos::Comm<>
should not have been templated (I argued against it at the time).
Thank you for fighting for sanity :-) . People forget that Comm, BLAS, and LAPACK started in the Tpetra namespace, circa 2004.
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.
begone autocloser
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.
Bug Report
@trilinos/teuchos @cgcgcg @trilinos/thyra @trilinos/tpetra
Description
It should be easy and cheap to convert between
Teuchos::Comm<int>
andTeuchos::Comm<T>
for any integerT
. We need this for interactions between Tpetra and Thyra, e.g., for PR https://github.com/trilinos/Trilinos/pull/5400.