UNIQ use now the new datatype engine.
This commit was SVN r6016.
Этот коммит содержится в:
родитель
66e15238a6
Коммит
3517c87fe3
@ -77,9 +77,7 @@ bool mca_pml_uniq_recv_frag_match(
|
|||||||
if (NULL == frag->frag_base.frag_peer) {
|
if (NULL == frag->frag_base.frag_peer) {
|
||||||
frag->frag_base.frag_peer = mca_pml_uniq_proc_lookup_remote_peer(request->req_recv.req_base.req_comm,header->hdr_src,ptl);
|
frag->frag_base.frag_peer = mca_pml_uniq_proc_lookup_remote_peer(request->req_recv.req_base.req_comm,header->hdr_src,ptl);
|
||||||
}
|
}
|
||||||
|
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
|
||||||
/* notify ptl of match */
|
|
||||||
ptl->ptl_matched(ptl, frag);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "mca/ptl/ptl.h"
|
#include "mca/ptl/ptl.h"
|
||||||
#include "mca/pml/base/pml_base_recvreq.h"
|
#include "mca/pml/base/pml_base_recvreq.h"
|
||||||
#include "mca/ptl/base/ptl_base_recvfrag.h"
|
#include "mca/ptl/base/ptl_base_recvfrag.h"
|
||||||
|
#include "datatype/convertor.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by the PTL to match attempt a match for new fragments.
|
* Called by the PTL to match attempt a match for new fragments.
|
||||||
@ -38,5 +39,24 @@ bool mca_pml_uniq_recv_frag_match(
|
|||||||
mca_ptl_base_match_header_t* header
|
mca_ptl_base_match_header_t* header
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#define MCA_PML_UNIQ_RECV_MATCHED( ptl, frag ) \
|
||||||
|
do { \
|
||||||
|
mca_pml_base_recv_request_t* _request = (mca_pml_base_recv_request_t*)(frag)->frag_request; \
|
||||||
|
/* Now that we have the sender we can create the convertor. Additionally, we know */ \
|
||||||
|
/* that the required convertor should start at the position zero as we just match */ \
|
||||||
|
/* the first fragment. */ \
|
||||||
|
if( 0 != (_request)->req_bytes_packed ) { \
|
||||||
|
(_request)->req_base.req_proc = ompi_comm_peer_lookup( \
|
||||||
|
(_request)->req_base.req_comm, \
|
||||||
|
frag->frag_base.frag_header.hdr_match.hdr_src); \
|
||||||
|
ompi_convertor_copy_and_prepare_for_recv( \
|
||||||
|
(_request)->req_base.req_proc->proc_convertor, \
|
||||||
|
(_request)->req_base.req_datatype, \
|
||||||
|
(_request)->req_base.req_count, \
|
||||||
|
(_request)->req_base.req_addr, \
|
||||||
|
&((_request)->req_convertor) ); \
|
||||||
|
} \
|
||||||
|
ptl->ptl_matched( (ptl), (frag) ); /* notify ptl of match */ \
|
||||||
|
} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include "mca/ptl/base/ptl_base_comm.h"
|
#include "mca/ptl/base/ptl_base_comm.h"
|
||||||
#include "pml_uniq_recvreq.h"
|
#include "pml_uniq_recvreq.h"
|
||||||
#include "pml_uniq_sendreq.h"
|
#include "pml_uniq_sendreq.h"
|
||||||
|
#include "pml_uniq_recvfrag.h"
|
||||||
|
|
||||||
static mca_ptl_base_recv_frag_t* mca_pml_uniq_recv_request_match_specific_proc(
|
static mca_ptl_base_recv_frag_t* mca_pml_uniq_recv_request_match_specific_proc(
|
||||||
mca_ptl_base_recv_request_t* request, int proc);
|
mca_ptl_base_recv_request_t* request, int proc);
|
||||||
@ -153,7 +153,7 @@ void mca_pml_uniq_recv_request_match_specific(mca_ptl_base_recv_request_t* reque
|
|||||||
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
|
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
|
||||||
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
|
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
|
||||||
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
|
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
|
||||||
ptl->ptl_matched(ptl, frag);
|
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
|
||||||
}
|
}
|
||||||
return; /* match found */
|
return; /* match found */
|
||||||
}
|
}
|
||||||
@ -207,7 +207,7 @@ void mca_pml_uniq_recv_request_match_wild(mca_ptl_base_recv_request_t* request)
|
|||||||
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
|
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
|
||||||
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
|
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
|
||||||
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
|
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
|
||||||
ptl->ptl_matched(ptl, frag);
|
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
|
||||||
}
|
}
|
||||||
return; /* match found */
|
return; /* match found */
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user