1
1

Merge pull request #637 from jithinjosepkl/pr/pml-cm-opt

pml-cm bug fixes
Этот коммит содержится в:
rhc54 2015-06-15 19:25:09 -07:00
родитель ea78f8226d 7ccde09a09
Коммит 9a8bda0b72
2 изменённых файлов: 62 добавлений и 1 удалений

Просмотреть файл

@ -40,6 +40,7 @@ ompi_mtl_datatype_pack(struct opal_convertor_t *convertor,
#if !(OPAL_ENABLE_HETEROGENEOUS_SUPPORT) #if !(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
if (convertor->pDesc && if (convertor->pDesc &&
!(convertor->flags & CONVERTOR_COMPLETED) &&
opal_datatype_is_contiguous_memory_layout(convertor->pDesc, opal_datatype_is_contiguous_memory_layout(convertor->pDesc,
convertor->count)) { convertor->count)) {
*freeAfter = false; *freeAfter = false;

Просмотреть файл

@ -115,6 +115,66 @@ do { \
} }
#endif #endif
#if (OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
#define MCA_PML_CM_HVY_SEND_REQUEST_INIT_COMMON(req_send, \
ompi_proc, \
comm, \
tag, \
datatype, \
sendmode, \
buf, \
count) \
{ \
OBJ_RETAIN(comm); \
OBJ_RETAIN(datatype); \
(req_send)->req_base.req_comm = comm; \
(req_send)->req_base.req_datatype = datatype; \
opal_convertor_copy_and_prepare_for_send( \
ompi_proc->super.proc_convertor, \
&(datatype->super), \
count, \
buf, \
0, \
&(req_send)->req_base.req_convertor ); \
(req_send)->req_base.req_ompi.req_mpi_object.comm = comm; \
(req_send)->req_base.req_ompi.req_status.MPI_SOURCE = \
comm->c_my_rank; \
(req_send)->req_base.req_ompi.req_status.MPI_TAG = tag; \
(req_send)->req_base.req_ompi.req_status._ucount = count; \
(req_send)->req_send_mode = sendmode; \
(req_send)->req_base.req_free_called = false; \
}
#else
#define MCA_PML_CM_HVY_SEND_REQUEST_INIT_COMMON(req_send, \
ompi_proc, \
comm, \
tag, \
datatype, \
sendmode, \
buf, \
count) \
{ \
OBJ_RETAIN(comm); \
OBJ_RETAIN(datatype); \
(req_send)->req_base.req_comm = comm; \
(req_send)->req_base.req_datatype = datatype; \
opal_convertor_copy_and_prepare_for_send( \
ompi_mpi_local_convertor, \
&(datatype->super), \
count, \
buf, \
0, \
&(req_send)->req_base.req_convertor ); \
(req_send)->req_base.req_ompi.req_mpi_object.comm = comm; \
(req_send)->req_base.req_ompi.req_status.MPI_SOURCE = \
comm->c_my_rank; \
(req_send)->req_base.req_ompi.req_status.MPI_TAG = tag; \
(req_send)->req_base.req_ompi.req_status._ucount = count; \
(req_send)->req_send_mode = sendmode; \
(req_send)->req_base.req_free_called = false; \
}
#endif
#if (OPAL_ENABLE_HETEROGENEOUS_SUPPORT) #if (OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
#define MCA_PML_CM_SEND_REQUEST_INIT_COMMON(req_send, \ #define MCA_PML_CM_SEND_REQUEST_INIT_COMMON(req_send, \
ompi_proc, \ ompi_proc, \
@ -209,7 +269,7 @@ do { \
sendreq->req_peer = dst; \ sendreq->req_peer = dst; \
sendreq->req_addr = buf; \ sendreq->req_addr = buf; \
sendreq->req_count = count; \ sendreq->req_count = count; \
MCA_PML_CM_SEND_REQUEST_INIT_COMMON( (&sendreq->req_send), \ MCA_PML_CM_HVY_SEND_REQUEST_INIT_COMMON( (&sendreq->req_send), \
ompi_proc, \ ompi_proc, \
comm, \ comm, \
tag, \ tag, \