[mpich-discuss] Existence of something like MPI_Type_compare()?

Dave Goodell goodell at mcs.anl.gov
Tue Dec 13 13:09:13 CST 2011


Some relevant reading on datatype equivalence: http://www.mcs.anl.gov/~goodell/pdfs/eurompi2010-type-marshalling.pdf

Let me dig around and see if I can find the code that we developed for that paper.  It didn't strictly compare types, but I'm sure that the marshalling code could be easily adapted to do so.

AFAIK there is nothing available in the MPI standard nor as an MPICH2 extension that would give you exactly what you want.  Everything would need to be based on MPI_Type_get_envelope/_get_contents.

-Dave

On Dec 13, 2011, at 12:52 PM CST, Jed Brown wrote:

> I'm not sure if I'm blind or if something like this doesn't exist. How can I check whether two types are compatible?
> 
> Here's the scenario:
> 
> I'm implementing communication primitives for a parallel bipartite graph and want to be able to move composite types such as user-defined structs associated with each vertex in the graph. I call this the "unit" type.
> 
> Inside my communication library, I'm constructing composite datatypes for each unit that needs to be sent. I'd like to create these lazily (the first time the user tries to use that unit) and cache them for future use. I MPI_Type_dup() the unit so that lifetime of the custom type can be managed independently (shorter or longer) from lifetime of the communication graph object.
> 
> Now I need to determine whether a user-provided "unit" is already cached. I don't mind a linear search, but I don't have an "equality" test. I can call MPI_Type_get_envelope() and MPI_Type_get_contents(), but I would have to explore this backward for types that have been duped and it just doesn't seem like a robust equality test. Is there such a thing?
> 
> Do you have a different recommendation?
> _______________________________________________
> mpich-discuss mailing list     mpich-discuss at mcs.anl.gov
> To manage subscription options or unsubscribe:
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss



More information about the mpich-discuss mailing list