(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?

Reply via email to