1
1

* commit .ompi_ignored shell of a bproc component for the pcm

This commit was SVN r2680.
Этот коммит содержится в:
Brian Barrett 2004-09-15 18:54:57 +00:00
родитель 0d85c2b5b9
Коммит b3aca01d1a
8 изменённых файлов: 451 добавлений и 0 удалений

0
src/mca/pcm/bproc/.ompi_ignore Обычный файл
Просмотреть файл

32
src/mca/pcm/bproc/Makefile.am Обычный файл
Просмотреть файл

@ -0,0 +1,32 @@
#
# $HEADER$
#
# Use the top-level Makefile.options
include $(top_ompi_srcdir)/config/Makefile.options
SUBDIRS = src
# 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_pcm_bproc_DSO
component_noinst =
component_install = mca_pcm_bproc.la
else
component_noinst = libmca_pcm_bproc.la
component_install =
endif
mcacomponentdir = $(libdir)/openmpi
mcacomponent_LTLIBRARIES = $(component_install)
mca_pcm_bproc_la_SOURCES =
mca_pcm_bproc_la_LIBADD = src/libmca_pcm_bproc.la
mca_pcm_bproc_la_LDFLAGS = -module -avoid-version
noinst_LTLIBRARIES = $(component_noinst)
libmca_pcm_bproc_la_SOURCES =
libmca_pcm_bproc_la_LIBADD = src/libmca_pcm_bproc.la
libmca_pcm_bproc_la_LDFLAGS = -module -avoid-version

10
src/mca/pcm/bproc/configure.params Обычный файл
Просмотреть файл

@ -0,0 +1,10 @@
# -*- shell-script -*-
#
# $HEADER$
#
# Specific to this module
PARAM_INIT_FILE=src/pcm_bproc.c
PARAM_CONFIG_HEADER_FILE="bproc_config.h"
PARAM_CONFIG_FILES="Makefile src/Makefile"

102
src/mca/pcm/bproc/configure.stub Обычный файл
Просмотреть файл

@ -0,0 +1,102 @@
# -*- shell-script -*-
#
# $HEADER$
#
#
# Main function. This will be invoked in the middle of the templated
# configure script.
#
AC_DEFUN([MCA_CONFIGURE_STUB],[
#
# Make a best effort to see if we are on a BPROC system. Also allow
# user to specify location to the bproc prefix, which will work just as
# well :).
#
OMPI_HAVE_BPROC=0
BPROC_LDFLAGS=""
#
AC_ARG_WITH(bproc,
AC_HELP_STRING([--with-bproc=DIR],
[directory where the bproc software was installed]))
#
# Case 1: --without-bproc specified - overrides autodetect
#
if test "$with_bproc" = "no"; then
OMPI_HAVE_BPROC=0
#
# Case 2: --with-bproc specified - look in generic places for bproc libs
#
elif test "$with_bproc" = "yes"; then
# See if we can find the bproc libraries...
LIBS_save="$LIBS"
AC_CHECK_LIB(bproc, bproc_numnodes,
OMPI_HAVE_BPROC=1,
AC_MSG_ERROR([*** Connot find working libbproc.]))
LIBS="$LIBS_save"
#
# Case 3: nothing specified - if it is there, go with it. If not, don't :)
#
elif test -z "$with_bproc"; then
LIBS_save="$LIBS"
AC_CHECK_LIB(bproc, bproc_numnodes, OMPI_HAVE_BPROC=1)
LIBS="$LIBS_save"
#
# Case 4: --with-bproc=<foo> specified - try where they said to find it
#
else
BPROC_DIR=$with_bproc
if test -n "$BPROC_DIR"; then
# Make the tests work...
OLDLDFLAGS="$LDFLAGS"
OLDCPPFLAGS="$CPPFLAGS"
BPROC_LDFLAGS="-L$BPROC_DIR/lib"
LDFLAGS="$LDFLAGS $BPROC_LDFLAGS"
CPPFLAGS="$CPPFLAGS -I$BPROC_DIR/include"
LIBS_save="$LIBS"
AC_CHECK_LIB(bproc, bproc_numnodes, OMPI_HAVE_BPROC=1,
AC_MSG_ERROR([*** Cannot find working libbproc.]))
# Since we are going to add the -L and -l to LIBOMPI_EXTRA_LIBS,
# we reset this to the start ...
LDFLAGS="$OLDLDFLAGS"
CPPFLAGS="$OLDCPPFLAGS"
LIBS="$LIBS_save"
else
AC_CHECK_LIB(bproc, bproc_numnodes, OMPI_HAVE_BPROC=1,
AC_MSG_ERROR([*** Cannot find working libbproc.]))
fi
fi
AC_MSG_CHECKING([if want BPROC support])
if test "$OMPI_HAVE_BPROC" = "1"; then
AC_MSG_RESULT([yes])
#
# Ok, we have bproc support. Add proper things to the various
# compiler flags..
#
WRAPPER_EXTRAN_LDFLAGS="$BPROC_LDFLAGS"
WRAPPER_EXTRA_LIBS="-lbproc"
else
AC_MSG_RESULT([no])
LAM_HAVE_BPROC3_API=0
fi
AC_DEFINE_UNQUOTED(OMPI_HAVE_BPROC, $OMPI_HAVE_BPROC,
[Whether we have bproc support or not])
# Clean up
unset BPROC_LDFLAGS
])dnl

14
src/mca/pcm/bproc/src/Makefile.am Обычный файл
Просмотреть файл

@ -0,0 +1,14 @@
#
# $HEADER$
#
include $(top_ompi_srcdir)/config/Makefile.options
AM_CPPFLAGS = -I$(top_ompi_builddir)/src/include \
-I$(top_ompi_srcdir)/src -I$(top_ompi_srcdir)/src/include
noinst_LTLIBRARIES = libmca_pcm_bproc.la
libmca_pcm_bproc_la_SOURCES = \
pcm_bproc.c \
pcm_bproc.h \
pcm_bproc_component.c

61
src/mca/pcm/bproc/src/pcm_bproc.c Обычный файл
Просмотреть файл

@ -0,0 +1,61 @@
/* -*- C -*-
*
* $HEADER$
*
*/
#include "ompi_config.h"
#include "mca/pcm/pcm.h"
#include "mca/pcm/base/base.h"
#include "mca/pcm/bproc/pcm_bproc.h"
#include "class/ompi_list.h"
ompi_list_t *
mca_pcm_bproc_allocate_resources(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid,
int nodes, int procs)
{
return NULL;
}
bool
mca_pcm_bproc_can_spawn(struct mca_pcm_base_module_1_0_0_t* me)
{
return true;
}
int
mca_pcm_bproc_spawn_procs(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid, ompi_list_t *schedlist)
{
return OMPI_SUCCESS;
}
int
mca_pcm_bproc_kill_proc(struct mca_pcm_base_module_1_0_0_t* me,
ompi_process_name_t *name, int flags)
{
return OMPI_SUCCESS;
}
int
mca_pcm_bproc_kill_job(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid, int flags)
{
return OMPI_SUCCESS;
}
int
mca_pcm_bproc_deallocate_resources(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid,
ompi_list_t *nodelist)
{
return OMPI_SUCCESS;
}

100
src/mca/pcm/bproc/src/pcm_bproc.h Обычный файл
Просмотреть файл

@ -0,0 +1,100 @@
/* -*- C -*-
*
* $HEADER$
*
* BWB: COMPONENT TODO
*
* - add process reaping code
* - trigger status change events on process death
*
*/
#include "ompi_config.h"
#include "mca/pcm/pcm.h"
#include "include/types.h"
#include "class/ompi_list.h"
#include <sys/types.h>
#ifndef MCA_PCM_RMS_H_
#define MCA_PCM_RMS_H_
#ifdef __cplusplus
extern "C" {
#endif
/*
* Module open / close
*/
int mca_pcm_rms_component_open(void);
int mca_pcm_rms_component_close(void);
/*
* Startup / Shutdown
*/
struct mca_pcm_base_module_1_0_0_t* mca_pcm_rms_init(int *priority,
bool *allow_multi_user_threads,
bool *have_hidden_threads,
int constraints);
int mca_pcm_rms_finalize(struct mca_pcm_base_module_1_0_0_t* me);
/*
* Interface
*/
ompi_list_t* mca_pcm_rms_allocate_resources(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid,
int nodes, int procs);
bool mca_pcm_rms_can_spawn(struct mca_pcm_base_module_1_0_0_t* me);
int mca_pcm_rms_spawn_procs(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid, ompi_list_t *schedule_list);
int mca_pcm_rms_kill_proc(struct mca_pcm_base_module_1_0_0_t* me,
ompi_process_name_t *name, int flags);
int mca_pcm_rms_kill_job(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid, int flags);
int mca_pcm_rms_deallocate_resources(struct mca_pcm_base_module_1_0_0_t* me,
mca_ns_base_jobid_t jobid,
ompi_list_t *nodelist);
/*
* Job management code
*/
void mca_pcm_rms_job_list_init(void);
void mca_pcm_rms_job_list_fini(void);
int mca_pcm_rms_add_started_pids(mca_ns_base_jobid_t jobid, pid_t child_pid,
mca_ns_base_vpid_t lower, mca_ns_base_vpid_t upper);
pid_t mca_pcm_rms_get_started_pid(mca_ns_base_jobid_t jobid, mca_ns_base_vpid_t vpid,
bool remove_started_pid);
int mca_pcm_rms_get_started_pid_list(mca_ns_base_jobid_t jobid, pid_t **pids, size_t *len,
bool remove_started_pids);
int mca_pcm_rms_remove_job(mca_ns_base_jobid_t jobid);
struct mca_pcm_rms_pids_t {
ompi_list_item_t super;
mca_ns_base_vpid_t lower;
mca_ns_base_vpid_t upper;
pid_t child;
};
typedef struct mca_pcm_rms_pids_t mca_pcm_rms_pids_t;
OBJ_CLASS_DECLARATION(mca_pcm_rms_pids_t);
struct mca_pcm_rms_job_item_t {
ompi_list_item_t super;
mca_ns_base_jobid_t jobid;
ompi_list_t *pids;
};
typedef struct mca_pcm_rms_job_item_t mca_pcm_rms_job_item_t;
OBJ_CLASS_DECLARATION(mca_pcm_rms_job_item_t);
#ifdef __cplusplus
}
#endif
/*
* Module variables
*/
extern int mca_pcm_rms_output;
extern int mca_pcm_rms_use_ns;
#endif /* MCA_PCM_RMS_H_ */

132
src/mca/pcm/bproc/src/pcm_bproc_component.c Обычный файл
Просмотреть файл

@ -0,0 +1,132 @@
/* -*- C -*-
*
* $HEADER$
*
*/
#include "ompi_config.h"
#include "include/constants.h"
#include "include/types.h"
#include "class/ompi_list.h"
#include "mca/mca.h"
#include "mca/base/mca_base_param.h"
#include "mca/pcm/pcm.h"
#include "mca/pcm/base/base.h"
#include "mca/pcm/rms/pcm_rms.h"
#include "mca/llm/base/base.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
/*
* Struct of function pointers and all that to let us be initialized
*/
mca_pcm_base_component_1_0_0_t mca_pcm_bproc_component = {
{
MCA_PCM_BASE_VERSION_1_0_0,
"bproc", /* MCA component name */
1, /* MCA component major version */
0, /* MCA component minor version */
0, /* MCA component release version */
mca_pcm_bproc_component_open, /* component open */
mca_pcm_bproc_component_close /* component close */
},
{
false /* checkpoint / restart */
},
mca_pcm_bproc_init, /* component init */
NULL /* unique name */
};
struct mca_pcm_base_module_1_0_0_t mca_pcm_bproc_1_0_0 = {
mca_pcm_bproc_allocate_resources,
mca_pcm_bproc_can_spawn,
mca_pcm_bproc_spawn_procs,
mca_pcm_bproc_kill_proc,
mca_pcm_bproc_kill_job,
mca_pcm_bproc_deallocate_resources,
mca_pcm_bproc_finalize
};
/* need to create output stream to dump in file */
ompi_output_stream_t mca_pcm_bproc_output_stream = {
false, /* lds_is_debugging BWB - change me for release */
0, /* lds_verbose_level */
false, /* lds_want_syslog */
0, /* lds_syslog_priority */
NULL, /* lds_syslog_ident */
"pcm: bproc: ", /* lds_prefix */
true, /* lds_want_stdout */
false, /* lds_want_stderr */
true, /* lds_want_file */
true, /* lds_want_file_append */
"pcm_bproc" /* lds_file_suffix */
};
/*
* Module variables handles
*/
static int mca_pcm_bproc_param_priority;
static int mca_pcm_bproc_param_debug;
/*
* Component variables. All of these are shared among the module
* instances, so they don't need to go in a special structure or
* anything.
*/
int mca_pcm_bproc_output = 0;
int
mca_pcm_bproc_component_open(void)
{
mca_pcm_bproc_param_debug =
mca_base_param_register_int("pcm", "bproc", "debug", NULL, 100);
mca_pcm_bproc_param_priority =
mca_base_param_register_int("pcm", "bproc", "priority", NULL, 5);
return OMPI_SUCCESS;
}
int
mca_pcm_bproc_component_close(void)
{
return OMPI_SUCCESS;
}
mca_pcm_base_module_t*
mca_pcm_bproc_init(int *priority,
bool *allow_multi_user_threads,
bool *have_hidden_threads,
int constraints)
{
int debug;
mca_base_param_lookup_int(mca_pcm_bproc_param_debug, &debug);
mca_pcm_bproc_output = ompi_output_open(&mca_pcm_bproc_output_stream);
ompi_output_set_verbosity(mca_pcm_bproc_output, debug);
mca_base_param_lookup_int(mca_pcm_bproc_param_priority, priority);
*allow_multi_user_threads = true;
*have_hidden_threads = false;
return NULL;
}
int
mca_pcm_bproc_finalize(struct mca_pcm_base_module_1_0_0_t* me)
{
return OMPI_SUCCESS;
}