Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] Can we avoid derived datatypes?
From: devendra rai (rai.devendra_at_[hidden])
Date: 2012-01-04 11:31:55

Hello All, I need to send a struct- datatype over MPI. Currently, I send the strcture as a series of MPI_BYTEs and on the other end, I dereference it as though it were a struct- type. Something like this: MPI_Ssend((void*)&MasterSlavePayload, sizeof(MasterSlavePayload), MPI_BYTE, destNode,MASTERSLAVECONTROLMESSAGE,MPI_COMM_WORLD); where MasterSlavePayload is a structure variable. This currently seems to work, where we have a homogenous environment: same hardware configuration, and same operating system. The question is: Is this approach portable? Safe? And whether this will work on a system of nodes with mixed processor types? I read from MPI tutorials "...Primitive data types are contiguous. Derived data types allow you to specify non-contiguous data in a convenient manner and to treat it as though it was contiguous. " So, since I am using a primitive data type, does it mean that the packing of elements is maintained across the MPI_Send/MPI_Recv process? If so, it would mean that the approach that I use should work. Any ideas? Thanks a lot, best Devendra