Brian -- is this enough information to complete the blocker defect https://svn.open-mpi.org/trac/ompi/ticket/2656?
On Dec 21, 2010, at 2:54 PM, George Bosilca wrote:
> Anyway, back to your question. The MPI and OPAL datatypes uses the same indexes, for all the OPAL predefined types. Several MPI types map to the same underlying OPAL type: such as MPI_INT, MPI_INTEGER, MPI_INT32_T. All MPI types not supported at OPAL level, will get their indexes contiguously after the OPAL_DATATYPE_MAX_PREDEFINED upper bound (up to OMPI_DATATYPE_MPI_MAX_PREDEFINED). Moreover, the OPAL layer has been modified to support up to OPAL_DATATYPE_MAX_SUPPORTED datatypes, and this value should be modified based on the upper level requirements (today it is set to 46 as this is the total number of MPI supported datatypes, including the Fortran ones). bdt_used is currently defined as an uint32_t, so obviously there is not enough place to hold all possible MPI datatypes.
> Solution 1: We can change the bdt_used to uint64_t. This requires some work, and I will prefer to have some time to see exactly all the implications.
> Solution 2: Quick and dirty, but not the fastest one. Instead of walking the bdt_used you can walk the btypes array. If the count is not zero, then the MPI datatype corresponding to the index in the array is used.
For corporate legal information go to: