More changes from Red Storm port
- only call sched_yield if it exists - don't fail out if modex doens't work in ob1 - bunch of fixes for Portals BTL - add cnos rml component - add NULL gpr component (should only be used if replica AND proxy fail to load) This commit was SVN r6629.
Этот коммит содержится в:
@ -37,6 +37,10 @@ AC_DEFUN([OMPI_MCA],[
|
|||||||
# --enable-mca-dso=[.+,]*COMPONENT_TYPE-COMPONENT_NAME[.+,]*
|
# --enable-mca-dso=[.+,]*COMPONENT_TYPE-COMPONENT_NAME[.+,]*
|
||||||
# --disable-mca-dso
|
# --disable-mca-dso
|
||||||
#
|
#
|
||||||
|
AC_ARG_ENABLE([mca-no-build],
|
||||||
|
[AC_HELP_STRING([---enable-mca-no-build=LIST],
|
||||||
|
[comma-separated list of type-component pairs
|
||||||
|
that will not be built.])])
|
||||||
AC_ARG_ENABLE(mca-dso,
|
AC_ARG_ENABLE(mca-dso,
|
||||||
AC_HELP_STRING([--enable-mca-dso=LIST],
|
AC_HELP_STRING([--enable-mca-dso=LIST],
|
||||||
[comma-separated list of types and/or
|
[comma-separated list of types and/or
|
||||||
@ -44,9 +48,7 @@ AC_DEFUN([OMPI_MCA],[
|
|||||||
run-time loadable components (as opposed to
|
run-time loadable components (as opposed to
|
||||||
statically linked in), if supported on this
|
statically linked in), if supported on this
|
||||||
platform. The default is to build all components
|
platform. The default is to build all components
|
||||||
as DSOs; the --disable-mca-dso[=LIST] form can be
|
as DSOs]))
|
||||||
used to disable building all or some
|
|
||||||
types/components as DSOs]))
|
|
||||||
AC_ARG_ENABLE(mca-static,
|
AC_ARG_ENABLE(mca-static,
|
||||||
AC_HELP_STRING([--enable-mca-static=LIST],
|
AC_HELP_STRING([--enable-mca-static=LIST],
|
||||||
[comma-separated list of types and/or
|
[comma-separated list of types and/or
|
||||||
@ -64,6 +66,32 @@ AC_DEFUN([OMPI_MCA],[
|
|||||||
not be empty and implies given component pairs are
|
not be empty and implies given component pairs are
|
||||||
build as static components.]))
|
build as static components.]))
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([which components should be disabled])
|
||||||
|
if test "$enable_mca_no_build" = "yes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
AC_MSG_ERROR([*** The enable-mca-no-build flag requires an explicit list
|
||||||
|
*** of type-component pairs. For example, --enable-mca-direct=pml-teg])
|
||||||
|
else
|
||||||
|
ifs_save="$IFS"
|
||||||
|
IFS="${IFS}$PATH_SEPARATOR,"
|
||||||
|
msg=
|
||||||
|
for item in $enable_mca_no_build; do
|
||||||
|
type="`echo $item | cut -f1 -d-`"
|
||||||
|
comp="`echo $item | cut -f2- -d-`"
|
||||||
|
if test -z $type -o -z $comp ; then
|
||||||
|
AC_MSG_ERROR([*** The enable-no-build flag requires a
|
||||||
|
*** list of type-component pairs. Invalid input detected.])
|
||||||
|
else
|
||||||
|
str="`echo DISABLE_${type}_${comp}=1 | sed s/-/_/g`"
|
||||||
|
eval $str
|
||||||
|
msg="$item $msg"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ifs_save"
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$msg])
|
||||||
|
unset msg
|
||||||
|
|
||||||
#
|
#
|
||||||
# First, add all the mca-direct components / types into the mca-static
|
# First, add all the mca-direct components / types into the mca-static
|
||||||
# lists and create a list of component types that are direct compile,
|
# lists and create a list of component types that are direct compile,
|
||||||
@ -791,6 +819,7 @@ AC_DEFUN([MCA_COMPONENT_BUILD_CHECK],[
|
|||||||
framework=$2
|
framework=$2
|
||||||
component=$3
|
component=$3
|
||||||
component_path="$srcdir/$project/mca/$framework/$component"
|
component_path="$srcdir/$project/mca/$framework/$component"
|
||||||
|
want_component=0
|
||||||
|
|
||||||
# build if:
|
# build if:
|
||||||
# - the component type is direct and we are that component
|
# - the component type is direct and we are that component
|
||||||
@ -828,9 +857,16 @@ AC_DEFUN([MCA_COMPONENT_BUILD_CHECK],[
|
|||||||
want_component=0
|
want_component=0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AS_IF([test "$want_component" = "1"], [$4], [$5])
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# if we were explicitly disabled, don't build :)
|
||||||
|
str="DISABLED_COMPONENT_CHECK=\$DISABLE_${framework}_$component"
|
||||||
|
eval $str
|
||||||
|
if test "$DISABLED_COMPONENT_CHECK" = "1" ; then
|
||||||
|
want_component=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
AS_IF([test "$want_component" = "1"], [$4], [$5])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
@ -1132,7 +1132,7 @@ ompi_show_title "Library and Function tests"
|
|||||||
# vscanf
|
# vscanf
|
||||||
|
|
||||||
AC_CHECK_LIB([util], [openpty], [WRAPPER_EXTRA_LIBS="$WRAPPER_EXTRA_LIBS -lutil" LIBLAM_EXTRA_LIBS="$LIBLAMEXTRALIBS -lutil" LIBS="$LIBS -lutil]")
|
AC_CHECK_LIB([util], [openpty], [WRAPPER_EXTRA_LIBS="$WRAPPER_EXTRA_LIBS -lutil" LIBLAM_EXTRA_LIBS="$LIBLAMEXTRALIBS -lutil" LIBS="$LIBS -lutil]")
|
||||||
AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf openpty isatty htonl ntohl htons ntohs getpwuid fork waitpid execve pipe setsid])
|
AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf openpty isatty htonl ntohl htons ntohs getpwuid fork waitpid execve pipe setsid mmap])
|
||||||
|
|
||||||
#
|
#
|
||||||
# Make sure we can copy va_lists (need check declared, not linkable)
|
# Make sure we can copy va_lists (need check declared, not linkable)
|
||||||
@ -1170,12 +1170,15 @@ if test "$MSG" = "not_found"; then
|
|||||||
[MSG=yes],[MSG=not_found])
|
[MSG=yes],[MSG=not_found])
|
||||||
if test "$MSG" = "not_found"; then
|
if test "$MSG" = "not_found"; then
|
||||||
LIBS="$LIBS_save"
|
LIBS="$LIBS_save"
|
||||||
AC_MSG_RESULT([cannot find sched_yield])
|
|
||||||
AC_MSG_ERROR([Cannot continue])
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$MSG])
|
AC_MSG_RESULT([$MSG])
|
||||||
|
|
||||||
|
# see if we actually have sched_yeild. Use AC_CHECK_FUNCS so that it
|
||||||
|
# does the glibs "not implemented" check. Will use the current LIBS,
|
||||||
|
# so will check in -lrt if we decided we needed it above
|
||||||
|
AC_CHECK_FUNCS([sched_yield])
|
||||||
|
|
||||||
#
|
#
|
||||||
# See if we need the math library explicitly linked in
|
# See if we need the math library explicitly linked in
|
||||||
#
|
#
|
||||||
|
@ -46,11 +46,11 @@ AC_DEFUN([MCA_btl_portals_CONFIG_VAL], [
|
|||||||
AC_DEFUN([MCA_btl_portals_CONFIG_VALS], [
|
AC_DEFUN([MCA_btl_portals_CONFIG_VALS], [
|
||||||
# User configuration options
|
# User configuration options
|
||||||
MCA_btl_portals_CONFIG_VAL([send-table-id],
|
MCA_btl_portals_CONFIG_VAL([send-table-id],
|
||||||
[OMPI_BTL_PORTALS_SEND_TABLE_ID], [3],
|
[OMPI_BTL_PORTALS_SEND_TABLE_ID], [30],
|
||||||
[Portals table id to use for send/recv ])
|
[Portals table id to use for send/recv ])
|
||||||
|
|
||||||
MCA_btl_portals_CONFIG_VAL([rdma-table-id],
|
MCA_btl_portals_CONFIG_VAL([rdma-table-id],
|
||||||
[OMPI_BTL_PORTALS_RDMA_TABLE_ID], [4],
|
[OMPI_BTL_PORTALS_RDMA_TABLE_ID], [31],
|
||||||
[Portals table id to use for RDMA request])
|
[Portals table id to use for RDMA request])
|
||||||
|
|
||||||
MCA_btl_portals_CONFIG_VAL([debug-level],
|
MCA_btl_portals_CONFIG_VAL([debug-level],
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#include <portals/portals3.h>
|
#include <portals/portals3.h>
|
||||||
|
|
||||||
#define PTL_EQ_HANDLER_NONE PTL_HANDLE_NONE
|
#define PTL_EQ_HANDLER_NONE NULL
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -22,6 +22,13 @@
|
|||||||
#include "btl_portals.h"
|
#include "btl_portals.h"
|
||||||
#include "btl_portals_compat.h"
|
#include "btl_portals_compat.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
int cnos_get_size(void);
|
||||||
|
int cnos_get_rank(void);
|
||||||
|
int cnos_get_nidpid_map(ptl_process_id_t **map);
|
||||||
|
#else
|
||||||
|
#include <catamount/cnos_mpi_os.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
mca_btl_portals_init_compat(mca_btl_portals_component_t *comp)
|
mca_btl_portals_init_compat(mca_btl_portals_component_t *comp)
|
||||||
@ -73,12 +80,14 @@ mca_btl_portals_init_compat(mca_btl_portals_component_t *comp)
|
|||||||
&(btl->portals_ni_limits), /* save our limits somewhere */
|
&(btl->portals_ni_limits), /* save our limits somewhere */
|
||||||
&(btl->portals_ni_h) /* our interface handle */
|
&(btl->portals_ni_h) /* our interface handle */
|
||||||
);
|
);
|
||||||
if (PTL_OK != ret) {
|
if (PTL_OK != ret && PTL_IFACE_DUP != ret) {
|
||||||
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
||||||
"PtlNIInit failed, returning %d\n", ret);
|
"PtlNIInit failed, returning %d\n", ret);
|
||||||
return OMPI_ERR_FATAL;
|
return OMPI_ERR_FATAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
||||||
|
"max ptl index: %d", btl->portals_ni_limits.max_pt_index);
|
||||||
|
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -90,6 +99,8 @@ mca_btl_portals_add_procs_compat(struct mca_btl_portals_module_t* btl,
|
|||||||
ptl_process_id_t **portals_procs)
|
ptl_process_id_t **portals_procs)
|
||||||
{
|
{
|
||||||
int nptl_procs = 0;
|
int nptl_procs = 0;
|
||||||
|
cnos_nidpid_map_t *map;
|
||||||
|
int i;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME - XXX - FIXME
|
* FIXME - XXX - FIXME
|
||||||
@ -97,7 +108,7 @@ mca_btl_portals_add_procs_compat(struct mca_btl_portals_module_t* btl,
|
|||||||
* procs list. Don't know what to do about that...
|
* procs list. Don't know what to do about that...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
nptl_procs = cnos_get_nidpid_map(portals_procs);
|
nptl_procs = cnos_get_nidpid_map(&map);
|
||||||
if (nptl_procs <= 0) {
|
if (nptl_procs <= 0) {
|
||||||
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
||||||
"cnos_get_nidpid_map() returned %d", nptl_procs);
|
"cnos_get_nidpid_map() returned %d", nptl_procs);
|
||||||
@ -109,5 +120,23 @@ mca_btl_portals_add_procs_compat(struct mca_btl_portals_module_t* btl,
|
|||||||
return OMPI_ERR_FATAL;
|
return OMPI_ERR_FATAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OMPI_ERR_NOT_IMPLEMENTED;
|
/* get space for the portals procs list */
|
||||||
|
*portals_procs = calloc(nprocs, sizeof(ptl_process_id_t));
|
||||||
|
if (NULL == *portals_procs) {
|
||||||
|
opal_output_verbose(10, mca_btl_portals_component.portals_output,
|
||||||
|
"calloc(nprocs, sizeof(ptl_process_id_t)) failed");
|
||||||
|
return OMPI_ERR_TEMP_OUT_OF_RESOURCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0 ; i < nprocs ; ++i) {
|
||||||
|
opal_output_verbose(120, mca_btl_portals_component.portals_output,
|
||||||
|
"rank %d: nid %ld, pid %ld", i,
|
||||||
|
map[i].nid, map[i].pid);
|
||||||
|
|
||||||
|
/* update my local array of proc structs */
|
||||||
|
(*portals_procs)[i].nid = map[i].nid;
|
||||||
|
(*portals_procs)[i].pid = map[i].pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -359,11 +359,15 @@ mca_btl_portals_component_progress(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
opal_output_verbose(30, mca_btl_portals_component.portals_output,
|
||||||
|
"PtlEQPoll about to be called");
|
||||||
ret = PtlEQPoll(module->portals_eq_handles,
|
ret = PtlEQPoll(module->portals_eq_handles,
|
||||||
OMPI_BTL_PORTALS_EQ_SIZE, /* number of eq handles */
|
OMPI_BTL_PORTALS_EQ_SIZE, /* number of eq handles */
|
||||||
0, /* poll time */
|
1, /* poll time */
|
||||||
&ev,
|
&ev,
|
||||||
&which);
|
&which);
|
||||||
|
opal_output_verbose(30, mca_btl_portals_component.portals_output,
|
||||||
|
"PtlEQPoll returned %d\n", ret);
|
||||||
if (PTL_EQ_EMPTY == ret) {
|
if (PTL_EQ_EMPTY == ret) {
|
||||||
/* nothing to see here - move along */
|
/* nothing to see here - move along */
|
||||||
mca_btl_portals_progress_queued_sends(module);
|
mca_btl_portals_progress_queued_sends(module);
|
||||||
@ -380,10 +384,16 @@ mca_btl_portals_component_progress(void)
|
|||||||
|
|
||||||
switch (which) {
|
switch (which) {
|
||||||
case OMPI_BTL_PORTALS_EQ_RECV:
|
case OMPI_BTL_PORTALS_EQ_RECV:
|
||||||
|
opal_output_verbose(30,
|
||||||
|
mca_btl_portals_component.portals_output,
|
||||||
|
"receive event about to be processes");
|
||||||
mca_btl_portals_progress_queued_sends(module);
|
mca_btl_portals_progress_queued_sends(module);
|
||||||
mca_btl_portals_process_recv(module, &ev);
|
mca_btl_portals_process_recv(module, &ev);
|
||||||
break;
|
break;
|
||||||
case OMPI_BTL_PORTALS_EQ_SEND:
|
case OMPI_BTL_PORTALS_EQ_SEND:
|
||||||
|
opal_output_verbose(30,
|
||||||
|
mca_btl_portals_component.portals_output,
|
||||||
|
"send event about to be processes");
|
||||||
mca_btl_portals_process_send(module, &ev);
|
mca_btl_portals_process_send(module, &ev);
|
||||||
break;
|
break;
|
||||||
case OMPI_BTL_PORTALS_EQ_RDMA:
|
case OMPI_BTL_PORTALS_EQ_RDMA:
|
||||||
|
@ -46,13 +46,15 @@ mca_btl_portals_recv_enable(mca_btl_portals_module_t *btl)
|
|||||||
md.user_ptr = NULL;
|
md.user_ptr = NULL;
|
||||||
md.eq_handle = PTL_EQ_NONE;
|
md.eq_handle = PTL_EQ_NONE;
|
||||||
|
|
||||||
|
opal_output_verbose(90, mca_btl_portals_component.portals_output,
|
||||||
|
"About to create reject entry");
|
||||||
ret = PtlMEAttach(btl->portals_ni_h,
|
ret = PtlMEAttach(btl->portals_ni_h,
|
||||||
OMPI_BTL_PORTALS_SEND_TABLE_ID,
|
OMPI_BTL_PORTALS_SEND_TABLE_ID,
|
||||||
any_proc,
|
any_proc,
|
||||||
0, /* match */
|
0, /* match */
|
||||||
0, /* ignore */
|
0, /* ignore */
|
||||||
PTL_RETAIN,
|
PTL_RETAIN,
|
||||||
PTL_INS_AFTER,
|
PTL_INS_BEFORE,
|
||||||
&(btl->portals_recv_reject_me_h));
|
&(btl->portals_recv_reject_me_h));
|
||||||
if (PTL_OK != ret) {
|
if (PTL_OK != ret) {
|
||||||
opal_output(mca_btl_portals_component.portals_output,
|
opal_output(mca_btl_portals_component.portals_output,
|
||||||
|
@ -65,9 +65,7 @@ int mca_pml_ob1_enable(bool enable)
|
|||||||
/* post this processes datatype */
|
/* post this processes datatype */
|
||||||
proc_arch = ompi_proc_local()->proc_arch;
|
proc_arch = ompi_proc_local()->proc_arch;
|
||||||
proc_arch = htonl(proc_arch);
|
proc_arch = htonl(proc_arch);
|
||||||
rc = mca_base_modex_send(&mca_pml_ob1_component.pmlm_version, &proc_arch, sizeof(proc_arch));
|
(void) mca_base_modex_send(&mca_pml_ob1_component.pmlm_version, &proc_arch, sizeof(proc_arch));
|
||||||
if(rc != OMPI_SUCCESS)
|
|
||||||
return rc;
|
|
||||||
|
|
||||||
OBJ_CONSTRUCT(&mca_pml_ob1.lock, opal_mutex_t);
|
OBJ_CONSTRUCT(&mca_pml_ob1.lock, opal_mutex_t);
|
||||||
|
|
||||||
@ -267,12 +265,14 @@ int mca_pml_ob1_add_procs(ompi_proc_t** procs, size_t nprocs)
|
|||||||
size_t size = sizeof(uint32_t);
|
size_t size = sizeof(uint32_t);
|
||||||
rc = mca_base_modex_recv(&mca_pml_ob1_component.pmlm_version, procs[p],
|
rc = mca_base_modex_recv(&mca_pml_ob1_component.pmlm_version, procs[p],
|
||||||
(void**)&proc_arch, &size);
|
(void**)&proc_arch, &size);
|
||||||
if(rc != OMPI_SUCCESS)
|
if(rc == OMPI_SUCCESS) {
|
||||||
return rc;
|
if(size != sizeof(uint32_t))
|
||||||
if(size != sizeof(uint32_t))
|
return OMPI_ERROR;
|
||||||
return OMPI_ERROR;
|
procs[p]->proc_arch = ntohl(*proc_arch);
|
||||||
procs[p]->proc_arch = ntohl(*proc_arch);
|
free(proc_arch);
|
||||||
free(proc_arch);
|
} else {
|
||||||
|
procs[p]->proc_arch = ompi_proc_local()->proc_arch;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* attempt to add all procs to each ob1 */
|
/* attempt to add all procs to each ob1 */
|
||||||
|
@ -699,7 +699,9 @@ void mca_pml_ob1_send_request_put(
|
|||||||
orte_errmgr.abort();
|
orte_errmgr.abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_SCHED_YIELD
|
||||||
sched_yield();
|
sched_yield();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ opal_progress(void)
|
|||||||
* the processor is oversubscribed - this will result in a best-case
|
* the processor is oversubscribed - this will result in a best-case
|
||||||
* latency equivalent to the time-slice.
|
* latency equivalent to the time-slice.
|
||||||
*/
|
*/
|
||||||
#ifndef WIN32
|
#if !defined(WIN32) && defined(HAVE_SCHED_YIELD)
|
||||||
/* TODO: Find the windows equivalent for this */
|
/* TODO: Find the windows equivalent for this */
|
||||||
sched_yield();
|
sched_yield();
|
||||||
#endif
|
#endif
|
||||||
|
44
orte/mca/gpr/null/Makefile.am
Обычный файл
44
orte/mca/gpr/null/Makefile.am
Обычный файл
@ -0,0 +1,44 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
# University of Stuttgart. All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
# All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use the top-level Makefile.options
|
||||||
|
|
||||||
|
include $(top_ompi_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
sources = \
|
||||||
|
gpr_null_component.c \
|
||||||
|
gpr_null.c
|
||||||
|
|
||||||
|
# Make the output library in this directory, and name it either
|
||||||
|
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||||
|
# (for static builds).
|
||||||
|
|
||||||
|
if OMPI_BUILD_gpr_null_DSO
|
||||||
|
component_noinst =
|
||||||
|
component_install = mca_gpr_null.la
|
||||||
|
else
|
||||||
|
component_noinst = libmca_gpr_null.la
|
||||||
|
component_install =
|
||||||
|
endif
|
||||||
|
|
||||||
|
mcacomponentdir = $(libdir)/openmpi
|
||||||
|
mcacomponent_LTLIBRARIES = $(component_install)
|
||||||
|
mca_gpr_null_la_SOURCES = $(sources)
|
||||||
|
mca_gpr_null_la_LDFLAGS = -module -avoid-version
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = $(component_noinst)
|
||||||
|
libmca_gpr_null_la_SOURCES =$(sources)
|
||||||
|
libmca_gpr_null_la_LDFLAGS = -module -avoid-version
|
21
orte/mca/gpr/null/configure.params
Обычный файл
21
orte/mca/gpr/null/configure.params
Обычный файл
@ -0,0 +1,21 @@
|
|||||||
|
# -*- shell-script -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
# University of Stuttgart. All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
# All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Specific to this module
|
||||||
|
|
||||||
|
PARAM_INIT_FILE=gpr_null.c
|
||||||
|
PARAM_CONFIG_FILES="Makefile"
|
280
orte/mca/gpr/null/gpr_null.c
Обычный файл
280
orte/mca/gpr/null/gpr_null.c
Обычный файл
@ -0,0 +1,280 @@
|
|||||||
|
/* -*- C -*-
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
* University of Stuttgart. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "orte_config.h"
|
||||||
|
|
||||||
|
#include "orte/mca/gpr/gpr.h"
|
||||||
|
#include "orte/include/orte_constants.h"
|
||||||
|
#include "opal/util/output.h"
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_module_init(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_begin_compound_cmd(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_stop_compound_cmd(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_exec_compound_cmd(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_cleanup_job(orte_jobid_t jobid)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_cleanup_proc(orte_process_name_t * proc)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_preallocate_segment(char *name, size_t num_slots)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_delete_segment(char *segment)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_delete_segment_nb(char *segment,
|
||||||
|
orte_gpr_notify_cb_fn_t cbfunc,
|
||||||
|
void *user_tag)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_put(size_t cnt, orte_gpr_value_t ** values)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_put_nb(size_t cnt, orte_gpr_value_t ** values,
|
||||||
|
orte_gpr_notify_cb_fn_t cbfunc, void *user_tag)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_get(orte_gpr_addr_mode_t addr_mode,
|
||||||
|
char *segment, char **tokens, char **keys,
|
||||||
|
size_t * cnt, orte_gpr_value_t *** values)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_get_nb(orte_gpr_addr_mode_t addr_mode,
|
||||||
|
char *segment, char **tokens, char **keys,
|
||||||
|
orte_gpr_notify_cb_fn_t cbfunc, void *user_tag)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_delete_entries(orte_gpr_addr_mode_t addr_mode,
|
||||||
|
char *segment, char **tokens,
|
||||||
|
char **keys)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_delete_entries_nb(orte_gpr_addr_mode_t addr_mode,
|
||||||
|
char *segment, char **tokens,
|
||||||
|
char **keys,
|
||||||
|
orte_gpr_notify_cb_fn_t cbfunc,
|
||||||
|
void *user_tag)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_index(char *segment, size_t * cnt, char ***index)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_index_nb(char *segment,
|
||||||
|
orte_gpr_notify_cb_fn_t cbfunc,
|
||||||
|
void *user_tag)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_subscribe(size_t num_subs,
|
||||||
|
orte_gpr_subscription_t ** subscriptions,
|
||||||
|
size_t num_trigs,
|
||||||
|
orte_gpr_trigger_t ** triggers)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_unsubscribe(orte_gpr_subscription_id_t sub_number)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_cancel_trigger(orte_gpr_trigger_id_t trig_number)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_all(int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_segments(int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_triggers(int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_subscriptions(int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_callbacks(int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_notify_msg(orte_gpr_notify_message_t * msg,
|
||||||
|
int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_notify_data(orte_gpr_notify_data_t * data,
|
||||||
|
int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_dump_value(orte_gpr_value_t * value, int output_id)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_increment_value(orte_gpr_value_t * value)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_decrement_value(orte_gpr_value_t * value)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
orte_gpr_null_xfer_payload(orte_gpr_value_union_t * dest,
|
||||||
|
orte_gpr_value_union_t * src,
|
||||||
|
orte_data_type_t type)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* setup the function pointers for the module
|
||||||
|
*/
|
||||||
|
orte_gpr_base_module_t orte_gpr_null_module = {
|
||||||
|
/* INIT */
|
||||||
|
orte_gpr_null_module_init,
|
||||||
|
/* BLOCKING OPERATIONS */
|
||||||
|
orte_gpr_null_get,
|
||||||
|
orte_gpr_null_put,
|
||||||
|
orte_gpr_null_delete_entries,
|
||||||
|
orte_gpr_null_delete_segment,
|
||||||
|
orte_gpr_null_index,
|
||||||
|
/* NON-BLOCKING OPERATIONS */
|
||||||
|
orte_gpr_null_get_nb,
|
||||||
|
orte_gpr_null_put_nb,
|
||||||
|
orte_gpr_null_delete_entries_nb,
|
||||||
|
orte_gpr_null_delete_segment_nb,
|
||||||
|
orte_gpr_null_index_nb,
|
||||||
|
/* GENERAL OPERATIONS */
|
||||||
|
orte_gpr_null_preallocate_segment,
|
||||||
|
orte_gpr_null_xfer_payload,
|
||||||
|
/* ARITHMETIC OPERATIONS */
|
||||||
|
orte_gpr_null_increment_value,
|
||||||
|
orte_gpr_null_decrement_value,
|
||||||
|
/* SUBSCRIBE OPERATIONS */
|
||||||
|
orte_gpr_null_subscribe,
|
||||||
|
orte_gpr_null_unsubscribe,
|
||||||
|
orte_gpr_null_cancel_trigger,
|
||||||
|
/* COMPOUND COMMANDS */
|
||||||
|
orte_gpr_null_begin_compound_cmd,
|
||||||
|
orte_gpr_null_stop_compound_cmd,
|
||||||
|
orte_gpr_null_exec_compound_cmd,
|
||||||
|
/* DIAGNOSTIC OPERATIONS */
|
||||||
|
orte_gpr_null_dump_all,
|
||||||
|
orte_gpr_null_dump_segments,
|
||||||
|
orte_gpr_null_dump_triggers,
|
||||||
|
orte_gpr_null_dump_subscriptions,
|
||||||
|
orte_gpr_null_dump_callbacks,
|
||||||
|
orte_gpr_null_dump_notify_msg,
|
||||||
|
orte_gpr_null_dump_notify_data,
|
||||||
|
orte_gpr_null_dump_value,
|
||||||
|
/* CLEANUP OPERATIONS */
|
||||||
|
orte_gpr_null_cleanup_job,
|
||||||
|
orte_gpr_null_cleanup_proc
|
||||||
|
};
|
70
orte/mca/gpr/null/gpr_null_component.c
Обычный файл
70
orte/mca/gpr/null/gpr_null_component.c
Обычный файл
@ -0,0 +1,70 @@
|
|||||||
|
/* -*- C -*-
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
* University of Stuttgart. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "orte_config.h"
|
||||||
|
|
||||||
|
#include "orte/mca/gpr/gpr.h"
|
||||||
|
#include "orte/include/orte_constants.h"
|
||||||
|
|
||||||
|
|
||||||
|
extern orte_gpr_base_module_t orte_gpr_null_module;
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_gpr_null_open(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_gpr_null_close(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
orte_gpr_base_module_t *
|
||||||
|
orte_gpr_null_init(bool *allow_multi_user_threads,
|
||||||
|
bool *have_hidden_threads,
|
||||||
|
int *priority)
|
||||||
|
{
|
||||||
|
*priority = 0;
|
||||||
|
return &orte_gpr_null_module;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_gpr_null_finalize(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
mca_gpr_base_component_t mca_gpr_null_component = {
|
||||||
|
{
|
||||||
|
MCA_GPR_BASE_VERSION_1_0_0,
|
||||||
|
|
||||||
|
"null", /* MCA module name */
|
||||||
|
ORTE_MAJOR_VERSION, /* MCA module major version */
|
||||||
|
ORTE_MINOR_VERSION, /* MCA module minor version */
|
||||||
|
ORTE_RELEASE_VERSION, /* MCA module release version */
|
||||||
|
orte_gpr_null_open, /* module open */
|
||||||
|
orte_gpr_null_close /* module close */
|
||||||
|
},
|
||||||
|
{
|
||||||
|
false /* checkpoint / restart */
|
||||||
|
},
|
||||||
|
orte_gpr_null_init, /* module init */
|
||||||
|
orte_gpr_null_finalize /* module shutdown */
|
||||||
|
};
|
46
orte/mca/rml/cnos/Makefile.am
Обычный файл
46
orte/mca/rml/cnos/Makefile.am
Обычный файл
@ -0,0 +1,46 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
# University of Stuttgart. All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
# All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use the top-level Makefile.options
|
||||||
|
|
||||||
|
include $(top_ompi_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
sources = \
|
||||||
|
rml_cnos.h \
|
||||||
|
rml_cnos.c
|
||||||
|
|
||||||
|
# Make the output library in this directory, and name it either
|
||||||
|
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||||
|
# (for static builds).
|
||||||
|
|
||||||
|
if OMPI_BUILD_rml_cnos_DSO
|
||||||
|
component_noinst =
|
||||||
|
component_install = mca_rml_cnos.la
|
||||||
|
else
|
||||||
|
component_noinst = libmca_rml_cnos.la
|
||||||
|
component_install =
|
||||||
|
endif
|
||||||
|
|
||||||
|
mcacomponentdir = $(libdir)/openmpi
|
||||||
|
mcacomponent_LTLIBRARIES = $(component_install)
|
||||||
|
mca_rml_cnos_la_SOURCES = $(sources)
|
||||||
|
mca_rml_cnos_la_LIBADD = $(LIBOMPI_LA)
|
||||||
|
mca_rml_cnos_la_LDFLAGS = -module -avoid-version
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = $(component_noinst)
|
||||||
|
libmca_rml_cnos_la_SOURCES = $(sources)
|
||||||
|
libmca_rml_cnos_la_LDFLAGS = -module -avoid-version
|
||||||
|
|
23
orte/mca/rml/cnos/configure.m4
Обычный файл
23
orte/mca/rml/cnos/configure.m4
Обычный файл
@ -0,0 +1,23 @@
|
|||||||
|
# -*- shell-script -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
# University of Stuttgart. All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
# All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# MCA_rml_cnos_CONFIG([action-if-found], [action-if-not-found])
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
AC_DEFUN([MCA_rml_cnos_CONFIG],[
|
||||||
|
# check for cnos functions
|
||||||
|
AC_CHECK_FUNC([cnos_barrier], [$1], [$2])
|
||||||
|
])dnl
|
21
orte/mca/rml/cnos/configure.params
Обычный файл
21
orte/mca/rml/cnos/configure.params
Обычный файл
@ -0,0 +1,21 @@
|
|||||||
|
# -*- shell-script -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
# All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
# University of Stuttgart. All rights reserved.
|
||||||
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
# All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Specific to this module
|
||||||
|
|
||||||
|
PARAM_INIT_FILE=rml_cnos.c
|
||||||
|
PARAM_CONFIG_FILES="Makefile"
|
234
orte/mca/rml/cnos/rml_cnos.c
Обычный файл
234
orte/mca/rml/cnos/rml_cnos.c
Обычный файл
@ -0,0 +1,234 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
* University of Stuttgart. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "orte_config.h"
|
||||||
|
|
||||||
|
#include "include/orte_constants.h"
|
||||||
|
#include "opal/util/output.h"
|
||||||
|
#include "mca/rml/base/base.h"
|
||||||
|
#include "rml_cnos.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_CNOS
|
||||||
|
int cnos_barrier(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
orte_rml_component_t mca_rml_cnos_component = {
|
||||||
|
/* First, the mca_base_component_t struct containing meta
|
||||||
|
* information about the component itself */
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Indicate that we are a rml v1.0.0 component (which also
|
||||||
|
* implies a specific MCA version) */
|
||||||
|
|
||||||
|
ORTE_RML_BASE_VERSION_1_0_0,
|
||||||
|
|
||||||
|
"cnos", /* MCA component name */
|
||||||
|
ORTE_MAJOR_VERSION, /* MCA component major version */
|
||||||
|
ORTE_MINOR_VERSION, /* MCA component minor version */
|
||||||
|
ORTE_RELEASE_VERSION, /* MCA component release version */
|
||||||
|
orte_rml_cnos_open, /* component open */
|
||||||
|
orte_rml_cnos_close, /* component close */
|
||||||
|
}
|
||||||
|
,
|
||||||
|
|
||||||
|
/* Next the MCA v1.0.0 component meta data */
|
||||||
|
{
|
||||||
|
/* Whether the component is checkpointable or not */
|
||||||
|
false}
|
||||||
|
,
|
||||||
|
orte_rml_cnos_init
|
||||||
|
};
|
||||||
|
|
||||||
|
orte_rml_module_t orte_rml_cnos_module = {
|
||||||
|
orte_rml_cnos_module_init,
|
||||||
|
orte_rml_cnos_module_fini,
|
||||||
|
orte_rml_cnos_get_uri,
|
||||||
|
orte_rml_cnos_set_uri,
|
||||||
|
orte_rml_cnos_parse_uris,
|
||||||
|
orte_rml_cnos_ping,
|
||||||
|
orte_rml_cnos_send,
|
||||||
|
orte_rml_cnos_send_nb,
|
||||||
|
orte_rml_cnos_send_buffer,
|
||||||
|
orte_rml_cnos_send_buffer_nb,
|
||||||
|
orte_rml_cnos_recv,
|
||||||
|
orte_rml_cnos_recv_nb,
|
||||||
|
orte_rml_cnos_recv_buffer,
|
||||||
|
orte_rml_cnos_recv_buffer_nb,
|
||||||
|
orte_rml_cnos_recv_cancel,
|
||||||
|
orte_rml_cnos_barrier,
|
||||||
|
orte_rml_cnos_xcast
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_open(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
orte_rml_module_t *
|
||||||
|
orte_rml_cnos_init(int *priority)
|
||||||
|
{
|
||||||
|
*priority = 1;
|
||||||
|
return &orte_rml_cnos_module;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_close(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_module_init(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_module_fini(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
orte_rml_cnos_get_uri(void)
|
||||||
|
{
|
||||||
|
return "(none)";
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_set_uri(const char *name)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_parse_uris(const char *uri,
|
||||||
|
orte_process_name_t * peer, char ***uris)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_ping(const char *uri, const struct timeval *tv)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_send(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg, int count, int tag, int flags)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_send_buffer(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_tag_t tag, int flags)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_recv(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count, orte_rml_tag_t tag, int flags)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_recv_buffer(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buf, orte_rml_tag_t tag)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_send_nb(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags, orte_rml_callback_fn_t cbfunc, void *cbdata)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_send_buffer_nb(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_buffer_callback_fn_t
|
||||||
|
cbfunc, void *cbdata)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_recv_nb(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags, orte_rml_callback_fn_t cbfunc, void *cbdata)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_recv_buffer_nb(orte_process_name_t * peer,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_buffer_callback_fn_t
|
||||||
|
cbfunc, void *cbdata)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_recv_cancel(orte_process_name_t * peer, orte_rml_tag_t tag)
|
||||||
|
{
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_barrier(void)
|
||||||
|
{
|
||||||
|
cnos_barrier();
|
||||||
|
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rml_cnos_xcast(orte_process_name_t * root,
|
||||||
|
orte_process_name_t * peers,
|
||||||
|
size_t num_peers,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_buffer_callback_fn_t cbfunc)
|
||||||
|
{
|
||||||
|
if (NULL != root || NULL != peers || 0 != num_peers ||
|
||||||
|
NULL != buffer || NULL != cbfunc) {
|
||||||
|
return ORTE_ERR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return orte_rml_cnos_barrier();
|
||||||
|
}
|
102
orte/mca/rml/cnos/rml_cnos.h
Обычный файл
102
orte/mca/rml/cnos/rml_cnos.h
Обычный файл
@ -0,0 +1,102 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||||
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
* University of Stuttgart. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MCA_RML_CNOS_H
|
||||||
|
#define MCA_RML_CNOS_H
|
||||||
|
|
||||||
|
#include "mca/rml/rml.h"
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
OMPI_COMP_EXPORT extern orte_rml_component_t mca_rml_cnos_component;
|
||||||
|
|
||||||
|
int orte_rml_cnos_open(void);
|
||||||
|
int orte_rml_cnos_close(void);
|
||||||
|
orte_rml_module_t * orte_rml_cnos_init(int *priority);
|
||||||
|
|
||||||
|
int orte_rml_cnos_module_init(void);
|
||||||
|
int orte_rml_cnos_module_fini(void);
|
||||||
|
|
||||||
|
char *orte_rml_cnos_get_uri(void);
|
||||||
|
int orte_rml_cnos_set_uri(const char *);
|
||||||
|
int orte_rml_cnos_parse_uris(const char *uri,
|
||||||
|
orte_process_name_t * peer, char ***uris);
|
||||||
|
int orte_rml_cnos_ping(const char *uri, const struct timeval *tv);
|
||||||
|
|
||||||
|
int orte_rml_cnos_send(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count, int tag, int flags);
|
||||||
|
|
||||||
|
int orte_rml_cnos_send_buffer(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_tag_t tag, int flags);
|
||||||
|
|
||||||
|
int orte_rml_cnos_send_nb(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_callback_fn_t cbfunc, void *cbdata);
|
||||||
|
|
||||||
|
int orte_rml_cnos_send_buffer_nb(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_buffer_callback_fn_t cbfunc,
|
||||||
|
void *cbdata);
|
||||||
|
|
||||||
|
int orte_rml_cnos_recv(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count, orte_rml_tag_t tag, int flags);
|
||||||
|
|
||||||
|
int orte_rml_cnos_recv_buffer(orte_process_name_t * peer,
|
||||||
|
orte_buffer_t * buf, orte_rml_tag_t tag);
|
||||||
|
|
||||||
|
int orte_rml_cnos_recv_nb(orte_process_name_t * peer,
|
||||||
|
struct iovec *msg,
|
||||||
|
int count,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_callback_fn_t cbfunc, void *cbdata);
|
||||||
|
|
||||||
|
int orte_rml_cnos_recv_buffer_nb(orte_process_name_t * peer,
|
||||||
|
orte_rml_tag_t tag,
|
||||||
|
int flags,
|
||||||
|
orte_rml_buffer_callback_fn_t cbfunc,
|
||||||
|
void *cbdata);
|
||||||
|
|
||||||
|
int orte_rml_cnos_recv_cancel(orte_process_name_t * peer,
|
||||||
|
orte_rml_tag_t tag);
|
||||||
|
|
||||||
|
|
||||||
|
int orte_rml_cnos_barrier(void);
|
||||||
|
|
||||||
|
int orte_rml_cnos_xcast(orte_process_name_t * root,
|
||||||
|
orte_process_name_t * peers,
|
||||||
|
size_t num_peers,
|
||||||
|
orte_buffer_t * buffer,
|
||||||
|
orte_rml_buffer_callback_fn_t cbfunc);
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
Ссылка в новой задаче
Block a user