Dear all,
in one of my C codes developed using Open MPI v1.4.3 I need to call MPI_Allreduce() passing as sendbuf and recvbuf arguments two MPI_PACKED arrays. The reduction requires my own MPI_User_function that needs to MPI_Unpack() its first and second argument, process them and finally MPI_Pack() the result in the second argument.
I need to use MPI_Pack/MPI_Unpack because I am not able to create a derived datatype, since many data I need to send are dynamically allocated.
However, the code fails at runtime with the following message:
An error occurred in MPI_Unpack
on communicator MPI_COMM_WORLD
MPI_ERR_TRUNCATE: message truncated
MPI_ERRORS_ARE_FATAL (your MPI job will now abort)
I have verified that, after unpacking the data in my own reduction function, all of the data are wrong.
Is this possible in MPI? I did not find anything on the "MPI reference Volume 1" and "Using MPI" that prevents this. This should just require using as datatype MPI_PACKED in MPI_Allreduce() . However, searching on the web I did not find any examples.
Thank you in advance for any clue/suggestions/source code examples.
This is driving me crazy now ;-(
Massimo Cafaro
-
*******************************************************************************************************
Massimo Cafaro, Ph.D. Additional affiliations:
Assistant Professor Euro-Mediterranean Centre for Climate Change
Dept. of Engineering for Innovation SPACI Consortium
University of Salento, Lecce, Italy E-mail massimo.cafaro_at_[hidden]
Via per Monteroni massimo.cafaro_at_[hidden]
73100 Lecce, Italy cafaro_at_[hidden]
Voice/Fax +39 0832 297371 cafaro_at_[hidden]
Web http://sara.unisalento.it/~cafaro
*******************************************************************************************************
- application/pkcs7-signature attachment: smime.p7s
|