MPI, MPI_Send/MPI_Recv send array with custom datatype

151 views Asked by At

I am trying to send array with custom datatype, I read about MPI_Type_create_struct but I could not implement it successfully; could anyone please help me with the following:

I want to send following datatype with MPI_Send:

std::array<filib::interval<double>, 6>

and for MPI_Recv I want to receive following datatype:

std::list<std::array<filib::interval<double>, 6>>

Now the problem is filib::interval is a custom datatype I am using from some other library and I am not quite sure how to integrate this datatype with MPI.

FILIB++ Interval Library is an interval library, for docs: Interval Library Docs

How should I approach this to send/receive this datatype from other processes?

1

There are 1 answers

1
julaine On

FILIB++ 2.0 intervals have methods "bitImage" and "readBitImage".

See the documentation pdf (page 31) 1

With these serialization methods it should be possible to send single intervals or lists of intervals as byte-arrays. Note that the datatypes must be specified by both sender and receiver in the template-instantiation and there will be no type-checking on that.

1 I really tried to find a better link to this document but failed. If anyone finds something please leave a comment