Avoid extra lookup for ompi_proc in homogenous build
Signed-off-by: Jithin Jose <jithin.jose@intel.com>
Этот коммит содержится в:
родитель
50089977ac
Коммит
07043894bd
@ -74,7 +74,9 @@ mca_pml_cm_irecv_init(void *addr,
|
|||||||
struct ompi_request_t **request)
|
struct ompi_request_t **request)
|
||||||
{
|
{
|
||||||
mca_pml_cm_hvy_recv_request_t *recvreq;
|
mca_pml_cm_hvy_recv_request_t *recvreq;
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t* ompi_proc;
|
ompi_proc_t* ompi_proc;
|
||||||
|
#endif
|
||||||
|
|
||||||
MCA_PML_CM_HVY_RECV_REQUEST_ALLOC(recvreq);
|
MCA_PML_CM_HVY_RECV_REQUEST_ALLOC(recvreq);
|
||||||
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -98,7 +100,9 @@ mca_pml_cm_irecv(void *addr,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
mca_pml_cm_thin_recv_request_t *recvreq;
|
mca_pml_cm_thin_recv_request_t *recvreq;
|
||||||
ompi_proc_t* ompi_proc;
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
|
ompi_proc_t* ompi_proc = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
||||||
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -136,7 +140,9 @@ mca_pml_cm_recv(void *addr,
|
|||||||
ompi_status_public_t * status)
|
ompi_status_public_t * status)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t *ompi_proc;
|
ompi_proc_t *ompi_proc;
|
||||||
|
#endif
|
||||||
opal_convertor_t convertor;
|
opal_convertor_t convertor;
|
||||||
mca_pml_cm_request_t req;
|
mca_pml_cm_request_t req;
|
||||||
mca_mtl_request_t *req_mtl =
|
mca_mtl_request_t *req_mtl =
|
||||||
@ -154,6 +160,7 @@ mca_pml_cm_recv(void *addr,
|
|||||||
req.req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS;
|
req.req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS;
|
||||||
req.req_ompi.req_status._cancelled = 0;
|
req.req_ompi.req_status._cancelled = 0;
|
||||||
|
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
if( MPI_ANY_SOURCE == src ) {
|
if( MPI_ANY_SOURCE == src ) {
|
||||||
ompi_proc = ompi_proc_local_proc;
|
ompi_proc = ompi_proc_local_proc;
|
||||||
} else {
|
} else {
|
||||||
@ -167,6 +174,16 @@ mca_pml_cm_recv(void *addr,
|
|||||||
addr,
|
addr,
|
||||||
0,
|
0,
|
||||||
&convertor );
|
&convertor );
|
||||||
|
#else
|
||||||
|
opal_convertor_copy_and_prepare_for_recv(
|
||||||
|
ompi_mpi_local_convertor,
|
||||||
|
&(datatype->super),
|
||||||
|
count,
|
||||||
|
addr,
|
||||||
|
0,
|
||||||
|
&convertor );
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = OMPI_MTL_CALL(irecv(ompi_mtl,
|
ret = OMPI_MTL_CALL(irecv(ompi_mtl,
|
||||||
comm,
|
comm,
|
||||||
src,
|
src,
|
||||||
@ -198,7 +215,9 @@ mca_pml_cm_isend_init(void* buf,
|
|||||||
ompi_request_t** request)
|
ompi_request_t** request)
|
||||||
{
|
{
|
||||||
mca_pml_cm_hvy_send_request_t *sendreq;
|
mca_pml_cm_hvy_send_request_t *sendreq;
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t* ompi_proc;
|
ompi_proc_t* ompi_proc;
|
||||||
|
#endif
|
||||||
|
|
||||||
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
||||||
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -225,7 +244,9 @@ mca_pml_cm_isend(void* buf,
|
|||||||
|
|
||||||
if(sendmode == MCA_PML_BASE_SEND_BUFFERED ) {
|
if(sendmode == MCA_PML_BASE_SEND_BUFFERED ) {
|
||||||
mca_pml_cm_hvy_send_request_t* sendreq;
|
mca_pml_cm_hvy_send_request_t* sendreq;
|
||||||
ompi_proc_t* ompi_proc;
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
|
ompi_proc_t* ompi_proc = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
||||||
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -248,7 +269,9 @@ mca_pml_cm_isend(void* buf,
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
mca_pml_cm_thin_send_request_t* sendreq;
|
mca_pml_cm_thin_send_request_t* sendreq;
|
||||||
ompi_proc_t* ompi_proc;
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
|
ompi_proc_t* ompi_proc = NULL;
|
||||||
|
#endif
|
||||||
MCA_PML_CM_THIN_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
MCA_PML_CM_THIN_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
||||||
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
|
||||||
@ -288,10 +311,11 @@ mca_pml_cm_send(void *buf,
|
|||||||
ompi_communicator_t* comm)
|
ompi_communicator_t* comm)
|
||||||
{
|
{
|
||||||
int ret = OMPI_ERROR;
|
int ret = OMPI_ERROR;
|
||||||
|
ompi_proc_t * ompi_proc;
|
||||||
|
|
||||||
if(sendmode == MCA_PML_BASE_SEND_BUFFERED) {
|
if(sendmode == MCA_PML_BASE_SEND_BUFFERED) {
|
||||||
mca_pml_cm_hvy_send_request_t *sendreq;
|
mca_pml_cm_hvy_send_request_t *sendreq;
|
||||||
ompi_proc_t * ompi_proc;
|
|
||||||
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, ompi_proc);
|
||||||
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
if (OPAL_UNLIKELY(NULL == sendreq)) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
|
||||||
@ -315,14 +339,13 @@ mca_pml_cm_send(void *buf,
|
|||||||
ompi_request_free( (ompi_request_t**)&sendreq );
|
ompi_request_free( (ompi_request_t**)&sendreq );
|
||||||
} else {
|
} else {
|
||||||
opal_convertor_t convertor;
|
opal_convertor_t convertor;
|
||||||
ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(comm, dst);
|
|
||||||
|
|
||||||
#if !(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
|
#if !(OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
|
||||||
if (opal_datatype_is_contiguous_memory_layout(&datatype->super, count)) {
|
if (opal_datatype_is_contiguous_memory_layout(&datatype->super, count)) {
|
||||||
|
|
||||||
convertor.remoteArch = ompi_proc->super.proc_convertor->remoteArch;
|
convertor.remoteArch = ompi_mpi_local_convertor->remoteArch;
|
||||||
convertor.flags = ompi_proc->super.proc_convertor->flags;
|
convertor.flags = ompi_mpi_local_convertor->flags;
|
||||||
convertor.master = ompi_proc->super.proc_convertor->master;
|
convertor.master = ompi_mpi_local_convertor->master;
|
||||||
|
|
||||||
convertor.local_size = count * datatype->super.size;
|
convertor.local_size = count * datatype->super.size;
|
||||||
convertor.pBaseBuf = (unsigned char*)buf;
|
convertor.pBaseBuf = (unsigned char*)buf;
|
||||||
@ -331,6 +354,7 @@ mca_pml_cm_send(void *buf,
|
|||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
ompi_proc = ompi_comm_peer_lookup(comm, dst);
|
||||||
opal_convertor_copy_and_prepare_for_send(
|
opal_convertor_copy_and_prepare_for_send(
|
||||||
ompi_proc->super.proc_convertor,
|
ompi_proc->super.proc_convertor,
|
||||||
&datatype->super, count, buf, 0,
|
&datatype->super, count, buf, 0,
|
||||||
@ -422,9 +446,10 @@ mca_pml_cm_imrecv(void *buf,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
mca_pml_cm_thin_recv_request_t *recvreq;
|
mca_pml_cm_thin_recv_request_t *recvreq;
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t* ompi_proc;
|
ompi_proc_t* ompi_proc;
|
||||||
|
#endif
|
||||||
ompi_communicator_t *comm = (*message)->comm;
|
ompi_communicator_t *comm = (*message)->comm;
|
||||||
int peer = (*message)->peer;
|
|
||||||
|
|
||||||
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
||||||
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -432,7 +457,7 @@ mca_pml_cm_imrecv(void *buf,
|
|||||||
MCA_PML_CM_THIN_RECV_REQUEST_INIT(recvreq,
|
MCA_PML_CM_THIN_RECV_REQUEST_INIT(recvreq,
|
||||||
ompi_proc,
|
ompi_proc,
|
||||||
comm,
|
comm,
|
||||||
peer,
|
(*message)->peer,
|
||||||
datatype,
|
datatype,
|
||||||
buf,
|
buf,
|
||||||
count);
|
count);
|
||||||
@ -453,9 +478,10 @@ mca_pml_cm_mrecv(void *buf,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
mca_pml_cm_thin_recv_request_t *recvreq;
|
mca_pml_cm_thin_recv_request_t *recvreq;
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t* ompi_proc;
|
ompi_proc_t* ompi_proc;
|
||||||
|
#endif
|
||||||
ompi_communicator_t *comm = (*message)->comm;
|
ompi_communicator_t *comm = (*message)->comm;
|
||||||
int peer = (*message)->peer;
|
|
||||||
|
|
||||||
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
MCA_PML_CM_THIN_RECV_REQUEST_ALLOC(recvreq);
|
||||||
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
if( OPAL_UNLIKELY(NULL == recvreq) ) return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -463,7 +489,7 @@ mca_pml_cm_mrecv(void *buf,
|
|||||||
MCA_PML_CM_THIN_RECV_REQUEST_INIT(recvreq,
|
MCA_PML_CM_THIN_RECV_REQUEST_INIT(recvreq,
|
||||||
ompi_proc,
|
ompi_proc,
|
||||||
comm,
|
comm,
|
||||||
peer,
|
(*message)->peer,
|
||||||
datatype,
|
datatype,
|
||||||
buf,
|
buf,
|
||||||
count);
|
count);
|
||||||
|
@ -85,6 +85,7 @@ do { \
|
|||||||
* @param comm (IN) Communicator.
|
* @param comm (IN) Communicator.
|
||||||
* @param persistent (IN) Is this a ersistent request.
|
* @param persistent (IN) Is this a ersistent request.
|
||||||
*/
|
*/
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
#define MCA_PML_CM_THIN_RECV_REQUEST_INIT( request, \
|
#define MCA_PML_CM_THIN_RECV_REQUEST_INIT( request, \
|
||||||
ompi_proc, \
|
ompi_proc, \
|
||||||
comm, \
|
comm, \
|
||||||
@ -115,7 +116,35 @@ do { \
|
|||||||
0, \
|
0, \
|
||||||
&(request)->req_base.req_convertor ); \
|
&(request)->req_base.req_convertor ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
#else
|
||||||
|
#define MCA_PML_CM_THIN_RECV_REQUEST_INIT( request, \
|
||||||
|
ompi_proc, \
|
||||||
|
comm, \
|
||||||
|
src, \
|
||||||
|
datatype, \
|
||||||
|
addr, \
|
||||||
|
count ) \
|
||||||
|
do { \
|
||||||
|
OMPI_REQUEST_INIT(&(request)->req_base.req_ompi, false); \
|
||||||
|
(request)->req_base.req_ompi.req_mpi_object.comm = comm; \
|
||||||
|
(request)->req_base.req_pml_complete = false; \
|
||||||
|
(request)->req_base.req_free_called = false; \
|
||||||
|
request->req_base.req_comm = comm; \
|
||||||
|
request->req_base.req_datatype = datatype; \
|
||||||
|
OBJ_RETAIN(comm); \
|
||||||
|
OBJ_RETAIN(datatype); \
|
||||||
|
\
|
||||||
|
opal_convertor_copy_and_prepare_for_recv( \
|
||||||
|
ompi_mpi_local_convertor, \
|
||||||
|
&(datatype->super), \
|
||||||
|
count, \
|
||||||
|
addr, \
|
||||||
|
0, \
|
||||||
|
&(request)->req_base.req_convertor ); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
#define MCA_PML_CM_HVY_RECV_REQUEST_INIT( request, \
|
#define MCA_PML_CM_HVY_RECV_REQUEST_INIT( request, \
|
||||||
ompi_proc, \
|
ompi_proc, \
|
||||||
comm, \
|
comm, \
|
||||||
@ -152,7 +181,39 @@ do { \
|
|||||||
0, \
|
0, \
|
||||||
&(request)->req_base.req_convertor ); \
|
&(request)->req_base.req_convertor ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
#else
|
||||||
|
#define MCA_PML_CM_HVY_RECV_REQUEST_INIT( request, \
|
||||||
|
ompi_proc, \
|
||||||
|
comm, \
|
||||||
|
tag, \
|
||||||
|
src, \
|
||||||
|
datatype, \
|
||||||
|
addr, \
|
||||||
|
count, \
|
||||||
|
persistent) \
|
||||||
|
do { \
|
||||||
|
OMPI_REQUEST_INIT(&(request)->req_base.req_ompi, persistent); \
|
||||||
|
(request)->req_base.req_ompi.req_mpi_object.comm = comm; \
|
||||||
|
(request)->req_base.req_pml_complete = OPAL_INT_TO_BOOL(persistent); \
|
||||||
|
(request)->req_base.req_free_called = false; \
|
||||||
|
request->req_base.req_comm = comm; \
|
||||||
|
request->req_base.req_datatype = datatype; \
|
||||||
|
request->req_tag = tag; \
|
||||||
|
request->req_peer = src; \
|
||||||
|
request->req_addr = addr; \
|
||||||
|
request->req_count = count; \
|
||||||
|
OBJ_RETAIN(comm); \
|
||||||
|
OBJ_RETAIN(datatype); \
|
||||||
|
\
|
||||||
|
opal_convertor_copy_and_prepare_for_recv( \
|
||||||
|
ompi_mpi_local_convertor, \
|
||||||
|
&(datatype->super), \
|
||||||
|
count, \
|
||||||
|
addr, \
|
||||||
|
0, \
|
||||||
|
&(request)->req_base.req_convertor ); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start an initialized request.
|
* Start an initialized request.
|
||||||
@ -315,7 +376,6 @@ do { \
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern void mca_pml_cm_recv_request_completion(struct mca_mtl_request_t *mtl_request);
|
extern void mca_pml_cm_recv_request_completion(struct mca_mtl_request_t *mtl_request);
|
||||||
extern void mca_pml_cm_recv_fast_completion(struct mca_mtl_request_t *mtl_request);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ typedef struct mca_pml_cm_hvy_send_request_t mca_pml_cm_hvy_send_request_t;
|
|||||||
OBJ_CLASS_DECLARATION(mca_pml_cm_hvy_send_request_t);
|
OBJ_CLASS_DECLARATION(mca_pml_cm_hvy_send_request_t);
|
||||||
|
|
||||||
|
|
||||||
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
#define MCA_PML_CM_THIN_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
#define MCA_PML_CM_THIN_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
||||||
ompi_proc) \
|
ompi_proc) \
|
||||||
do { \
|
do { \
|
||||||
@ -74,8 +75,20 @@ do { \
|
|||||||
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
||||||
} \
|
} \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
#else
|
||||||
|
#define MCA_PML_CM_THIN_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
||||||
|
ompi_proc) \
|
||||||
|
do { \
|
||||||
|
sendreq = (mca_pml_cm_thin_send_request_t*) \
|
||||||
|
opal_free_list_wait (&mca_pml_base_send_requests); \
|
||||||
|
sendreq->req_send.req_base.req_pml_type = MCA_PML_CM_REQUEST_SEND_THIN; \
|
||||||
|
sendreq->req_mtl.ompi_req = (ompi_request_t*) sendreq; \
|
||||||
|
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if (OPAL_ENABLE_HETEROGENEOUS_SUPPORT)
|
||||||
#define MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
#define MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
||||||
ompi_proc) \
|
ompi_proc) \
|
||||||
{ \
|
{ \
|
||||||
@ -90,7 +103,17 @@ do { \
|
|||||||
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
#define MCA_PML_CM_HVY_SEND_REQUEST_ALLOC(sendreq, comm, dst, \
|
||||||
|
ompi_proc) \
|
||||||
|
{ \
|
||||||
|
sendreq = (mca_pml_cm_hvy_send_request_t*) \
|
||||||
|
opal_free_list_wait (&mca_pml_base_send_requests); \
|
||||||
|
sendreq->req_send.req_base.req_pml_type = MCA_PML_CM_REQUEST_SEND_HEAVY; \
|
||||||
|
sendreq->req_mtl.ompi_req = (ompi_request_t*) sendreq; \
|
||||||
|
sendreq->req_mtl.completion_callback = mca_pml_cm_send_request_completion; \
|
||||||
|
}
|
||||||
|
#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, \
|
||||||
@ -138,11 +161,11 @@ do { \
|
|||||||
(req_send)->req_base.req_datatype = datatype; \
|
(req_send)->req_base.req_datatype = datatype; \
|
||||||
if (opal_datatype_is_contiguous_memory_layout(&datatype->super, count)) { \
|
if (opal_datatype_is_contiguous_memory_layout(&datatype->super, count)) { \
|
||||||
(req_send)->req_base.req_convertor.remoteArch = \
|
(req_send)->req_base.req_convertor.remoteArch = \
|
||||||
ompi_proc->super.proc_convertor->remoteArch; \
|
ompi_mpi_local_convertor->remoteArch; \
|
||||||
(req_send)->req_base.req_convertor.flags = \
|
(req_send)->req_base.req_convertor.flags = \
|
||||||
ompi_proc->super.proc_convertor->flags; \
|
ompi_mpi_local_convertor->flags; \
|
||||||
(req_send)->req_base.req_convertor.master = \
|
(req_send)->req_base.req_convertor.master = \
|
||||||
ompi_proc->super.proc_convertor->master; \
|
ompi_mpi_local_convertor->master; \
|
||||||
(req_send)->req_base.req_convertor.local_size = \
|
(req_send)->req_base.req_convertor.local_size = \
|
||||||
count * datatype->super.size; \
|
count * datatype->super.size; \
|
||||||
(req_send)->req_base.req_convertor.pBaseBuf = (unsigned char*)buf; \
|
(req_send)->req_base.req_convertor.pBaseBuf = (unsigned char*)buf; \
|
||||||
@ -150,7 +173,7 @@ do { \
|
|||||||
(req_send)->req_base.req_convertor.pDesc = &datatype->super; \
|
(req_send)->req_base.req_convertor.pDesc = &datatype->super; \
|
||||||
} else { \
|
} else { \
|
||||||
opal_convertor_copy_and_prepare_for_send( \
|
opal_convertor_copy_and_prepare_for_send( \
|
||||||
ompi_proc->super.proc_convertor, \
|
ompi_mpi_local_convertor, \
|
||||||
&(datatype->super), \
|
&(datatype->super), \
|
||||||
count, \
|
count, \
|
||||||
buf, \
|
buf, \
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user