On Nov 30, 2006, at 1:41 PM, Scott Atchley wrote:

On Nov 30, 2006, at 2:30 PM, Sam Lang wrote:

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.

So an extra BMI info option would help on the server?

Possibly. Let's wait to optimize until after the core functionality it working. :-)

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?

Yes that's correct. There's no limit on unexpected messages a client can send to one particular, or any number of servers.

This makes me worry about overwhelming a server again (i.e. the need for flow control).

Yeah I agree. Its not completely clear to me what happens when a server gets overloaded, and is probably something we need to look into. Maybe someone with more experience in the flow and bmi code knows something I don't though.


In all transactions, the client initiates it using an unexpected. Do all transactions end with the server sending an expected message to the client (regardless of how many intermediate sends the client and server send back and forth)? Or is it possible that the last message is an expected send from a client to the server?

Right now all our operations (or transactions, as you call them) start with an unexpected message from the client, and end with an expected message from the server. I don't know if that's a design requirement of BMI though, or just an artifact of how we use it in PVFS. I _think_ the BMI interfaces were meant to allow expected messages in either direction in any order, and its left up to the upper layers to make sure they get posted right, but again, I would have to defer to one of the BMI sages. Are you able to do some kind of pre-posting if you know there's always an expected coming back?

-sam



Scott


_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to