Major modification of the vprotocol framework build system. With a better integration in autogen.sh, it allows for generating static-components.h the usual way.
NOTE: This build system does not work with the current autogen.sh. Modified one is under heavy testing to make sure it does not have side effects This commit was SVN r16110.
Этот коммит содержится в:
родитель
b4c68c0925
Коммит
828af95be8
@ -1,3 +1 @@
|
||||
bouteill
|
||||
bosilca
|
||||
coti
|
||||
|
@ -24,32 +24,25 @@ component_noinst = libmca_pml_v.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
SUBDIRS = $(MCA_pml_v_PROTOCOLS)
|
||||
SUBDIRS = vprotocol $(MCA_pml_v_SUBDIRS)
|
||||
|
||||
local_sources = \
|
||||
pml_v.c \
|
||||
pml_v.h \
|
||||
pml_v_component.c \
|
||||
pml_v_output.h \
|
||||
pml_v_output.c \
|
||||
vprotocol.h \
|
||||
base/base.h \
|
||||
base/vprotocol_base.c \
|
||||
base/vprotocol_base_select.c \
|
||||
base/vprotocol_base_parasite.c \
|
||||
base/vprotocol_base_request.h \
|
||||
base/vprotocol_base_request.c
|
||||
pml_v_output.c
|
||||
|
||||
mcacomponentdir = $(libdir)/openmpi
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_pml_v_la_SOURCES = $(local_sources)
|
||||
mca_pml_v_la_LIBADD =
|
||||
mca_pml_v_la_LIBADD = vprotocol/libmca_vprotocol.la
|
||||
mca_pml_v_la_CFLAGS =
|
||||
mca_pml_v_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
noinst_LTLIBRARIES = $(component_noinst)
|
||||
libmca_pml_v_la_SOURCES = $(local_sources)
|
||||
libmca_pml_v_la_LIBADD =
|
||||
libmca_pml_v_la_LIBADD = vprotocol/libmca_vprotocol.la
|
||||
libmca_pml_v_la_CFLAGS =
|
||||
libmca_pml_v_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
|
@ -9,11 +9,53 @@
|
||||
#
|
||||
|
||||
AC_DEFUN([MCA_pml_v_CONFIG],[
|
||||
protocol_subdirs=""
|
||||
while read protocol; do
|
||||
echo "Adding $protocol to pml_v subdirs"
|
||||
protocol_subdirs="$protocol $protocol_subdirs"
|
||||
done <$srcdir/ompi/mca/pml/v/autogen.vprotocols
|
||||
|
||||
AC_SUBST(MCA_pml_v_PROTOCOLS, [$protocol_subdirs])
|
||||
# We are going to make recursive call in shell, nothing is impossible
|
||||
# Still, this is not really smart or clean
|
||||
(
|
||||
# Change srcdir (for DIRECT builds)
|
||||
srcdir=`cd $srcdir && pwd`
|
||||
srcdir="$srcdir/$project/mca/$framework/$component"
|
||||
|
||||
# Create directory structure (for VPATH builds)
|
||||
AS_MKDIR_P("$project/mca/$framework/$component/vprotocol")
|
||||
cd "$project/mca/$framework/$component"
|
||||
rm -f vprotocol/mca && ln -s . vprotocol/mca
|
||||
rm -f vprotocol/vprotocol && ln -s . vprotocol/vprotocol
|
||||
|
||||
MCA_CONFIGURE_FRAMEWORK(vprotocol, vprotocol, 1)
|
||||
|
||||
cat >mca_vprotocol_config_output <<EOF
|
||||
#
|
||||
# /!\ This is Automatically generated file. Do not edit.
|
||||
#
|
||||
|
||||
# Apply the modifications to current shell context
|
||||
MCA_vprotocol_ALL_COMPONENTS="$MCA_vprotocol_ALL_COMPONENTS"
|
||||
MCA_vprotocol_STATIC_COMPONENTS="$MCA_vprotocol_STATIC_COMPONENTS"
|
||||
MCA_vprotocol_DSO_COMPONENTS="$MCA_vprotocol_DSO_COMPONENTS"
|
||||
MCA_vprotocol_STATIC_LTLIBS="$MCA_vprotocol_STATIC_LTLIBS"
|
||||
|
||||
AC_SUBST(MCA_vprotocol_ALL_COMPONENTS)
|
||||
AC_SUBST(MCA_vprotocol_STATIC_COMPONENTS)
|
||||
AC_SUBST(MCA_vprotocol_DSO_COMPONENTS)
|
||||
AC_SUBST(MCA_vprotocol_STATIC_LTLIBS)
|
||||
|
||||
OMPI_MCA_MAKE_DIR_LIST(MCA_vprotocol_ALL_SUBDIRS, vprotocol, [$MCA_vprotocol_ALL_COMPONENTS])
|
||||
OMPI_MCA_MAKE_DIR_LIST(MCA_vprotocol_STATIC_SUBDIRS, vprotocol, [$MCA_vprotocol_STATIC_COMPONENTS])
|
||||
OMPI_MCA_MAKE_DIR_LIST(MCA_vprotocol_DSO_SUBDIRS, vprotocol, [$MCA_vprotocol_DSO_COMPONENTS])
|
||||
|
||||
m4_foreach(mca_component, [mca_vprotocol_no_config_component_list],
|
||||
[m4_ifval(mca_component, [
|
||||
[BUILD_vprotocol_]mca_component[_DSO]="$[BUILD_vprotocol_]mca_component[_DSO]"
|
||||
AM_CONDITIONAL([OMPI_BUILD_vprotocol_]mca_component[_DSO], test "$[BUILD_vprotocol_]mca_component[_DSO]" = "1")])])
|
||||
|
||||
m4_foreach(mca_component, [mca_vprotocol_m4_config_component_list],
|
||||
[m4_ifval(mca_component, [
|
||||
[BUILD_vprotocol_]mca_component[_DSO]= $[BUILD_vprotocol_]mca_component[_DSO]
|
||||
AM_CONDITIONAL([OMPI_BUILD_vprotocol_]mca_component[_DSO], test "$[BUILD_vprotocol_]mca_component[_DSO]" = "1")])])
|
||||
EOF
|
||||
)
|
||||
|
||||
# Reload the output from vprotocol framework's config
|
||||
. $project/mca/$framework/$component/mca_vprotocol_config_output
|
||||
])
|
||||
|
@ -12,14 +12,16 @@
|
||||
# Specific to this module
|
||||
|
||||
PARAM_INIT_FILE=pml_v.c
|
||||
PARAM_CONFIG_HEADER_FILE="v_config.h"
|
||||
PARAM_CONFIG_FILES="Makefile"
|
||||
|
||||
>autogen.vprotocols
|
||||
|
||||
for protocol in protocol_*; do
|
||||
( cd $pd_ompi_topdir
|
||||
process_dir "$pd_dir/$protocol" $pd_ompi_topdir
|
||||
)
|
||||
done
|
||||
|
||||
# Operate on the vprotocol framework directory to detect and configure all
|
||||
# the vprotocols.
|
||||
(
|
||||
cd $pd_ompi_topdir
|
||||
mv "$mca_no_config_env_file" "$mca_no_config_env_file.bak"
|
||||
mv "$mca_m4_config_env_file" "$mca_m4_config_env_file.bak"
|
||||
process_framework $pd_dir/vprotocol $rg_cwd vprotocol vprotocol
|
||||
mv "$mca_no_config_env_file.bak" "$mca_no_config_env_file"
|
||||
mv "$mca_m4_config_env_file.bak" "$mca_m4_config_env_file"
|
||||
)
|
||||
|
@ -16,8 +16,8 @@
|
||||
#include "ompi/constants.h"
|
||||
#include "ompi/mca/pml/base/base.h"
|
||||
#include "pml_v.h"
|
||||
#include "vprotocol.h"
|
||||
#include "base/base.h"
|
||||
#include "vprotocol/vprotocol.h"
|
||||
#include "vprotocol/base/base.h"
|
||||
|
||||
static int mca_pml_v_component_open(void);
|
||||
static int mca_pml_v_component_close(void);
|
||||
|
@ -1,10 +0,0 @@
|
||||
/*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
|
||||
|
||||
const mca_base_component_t *mca_vprotocol_base_static_components[] = {
|
||||
|
||||
NULL
|
||||
};
|
39
ompi/mca/pml/v/vprotocol/Makefile.am
Обычный файл
39
ompi/mca/pml/v/vprotocol/Makefile.am
Обычный файл
@ -0,0 +1,39 @@
|
||||
#
|
||||
# Copyright (c) 2004-2007 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# iterate trough the components
|
||||
SUBDIRS= $(MCA_vprotocol_ALL_SUBDIRS)
|
||||
|
||||
# main library setup
|
||||
noinst_LTLIBRARIES = libmca_vprotocol.la
|
||||
libmca_vprotocol_la_SOURCES =
|
||||
|
||||
# header setup
|
||||
nobase_ompi_HEADERS =
|
||||
nobase_nodist_ompi_HEADERS =
|
||||
|
||||
# local files
|
||||
headers = vprotocol.h
|
||||
libmca_vprotocol_la_SOURCES += $(headers) $(nodist_headers)
|
||||
|
||||
# Conditionally install the header files
|
||||
if WANT_INSTALL_HEADERS
|
||||
nobase_ompi_HEADERS += $(headers)
|
||||
nobase_nodist_ompi_HEADERS += $(nodist_headers)
|
||||
ompidir = $(includedir)/openmpi/ompi/mca/vprotocol
|
||||
else
|
||||
ompidir = $(includedir)
|
||||
endif
|
||||
|
||||
include base/Makefile.am
|
||||
|
||||
distclean-local:
|
||||
rm -f base/static-components.h
|
20
ompi/mca/pml/v/vprotocol/base/Makefile.am
Обычный файл
20
ompi/mca/pml/v/vprotocol/base/Makefile.am
Обычный файл
@ -0,0 +1,20 @@
|
||||
#
|
||||
# Copyright (c) 2004-2007 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
headers += \
|
||||
base/base.h \
|
||||
base/vprotocol_base_request.h
|
||||
|
||||
libmca_vprotocol_la_SOURCES += \
|
||||
base/vprotocol_base.c \
|
||||
base/vprotocol_base_select.c \
|
||||
base/vprotocol_base_parasite.c \
|
||||
base/vprotocol_base_request.c
|
@ -10,7 +10,7 @@
|
||||
#include "base.h"
|
||||
#include "opal/mca/mca.h"
|
||||
#include "opal/mca/base/base.h"
|
||||
#include "static-components.h"
|
||||
#include "ompi/mca/pml/v/vprotocol/base/static-components.h"
|
||||
|
||||
opal_list_t mca_vprotocol_base_components_available;
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "ompi_config.h"
|
||||
#include "ompi/mca/pml/base/pml_base_request.h"
|
||||
#include "../vprotocol.h"
|
||||
#include "../pml_v.h"
|
||||
#include "../../pml_v.h"
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
@ -16,7 +16,7 @@ include $(top_ompi_srcdir)/config/Makefile.options
|
||||
# protocol_<name>.la (for DSO builds) or libprotocol_<name>.la
|
||||
# (for static builds).
|
||||
|
||||
if OMPI_BUILD_pml_v_DSO
|
||||
if OMPI_BUILD_vprotocol_pessimist_DSO
|
||||
component_noinst =
|
||||
component_install = mca_vprotocol_pessimist.la
|
||||
else
|
@ -12,9 +12,4 @@
|
||||
# Specific to this module
|
||||
|
||||
PARAM_INIT_FILE=vprotocol_pessimist.c
|
||||
PARAM_CONFIG_HEADER_FILE="vprotocol_pessimist_config.h"
|
||||
PARAM_CONFIG_FILES="Makefile"
|
||||
|
||||
|
||||
# Mandatory for all vprotocol
|
||||
echo `basename \`pwd\`` >> ../autogen.vprotocols
|
@ -9,7 +9,6 @@
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
|
||||
int mca_vprotocol_pessimist_add_comm(struct ompi_communicator_t* comm)
|
@ -16,7 +16,7 @@
|
||||
#include "ompi/mca/pml/base/pml_base_request.h"
|
||||
|
||||
typedef uint64_t vprotocol_pessimist_clock_t;
|
||||
#define PRIpclock PRIx64
|
||||
#define PRIpclock "ullx"
|
||||
|
||||
typedef enum {
|
||||
VPROTOCOL_PESSIMIST_EVENT_TYPE_MATCHING,
|
@ -10,7 +10,6 @@
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "ompi/request/request.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
|
||||
static inline int replay_iprobe(int src, int tag,
|
@ -9,7 +9,6 @@
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
|
||||
int mca_vprotocol_pessimist_add_procs(struct ompi_proc_t **procs, size_t nprocs)
|
@ -9,7 +9,6 @@
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
|
||||
int mca_vprotocol_pessimist_progress(void)
|
@ -11,7 +11,6 @@
|
||||
#include "ompi_config.h"
|
||||
#include "ompi/request/request.h"
|
||||
#include "ompi/mca/pml/base/pml_base_recvreq.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "ompi_config.h"
|
||||
#include "vprotocol_pessimist_request.h"
|
||||
#include "vprotocol_pessimist_eventlog.h"
|
||||
#include "../../base/pml_base_request.h"
|
||||
#include "ompi/mca/pml/base/pml_base_request.h"
|
||||
|
||||
static void vprotocol_pessimist_request_construct(mca_pml_base_request_t *req);
|
||||
|
@ -9,7 +9,6 @@
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
#include "../pml_v.h"
|
||||
#include "vprotocol_pessimist.h"
|
||||
#include "vprotocol_pessimist_sender_based.h"
|
||||
|
@ -87,6 +87,7 @@ void vprotocol_pessimist_sender_based_alloc(size_t len)
|
||||
/* How much space left for application data */
|
||||
sb.sb_available = sb.sb_length - sb.sb_cursor;
|
||||
|
||||
#if 0
|
||||
if(-1 == lseek(sb.sb_fd, sb.sb_offset + sb.sb_length, SEEK_SET))
|
||||
{
|
||||
V_OUTPUT_ERR("pml_v: vprotocol_pessimist: sender_based_alloc: lseek: %s",
|
||||
@ -104,6 +105,8 @@ void vprotocol_pessimist_sender_based_alloc(size_t len)
|
||||
sb.sb_addr = (uintptr_t) mmap((void *) sb.sb_addr, sb.sb_length,
|
||||
PROT_WRITE | PROT_READ, MAP_SHARED, sb.sb_fd,
|
||||
sb.sb_offset);
|
||||
#endif
|
||||
sb.sb_addr = (uintptr_t) malloc(sb.sb_length);
|
||||
if(((uintptr_t) -1) == sb.sb_addr)
|
||||
{
|
||||
V_OUTPUT_ERR("pml_v: vprotocol_pessimist: sender_based_alloc: mmap: %s",
|
@ -49,37 +49,20 @@ void vprotocol_pessimist_sender_based_finalize(void);
|
||||
*/
|
||||
void vprotocol_pessimist_sender_based_alloc(size_t len);
|
||||
|
||||
#define __SENDER_BASED_CNVTOR_PACK(req) do { \
|
||||
if( 0 != req->req_bytes_packed ) { \
|
||||
ompi_convertor_t conv; \
|
||||
size_t max_data; \
|
||||
size_t zero = 0; \
|
||||
unsigned int iov_count = 1; \
|
||||
struct iovec iov; \
|
||||
\
|
||||
iov.iov_len = req->req_bytes_packed; \
|
||||
iov.iov_base = \
|
||||
(IOVBASE_TYPE *) mca_vprotocol_pessimist.sender_based.sb_cursor; \
|
||||
ompi_convertor_clone_with_position( &req->req_base.req_convertor, \
|
||||
&conv, 0, &zero ); \
|
||||
ompi_convertor_pack(&conv, &iov, &iov_count, &max_data); \
|
||||
/** Copy data associated to a pml_base_send_request_t to the sender based
|
||||
* message payload buffer
|
||||
*/
|
||||
#define VPROTOCOL_PESSIMIST_SENDER_BASED_COPY(REQ) do { \
|
||||
mca_pml_base_send_request_t *req = (mca_pml_base_send_request_t *) (REQ); \
|
||||
if(req->req_bytes_packed + \
|
||||
sizeof(vprotocol_pessimist_sender_based_header_t) >= \
|
||||
mca_vprotocol_pessimist.sender_based.sb_available) \
|
||||
{ \
|
||||
vprotocol_pessimist_sender_based_alloc(req->req_bytes_packed); \
|
||||
} \
|
||||
__SENDER_BASED_PACK(req); \
|
||||
} while(0)
|
||||
|
||||
#define __SENDER_BASED_SNDRCV_PACK(req) do { \
|
||||
mca_pml_v.host_pml.pml_irecv( \
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor, \
|
||||
req->req_bytes_packed, MPI_PACKED, 0, 0, \
|
||||
mca_vprotocol_pessimist.sender_based.sb_comm, \
|
||||
&VPESSIMIST_SEND_REQ(req)->sb_reqs[0]); \
|
||||
mca_pml_v.host_pml.pml_isend(req->req_base.req_addr, \
|
||||
req->req_base.req_count, req->req_base.req_datatype, 0, 0, \
|
||||
MCA_PML_BASE_SEND_READY, \
|
||||
mca_vprotocol_pessimist.sender_based.sb_comm, \
|
||||
&VPESSIMIST_SEND_REQ(req)->sb_reqs[1]); \
|
||||
} while(0);
|
||||
|
||||
#if 0
|
||||
#define __SENDER_BASED_PACK(req) do { \
|
||||
vprotocol_pessimist_sender_based_header_t *sbhdr = \
|
||||
(vprotocol_pessimist_sender_based_header_t *) \
|
||||
@ -96,51 +79,51 @@ void vprotocol_pessimist_sender_based_alloc(size_t len);
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor += sbhdr->size; \
|
||||
mca_vprotocol_pessimist.sender_based.sb_available -= (sbhdr->size + \
|
||||
sizeof(vprotocol_pessimist_sender_based_header_t)); \
|
||||
V_OUTPUT_VERBOSE(70, "pessimist:\tsb\twrite\t%"PRIpclock"\tsize %lu", VPESSIMIST_REQ(&req->req_base)->reqid, sbhdr->size + sizeof(vprotocol_pessimist_sender_based_header_t); \
|
||||
V_OUTPUT_VERBOSE(70, "pessimist:\tsb\twrite\t%"PRIpclock"\tsize %lu", VPESSIMIST_REQ(&req->req_base)->reqid, sbhdr->size + sizeof(vprotocol_pessimist_sender_based_header_t)); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
static inline void __SENDER_BASED_PACK(mca_pml_base_send_request_t *req) {
|
||||
vprotocol_pessimist_sender_based_header_t *sbhdr =
|
||||
(vprotocol_pessimist_sender_based_header_t *)
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor;
|
||||
sbhdr->size = req->req_bytes_packed;
|
||||
sbhdr->dst = req->req_base.req_peer;
|
||||
sbhdr->tag = req->req_base.req_tag;
|
||||
sbhdr->contextid = req->req_base.req_comm->c_contextid;
|
||||
sbhdr->sequence = req->req_base.req_sequence;
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor +=
|
||||
sizeof(vprotocol_pessimist_sender_based_header_t);
|
||||
|
||||
__SENDER_BASED_CNVTOR_PACK(req);
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor += sbhdr->size;
|
||||
mca_vprotocol_pessimist.sender_based.sb_available -= (sbhdr->size +
|
||||
sizeof(vprotocol_pessimist_sender_based_header_t));
|
||||
V_OUTPUT_VERBOSE(70, "pessimist:\tsb\twrite\t%"PRIpclock"\tsize %lu", VPESSIMIST_REQ(&req->req_base)->reqid, sbhdr->size + sizeof(vprotocol_pessimist_sender_based_header_t));
|
||||
}
|
||||
|
||||
|
||||
/** Copy data associated to a pml_base_send_request_t to the sender based
|
||||
* message payload buffer
|
||||
*/
|
||||
#define VPROTOCOL_PESSIMIST_SENDER_BASED_COPY(REQ) do { \
|
||||
mca_pml_base_send_request_t *req = (mca_pml_base_send_request_t *) (REQ); \
|
||||
if(req->req_bytes_packed + \
|
||||
sizeof(vprotocol_pessimist_sender_based_header_t) >= \
|
||||
mca_vprotocol_pessimist.sender_based.sb_available) \
|
||||
{ \
|
||||
vprotocol_pessimist_sender_based_alloc(req->req_bytes_packed); \
|
||||
} \
|
||||
__SENDER_BASED_PACK(req); \
|
||||
} while(0)
|
||||
|
||||
|
||||
/** Ensure sender based is finished before allowing user to touch send buffer
|
||||
*/
|
||||
*/
|
||||
#define VPROTOCOL_PESSIMIST_SENDER_BASED_FLUSH(REQ) __SENDER_BASED_CNVTOR_FLUSH(REQ)
|
||||
|
||||
|
||||
/* There is 2 different ways of packing the data to the sender-based buffer
|
||||
* just pick one
|
||||
*/
|
||||
#define __SENDER_BASED_CNVTOR_PACK(req) do { \
|
||||
if(0 != req->req_bytes_packed) { \
|
||||
ompi_convertor_t conv; \
|
||||
size_t max_data; \
|
||||
size_t zero = 0; \
|
||||
unsigned int iov_count = 1; \
|
||||
struct iovec iov; \
|
||||
\
|
||||
iov.iov_len = req->req_bytes_packed; \
|
||||
iov.iov_base = \
|
||||
(IOVBASE_TYPE *) mca_vprotocol_pessimist.sender_based.sb_cursor; \
|
||||
ompi_convertor_clone_with_position( &req->req_base.req_convertor, \
|
||||
&conv, 0, &zero ); \
|
||||
ompi_convertor_pack(&conv, &iov, &iov_count, &max_data); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define __SENDER_BASED_CNVTOR_FLUSH(REQ)
|
||||
|
||||
|
||||
|
||||
#define __SENDER_BASED_SNDRCV_PACK(req) do { \
|
||||
mca_pml_v.host_pml.pml_irecv( \
|
||||
mca_vprotocol_pessimist.sender_based.sb_cursor, \
|
||||
req->req_bytes_packed, MPI_PACKED, 0, 0, \
|
||||
mca_vprotocol_pessimist.sender_based.sb_comm, \
|
||||
&VPESSIMIST_SEND_REQ(req)->sb_reqs[0]); \
|
||||
mca_pml_v.host_pml.pml_isend(req->req_base.req_addr, \
|
||||
req->req_base.req_count, req->req_base.req_datatype, 0, 0, \
|
||||
MCA_PML_BASE_SEND_READY, \
|
||||
mca_vprotocol_pessimist.sender_based.sb_comm, \
|
||||
&VPESSIMIST_SEND_REQ(req)->sb_reqs[1]); \
|
||||
} while(0);
|
||||
|
||||
#define __SENDER_BASED_SNDRCV_FLUSH(REQ) do { \
|
||||
if(NULL != VPESSIMIST_REQ(REQ)->sb_reqs[0]) \
|
||||
{ \
|
@ -87,7 +87,7 @@ typedef mca_vprotocol_base_module_1_0_0_t mca_vprotocol_base_module_t;
|
||||
/* silently include the pml_v.h as every file including vprotocol.h will also
|
||||
* need it
|
||||
*/
|
||||
#include "pml_v.h"
|
||||
#include "../pml_v.h"
|
||||
#include "base/base.h"
|
||||
|
||||
#endif /* __INCLUDE_VPROTOCOL_H_ */
|
Загрузка…
x
Ссылка в новой задаче
Block a user