With current code this is not the case. Order tag is set during a fragment allocation. It seems wrong according to your description. Attached patch fixes this. If no specific ordering tag is provided to allocation function order of the fragment is set to be MCA_BTL_NO_ORDER. After call to send/put/ get order is set to whatever QP was used for communication. If order is set before send call
it is used to choose QP.


I do set the order tag during allocation/prepare, but the defined semantics are that the tag is only valid after send/put/get. We can set them up any where we wish in the BTL, the PML however cannot rely on anything until after the send/put/get call. So really this is an issue of semantics versus implementation. The implementation I believe does conform to the semantics as the upper layer (PML) doesn't use the tag value until after a call to send/put/get.

I will look over the patch however, might make more sense to delay setting the value until the actual send/put/get call.

Thanks,

Galen






--
                        Gleb.
<patch.diff>
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to