Eugene,

It appears this is a sm BTL problem. The prepare_src function can be called with any size. The BTL should check the size against the eager and return a descriptor that match the size requested.

  george.

On Feb 17, 2009, at 20:14 , Eugene Loh wrote:

(Rich:  same question as I asked you in private e-mail.)

Should the first fragment of a message be an eager fragment even when the message is long and a rendezvous protocol is employed?

So far as I can tell, a long MPI_Send starts like this:

   MPI_Send()
   mca_pml_ob1_send()
   mca_pml_ob1_send_request_start()
   mca_pml_ob1_send_request_start_btl()

http://svn.open-mpi.org/source/xref/ompi_1.3/ompi/mca/pml/ob1/pml_ob1_sendreq.h?r=20298#340
Here we see (e.g., line 368) that if we're over the eager limit, we try to send the first fragment with "eager" size. Then,

   mca_pml_ob1_send_request_start_rndv()
   mca_bml_base_prepare_src()
   mca_btl_sm_prepare_src()

But if we look at http://svn.open-mpi.org/source/xref/ompi_1.3/ompi/mca/btl/sm/btl_sm.c#mca_btl_sm_prepare_src it appears to alloc a "MAX" (not EAGER) fragment. Is this a "bug"? Should the BTL be allocating an EAGER fragment instead? Or, could this function possibly be called with size>eager? Or, should the BTL alloc a MAX *or* EAGER fragment depending on what size is requested?
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to