Handle the 0 count communications through the self module.
This commit was SVN r3017.
Этот коммит содержится в:
родитель
c19d1d330e
Коммит
356cc37c13
@ -141,6 +141,8 @@ void mca_ptl_self_matched( mca_ptl_base_module_t* ptl,
|
||||
frag->frag_base.frag_header.hdr_frag.hdr_src_ptr.pval;
|
||||
mca_pml_base_recv_request_t* recvreq = frag->frag_request;
|
||||
|
||||
if( (recvreq->req_base.req_count != 0) &&
|
||||
(sendreq->req_send.req_base.req_count != 0) ) {
|
||||
/* Did you have the same datatype or not ? If yes we can use an optimized version
|
||||
* for the copy function, if not we have to use a temporary buffer to pack/unpack
|
||||
*
|
||||
@ -150,8 +152,7 @@ void mca_ptl_self_matched( mca_ptl_base_module_t* ptl,
|
||||
*/
|
||||
if( sendreq->req_send.req_base.req_datatype == recvreq->req_base.req_datatype &&
|
||||
sendreq->req_send.req_send_mode != MCA_PML_BASE_SEND_BUFFERED) {
|
||||
ompi_ddt_copy_content_same_ddt(
|
||||
recvreq->req_base.req_datatype,
|
||||
ompi_ddt_copy_content_same_ddt( recvreq->req_base.req_datatype,
|
||||
recvreq->req_base.req_count,
|
||||
recvreq->req_base.req_addr,
|
||||
sendreq->req_send.req_base.req_addr );
|
||||
@ -166,8 +167,7 @@ void mca_ptl_self_matched( mca_ptl_base_module_t* ptl,
|
||||
length = 64 * 1024;
|
||||
buf = malloc( length * sizeof(char) );
|
||||
|
||||
ompi_convertor_init_for_recv(
|
||||
&frag->frag_base.frag_convertor,
|
||||
ompi_convertor_init_for_recv( &frag->frag_base.frag_convertor,
|
||||
0,
|
||||
recvreq->req_base.req_datatype,
|
||||
recvreq->req_base.req_count,
|
||||
@ -190,7 +190,9 @@ void mca_ptl_self_matched( mca_ptl_base_module_t* ptl,
|
||||
}
|
||||
free( buf );
|
||||
}
|
||||
ptl->ptl_send_progress( ptl, &sendreq->req_send, sendreq->req_send.req_bytes_packed );
|
||||
}
|
||||
ptl->ptl_send_progress( ptl, &sendreq->req_send,
|
||||
sendreq->req_send.req_bytes_packed );
|
||||
ptl->ptl_recv_progress( ptl,
|
||||
recvreq,
|
||||
frag->frag_base.frag_header.hdr_frag.hdr_frag_length,
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user