- 
                Notifications
    You must be signed in to change notification settings 
- Fork 929
datatype: Fix incorrect predefined datatype names and other datatype bugs #1537
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
datatype: Fix incorrect predefined datatype names and other datatype bugs #1537
Conversation
Name of predefined datatype for C `unsigned int` gotten by `MPI_TYPE_GET_NAME` should be `MPI_UNSIGNED`, not `MPI_UNSIGNED_INT`.
Names of predefined datatypes gotten by `MPI_TYPE_GET_NAME` are: after this commit (correct) | before this commit (incorrect) ----------------------------------------------------------- MPI_C_BOOL MPI_BOOL MPI_CXX_BOOL MPI_BOOL MPI_CXX_FLOAT_COMPLEX MPI_C_FLOAT_COMPLEX MPI_CXX_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX MPI_CXX_LONG_DOUBLE_COMPLEX MPI_C_LONG_DOUBLE_COMPLEX
Name of the predefined datatype for Fortran two `double precision` gotten by `MPI_TYPE_GET_NAME` should be `MPI_2DOUBLE_PRECISION`, not `MPI_2DBLPREC`. This bug was caused by setting the name to `opal_datatype_t::name` instead of `ompi_datatype_t::name`.
`MPI_UNSIGNED_CHAR` is an integer type.
Just a typo fix. Without this fix, `MPI::MAX_LOC` and `MPI::MIN_LOC` cannot be used with `MPI::LONG_DOUBLE_INT` in C++ programs. I know the C++ binding is obsolete, but fixing this is harmless.
| Rationale. A program to confirm names of predefined datatypes is on my gist. This program outputs names of predefined datatypes that doesn't have correct names defined in MPI standard. This program outputs  | 
| I added the test from the gist into the ompi-tests/ibm/datatype test suite. | 
| 👍 | 
…bugs (open-mpi#1537) * datatype: Fix a incorrect datatype name of `MPI_UNSIGNED` Name of predefined datatype for C `unsigned int` gotten by `MPI_TYPE_GET_NAME` should be `MPI_UNSIGNED`, not `MPI_UNSIGNED_INT`. * datatype: Fix incorrect datatype names of `MPI_C_BOOL` and `MPI_CXX_*` Names of predefined datatypes gotten by `MPI_TYPE_GET_NAME` are: after this commit (correct) | before this commit (incorrect) ----------------------------------------------------------- MPI_C_BOOL MPI_BOOL MPI_CXX_BOOL MPI_BOOL MPI_CXX_FLOAT_COMPLEX MPI_C_FLOAT_COMPLEX MPI_CXX_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX MPI_CXX_LONG_DOUBLE_COMPLEX MPI_C_LONG_DOUBLE_COMPLEX * datatype: Fix a incorrect datatype name of `MPI_2DOUBLE_PRECISION` Name of the predefined datatype for Fortran two `double precision` gotten by `MPI_TYPE_GET_NAME` should be `MPI_2DOUBLE_PRECISION`, not `MPI_2DBLPREC`. This bug was caused by setting the name to `opal_datatype_t::name` instead of `ompi_datatype_t::name`. * datatype: Fix `MPI_UNSIGNED_CHAR` internal flag `MPI_UNSIGNED_CHAR` is an integer type. * ompi/cxx: Fix C++ `MPI::LONG_DOUBLE_INT` definition Just a typo fix. Without this fix, `MPI::MAX_LOC` and `MPI::MIN_LOC` cannot be used with `MPI::LONG_DOUBLE_INT` in C++ programs. I know the C++ binding is obsolete, but fixing this is harmless. * Add FUJITSU copyright (cherry picked from commit open-mpi/ompi@4944ba7)
…bugs (open-mpi#1537) * datatype: Fix a incorrect datatype name of `MPI_UNSIGNED` Name of predefined datatype for C `unsigned int` gotten by `MPI_TYPE_GET_NAME` should be `MPI_UNSIGNED`, not `MPI_UNSIGNED_INT`. * datatype: Fix incorrect datatype names of `MPI_C_BOOL` and `MPI_CXX_*` Names of predefined datatypes gotten by `MPI_TYPE_GET_NAME` are: after this commit (correct) | before this commit (incorrect) ----------------------------------------------------------- MPI_C_BOOL MPI_BOOL MPI_CXX_BOOL MPI_BOOL MPI_CXX_FLOAT_COMPLEX MPI_C_FLOAT_COMPLEX MPI_CXX_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX MPI_CXX_LONG_DOUBLE_COMPLEX MPI_C_LONG_DOUBLE_COMPLEX * datatype: Fix a incorrect datatype name of `MPI_2DOUBLE_PRECISION` Name of the predefined datatype for Fortran two `double precision` gotten by `MPI_TYPE_GET_NAME` should be `MPI_2DOUBLE_PRECISION`, not `MPI_2DBLPREC`. This bug was caused by setting the name to `opal_datatype_t::name` instead of `ompi_datatype_t::name`. * datatype: Fix `MPI_UNSIGNED_CHAR` internal flag `MPI_UNSIGNED_CHAR` is an integer type. * ompi/cxx: Fix C++ `MPI::LONG_DOUBLE_INT` definition Just a typo fix. Without this fix, `MPI::MAX_LOC` and `MPI::MIN_LOC` cannot be used with `MPI::LONG_DOUBLE_INT` in C++ programs. I know the C++ binding is obsolete, but fixing this is harmless. * Add FUJITSU copyright (cherry picked from commit open-mpi/ompi@4944ba7)
…bugs (open-mpi#1537) * datatype: Fix a incorrect datatype name of `MPI_UNSIGNED` Name of predefined datatype for C `unsigned int` gotten by `MPI_TYPE_GET_NAME` should be `MPI_UNSIGNED`, not `MPI_UNSIGNED_INT`. * datatype: Fix incorrect datatype names of `MPI_C_BOOL` and `MPI_CXX_*` Names of predefined datatypes gotten by `MPI_TYPE_GET_NAME` are: after this commit (correct) | before this commit (incorrect) ----------------------------------------------------------- MPI_C_BOOL MPI_BOOL MPI_CXX_BOOL MPI_BOOL MPI_CXX_FLOAT_COMPLEX MPI_C_FLOAT_COMPLEX MPI_CXX_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX MPI_CXX_LONG_DOUBLE_COMPLEX MPI_C_LONG_DOUBLE_COMPLEX * datatype: Fix a incorrect datatype name of `MPI_2DOUBLE_PRECISION` Name of the predefined datatype for Fortran two `double precision` gotten by `MPI_TYPE_GET_NAME` should be `MPI_2DOUBLE_PRECISION`, not `MPI_2DBLPREC`. This bug was caused by setting the name to `opal_datatype_t::name` instead of `ompi_datatype_t::name`. * datatype: Fix `MPI_UNSIGNED_CHAR` internal flag `MPI_UNSIGNED_CHAR` is an integer type. * ompi/cxx: Fix C++ `MPI::LONG_DOUBLE_INT` definition Just a typo fix. Without this fix, `MPI::MAX_LOC` and `MPI::MIN_LOC` cannot be used with `MPI::LONG_DOUBLE_INT` in C++ programs. I know the C++ binding is obsolete, but fixing this is harmless. * Add FUJITSU copyright
See each commit messages for detail.
@bosilca Please review