On Jul 4, 2007, at 2:28 PM, Karol Mroz wrote:

In order to have this, though, I'd need to be able to fetch the context
and tag information from the header when it arrives at the BTL. This
data appears to have been transformed somehow when it gets to that
layer, though, and I'm trying to figure out how. Has something arcane
been done to this data aside from switching byte ordering?

I have a hard time to figure out how do you know what kind of header you're working on ? I suspect that looking into the first char in the pointer you can find out what's there but only if you know what PML you're working for. That will tie your BTL to a specific PML (right now I suppose it's OB1). But try to run with DR and you will see that your approach will not work.

If you really think that getting access to the MPI level tags and context it's a very important information fro you then the BTL is not the right way to go. Implement a MTL (the one that work with the CM PML) instead of a BTL. There you will have access to the full information of the MPI level. However, keep in mind that you will lose multi BTL support, all pipeline and fault tolerance features and that you will have to support by yourself the communications in the same node and in the same process. But, if you really need the MPI level information that the only consistent way to do it.

  george.


Thanks,
Karol
George Bosilca wrote:

Karol,

There is no way to know the MPI tag at the BTL level. The BTL is
protocol agnostic, it only moves bytes around (BTL = Byte Transport
Layer). Moreover, the BTLs can be (and are) used by different PML,
each of them supporting a different protocol.

Now, let talk specifically about the OB1 PML. The first X bytes
contain a message header, but this message header differ based on the
protocol used to transmit the message. There are multiple protocols:
eager, send/recv, RDMA. If you look in ompi/mca/pml/ob1/ pml_ob1_hdr.h
you will see the different types of headers used by the OB1 PML.
However, do not use this file in the BTL, as the BTL is PML agnostic.

  Thanks,
    george.

On Jul 2, 2007, at 4:56 PM, Karol Mroz wrote:


Good morning everyone. I had a question about obtaining the message tag
from the iovec array in mca_btl_sctp_frag_t* frag from within the
mca_btl_tcp_frag_send() function. If I understand correctly, the first X bytes in the first iovec entry contain message header information in the form of an mca_pml_ob1_match_hdr_t struct that contains a hdr_tag field.
When I extract this, I get a number that resembles an address.
Dereferencing this gives, from what I can tell, an incorrect value and
passing the value into ntohl() etc brings me no closer. There is
probably something basic I'm overlooking... any help would be
appreciated.

Thanks,
Karol

--Karol Mroz
km...@cs.ubc.ca

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

-------------------------------------------------------------------- ----

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel



--
Karol Mroz
km...@cs.ubc.ca

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to