Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Karol Mroz (kmroz_at_[hidden])
Date: 2007-07-04 14:28:33


I wanted to post another followup to this message.

I realize that the design philosophy implies that the BTL should operate
at a level of abstraction where it merely shuttles bytes around.
However, my recent experience suggests that it might actually be useful
to have the ability to selectively query the context in which this data
is being used, such as message tags, contexts, etc.

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?

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
>>> kmroz_at_[hidden]
>>>
>>> _______________________________________________
>>> devel mailing list
>>> devel_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>

-- 
Karol Mroz
kmroz_at_[hidden]