-
Notifications
You must be signed in to change notification settings - Fork 2
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
Error clases #4
Comments
We should try to omit Setting |
For MPICH folks, it is effectively useless, they use a very large value. I'm not sure omitting thing from the ABI is a good idea. I'm inclined to think that is better to define it to INT_MAX (which IIUC would be backward compatible regarding the MPI standard), deprecate it, and tells users to rely on the attribute query mechanism. |
What is gained by setting it to |
For starters, what code are people writing that depends on |
Probably no correct code uses it, it's useless, and it has been useless since MPI-2. But you cannot simply remove it, at best you can deprecate it. I'm just a bit worried of leaving things out of the ABI. PS: mpi4py uses it, but in an unusual way. For exampe, if you build mpi4py with an MPI-4 implementation, then the value of |
I believe that Jeff isn’t saying to get rid of it from the standard, but rather to not include it in the ABI specification. Therefore, implementations could set it to whatever value they’d like.
Jeff, is this correct?
Quincey
On Apr 17, 2023, at 5:01 AM, Lisandro Dalcin ***@***.***> wrote:
Probably no correct code uses it, it's useless, and it has been useless since MPI-2. But you cannot simply remove it, at best you can deprecate it. I'm just a bit worried of leaving things out of the ABI.
PS: mpi4py uses it, but in an unusual way. For exampe, if you build mpi4py with an MPI-4 implementation, then the value of MPI.ERR_HANDLER in Python will map to MPI_ERR_LASTCODE to signal "not available in the backend MPI implementation". But I could very well use a negative number instead.
—
Reply to this email directly, view it on GitHub<#4 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABICDQSCGCDFNKV6W3WVYCTXBUIGDANCNFSM6AAAAAAWX6S4K4>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Yes, I understand that. But then we now will have two categories of MPI symbols/constants. Those that are in the ABI, and those that are not. I have the hope of making all of the MPI API part of the ABI, without any exceptions. |
I have relented from excluding it from the ABI. We just need to pick a suitably large value to avoid backwards compatibility issues in the future. The slack discussion in #general is relevant to this. |
As of now, the value of error classes (other than
MPI_SUCCESS
andMPI_ERR_LASTCODE
) is assigned by listing the names in alphabetical order. I don't really like this approach, as it is not future-proof. As soon as a new MPI standard adds a new error class, the order will be broken.I would like to propose an slightly alternative approach:
major.minor
version of the standard in which they appeared.MPI_
andMPI_T_
,0
.MPI_T
values in a separate range, let say starting as1000
as now, although I would rather prefer the first one be1001' , such that
errclass % 1000is positive. I'm still thinking about the convenience of this separate range. It may not play well with user-defined error classes and the
MPI_LASTUSEDCODEattribute to
COMM_WORLD`.I can easily get the
MPI_
prefixed error class groups by MPI major.minor version from the mpi4py source tree :I don't have the
MPI_T
ones, but these are just a few, it is not hard to do.Related, I would like to reconsider the case of
MPI_ERR_LASTCODE
. Our proposal right now follows the Open MPI approach, whereMPI_ERR_LASTCODE
leaves (a bit) of room for extension, but it is still a relatively small integer. MPICH, on the other hand, uses a large value of0x3fffffff
. I see little benefit on the Open MPI approach. IMHO, After the introduction of user-defined error classes and code,MPI_ERR_LASTCODE
became a bit obsolete. I would like to propose definingMPI_ERR_LASTCODE
at least as large as32767
, or evenINT_MAX
if there are no objections.Comments?
The text was updated successfully, but these errors were encountered: