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