[Pvfs2-developers] BMI questions
Scott Atchley
atchley at myri.com
Thu Nov 30 14:16:23 EST 2006
On Nov 30, 2006, at 12:13 PM, Sam Lang wrote:
> On Nov 30, 2006, at 9:27 AM, Scott Atchley wrote:
>
>> Hi all,
>>
>> No one replied the the original post. The one I am most curious
>> about is (3). Is FlowBufferSizeBytes available to the BMI
>> implementations?
>
> Hi Scott,
>
> Sorry for not responding. I've included responses to your
> questions inline.
No problem. I have been side-tracked on a couple things as well.
>> I am thinking about how to handle BMI_mx_memalloc(). I might be
>> able to assist the reg cache in MX if I do things a certain way.
>
> I mention this below, on the server we always call BMI_memalloc to
> allocate buffers and post them to BMI_post_send/BMI_post_recv. On
> the client that's not always the case, the user buffer is usually
> passed directly to BMI_post_send/BMI_post_recv. Would it help you
> to know in advance of the post (or all posts) what the maximum size
> of a buffer for BMI_post_send/BMI_post_recv is going to be? We
> might be able to add a BMI info option that other methods could
> ignore. We do limit it, but its all above the BMI interface that
> this is done.
Knowing the max size in advance helps iff the buffers are allocated
using BMI_memalloc(). If not, it does not matter.
>>> 1. Is there an upper bound on how many transfer operations
>>> between a pair of hosts at any one time (i.e. between a client
>>> and host)?
>
> There is a max of unexpected requests (UnexpectedRequests option in
> the config file, defaults to 50). This limits the number of
> unexpected messages that can be handled at once by the server, but
> doesn't limit the number of IO operations (large expected messages).
I read this as the server will only service up to 50 unexpected
request, but that the client (or clients) can send more. Is that
correct?
>>> 2. If there is a limit in the above and it is greater than 1, is
>>> that value the same for small (unexpected and some expected)
>>> messages and large (expected) messages? Or are large messages
>>> restricted to a lower value?
>
> So I don't think there's a limit at present for expected messages.
> The unexpected limit is the one I mentioned above.
Ok.
>>> 3. In the thread entitled "libpvfs2 usage", SamL mentioned the
>>> tunable called FlowBufferSizeBytes and that it is set to 256KB by
>>> default. Is this value the upper limit on large messages (i.e.
>>> 8KB < large messages <= FlowBufferSizeBytes assuming 8 KB is the
>>> maximum unexpected size)?
>
> Yes, on the server BMI_post_recv and BMI_post_send won't get called
> with values larger than that. On the client, there's no strict
> limit on the size of the messages posted.
Below, you seem to imply that client messages are broken into
FlowBufferSizeBytes chunks. That would make sense if a server never
allocated more than FlowBufferSizeBytes.
>>> Would the BMI method have any knowledge of what this value is
>>> (i.e. can it use FlowBufferSizeBytes to allocate large buffers)?
>
> On the server it does. BMI_memalloc is called from the flow with
> exactly the 256K (FlowBufferSizeBytes) value. The buffer returned
> is the one passed to BMI_post_recv or BMI_post_send (although, the
> size of the request may be less than 256K). On the client, the
> user buffer is used for calls to BMI_post_recv and BMI_post_send,
> so you won't see BMI_memalloc calls first. The client does break
> up the entire client request into chunks of FlowBufferSizeBytes for
> the BMI posts, but you won't know what that value is in advance of
> the post operations.
>
> -sam
Ok. Given that the client does not use BMI_memalloc(), I will not try
to do anything for BMI_memalloc() for now other than call malloc().
Do not worry about exposing the FlowBufferSizeBytes value for now.
Thanks,
Scott
More information about the Pvfs2-developers
mailing list