More fixes to try to get Red Storm port going again....
* Add a platform spec for using the portals reference implementation's RTE instead of our own to make local testing easier. * Add a cnos rmgr component so that 1) we don't have to build nearly as many components (no need for ras,rds,pls,etc.) and 2) calls to MPI_ABORT() won't print error messages about not being able to contact the daemon. Still need to fill in some of the terminate stuff with calls from cnos, but will come in time. * Make gpr_null use the base code for creating value and keyval structures so that we don't segfault in ompi_mpi_init(). This commit was SVN r9510.
Этот коммит содержится в:
родитель
858612fd06
Коммит
2c64ab562e
@ -5,12 +5,12 @@
|
||||
enable_f77=no
|
||||
enable_io_romio=no
|
||||
with_threads=posix
|
||||
enable_pretty_print_stacktrace=no
|
||||
enable_pretty_print_stacktrace=yes
|
||||
enable_dlopen=no
|
||||
with_portals_config=utcp
|
||||
with_memory_manager=no
|
||||
enable_heterogeneous=no
|
||||
enable_mca_no_build=maffinity-first_use,maffinity-libnuma,paffinity-linux,timer-linux,gpr-proxy,gpr-replica,rml-oob,btl-sm,mpool-sm,btl-self,ns-proxy,rds-resfile,sds-env,sds-pipe,sds-seed,sds-singleton,coll-hierarch,coll-sm,pml-dr,btl-tcp,oob-tcp,ras-dash_host,ras-hostfile,ras-localhost,rds-hostfile,rds-resfile,rmaps-round_robin,rmgr-proxy,pls-fork,pls-rsh,common_sm
|
||||
enable_mca_no_build=maffinity-first_use,maffinity-libnuma,paffinity-linux,timer-linux,gpr-proxy,gpr-replica,rml-oob,btl-sm,mpool-sm,btl-self,ns-proxy,rds-resfile,rds-hostfile,sds-env,sds-pipe,sds-seed,sds-singleton,coll-hierarch,coll-sm,pml-dr,btl-tcp,oob-tcp,ras-dash_host,ras-hostfile,ras-localhost,rmaps-round_robin,rmgr-urm,rmgr-proxy,pls-fork,pls-rsh,common-sm,iof-svc
|
||||
with_memory_manager=no
|
||||
with_slurm=no
|
||||
with_bproc=no
|
||||
@ -18,3 +18,4 @@ with_mvapi=no
|
||||
with_openib=no
|
||||
with_gm=no
|
||||
with_rml_cnos=utcp
|
||||
with_rmgr_cnos=utcp
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "orte/mca/gpr/gpr.h"
|
||||
#include "orte/orte_constants.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "orte/mca/gpr/base/base.h"
|
||||
|
||||
|
||||
static int
|
||||
@ -61,23 +62,6 @@ orte_gpr_null_cleanup_proc(orte_process_name_t * proc)
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
static int orte_gpr_null_create_value(orte_gpr_value_t **value,
|
||||
orte_gpr_addr_mode_t addr_mode,
|
||||
char *segment,
|
||||
size_t cnt, /**< Number of keyval objects */
|
||||
size_t num_tokens)
|
||||
{
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
static int orte_gpr_null_create_keyval(orte_gpr_keyval_t **keyval,
|
||||
char *key,
|
||||
orte_data_type_t type,
|
||||
void *data)
|
||||
{
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
static int
|
||||
orte_gpr_null_preallocate_segment(char *name, size_t num_slots)
|
||||
{
|
||||
@ -387,8 +371,8 @@ orte_gpr_base_module_t orte_gpr_null_module = {
|
||||
orte_gpr_null_delete_segment_nb,
|
||||
orte_gpr_null_index_nb,
|
||||
/* GENERAL OPERATIONS */
|
||||
orte_gpr_null_create_value,
|
||||
orte_gpr_null_create_keyval,
|
||||
orte_gpr_base_create_value,
|
||||
orte_gpr_base_create_keyval,
|
||||
orte_gpr_null_preallocate_segment,
|
||||
orte_gpr_null_deliver_notify_msg,
|
||||
/* ARITHMETIC OPERATIONS */
|
||||
|
49
orte/mca/rmgr/cnos/Makefile.am
Обычный файл
49
orte/mca/rmgr/cnos/Makefile.am
Обычный файл
@ -0,0 +1,49 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# Use the top-level Makefile.options
|
||||
|
||||
|
||||
|
||||
# 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_rmgr_cnos_DSO
|
||||
component_noinst =
|
||||
component_install = mca_rmgr_cnos.la
|
||||
else
|
||||
component_noinst = libmca_rmgr_cnos.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
cnos_SOURCES = \
|
||||
rmgr_cnos.c \
|
||||
rmgr_cnos.h \
|
||||
rmgr_cnos_component.c
|
||||
|
||||
mcacomponentdir = $(libdir)/openmpi
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_rmgr_cnos_la_SOURCES = $(cnos_SOURCES)
|
||||
mca_rmgr_cnos_la_LIBADD = \
|
||||
$(top_ompi_builddir)/orte/liborte.la \
|
||||
$(top_ompi_builddir)/opal/libopal.la
|
||||
mca_rmgr_cnos_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
noinst_LTLIBRARIES = $(component_noinst)
|
||||
libmca_rmgr_cnos_la_SOURCES = $(cnos_SOURCES)
|
||||
libmca_rmgr_cnos_la_LIBADD =
|
||||
libmca_rmgr_cnos_la_LDFLAGS = -module -avoid-version
|
35
orte/mca/rmgr/cnos/configure.m4
Обычный файл
35
orte/mca/rmgr/cnos/configure.m4
Обычный файл
@ -0,0 +1,35 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. 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_rmgr_cnos_CONFIG([action-if-found], [action-if-not-found])
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_rmgr_cnos_CONFIG],[
|
||||
rmgr_cnos_happy="no"
|
||||
# see if we should enable super secret utcp support
|
||||
if test "$with_rmgr_cnos" = "utcp" ; then
|
||||
rmgr_cnos_happy="yes"
|
||||
else
|
||||
# check for cnos functions
|
||||
AC_CHECK_FUNC([cnos_barrier],
|
||||
[rmgr_cnos_happy="yes"],
|
||||
[rmgr_cnos_happy="no"])
|
||||
fi
|
||||
|
||||
AS_IF([test "$rmgr_cnos_happy" = "yes"], [$1], [$2])
|
||||
])dnl
|
21
orte/mca/rmgr/cnos/configure.params
Обычный файл
21
orte/mca/rmgr/cnos/configure.params
Обычный файл
@ -0,0 +1,21 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# Specific to this module
|
||||
|
||||
PARAM_INIT_FILE=rmgr_cnos.c
|
||||
PARAM_CONFIG_FILES="Makefile"
|
141
orte/mca/rmgr/cnos/rmgr_cnos.c
Обычный файл
141
orte/mca/rmgr/cnos/rmgr_cnos.c
Обычный файл
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
#include "orte_config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif /* HAVE_UNISTD_H */
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#endif /* HAVE_STRING_H */
|
||||
|
||||
#include "orte/orte_constants.h"
|
||||
#include "orte/mca/rmgr/base/base.h"
|
||||
#include "rmgr_cnos.h"
|
||||
|
||||
|
||||
static int orte_rmgr_cnos_query(void);
|
||||
|
||||
static int orte_rmgr_cnos_create(
|
||||
orte_app_context_t** app_context,
|
||||
size_t num_context,
|
||||
orte_jobid_t* jobid);
|
||||
|
||||
static int orte_rmgr_cnos_allocate(
|
||||
orte_jobid_t jobid);
|
||||
|
||||
static int orte_rmgr_cnos_deallocate(
|
||||
orte_jobid_t jobid);
|
||||
|
||||
static int orte_rmgr_cnos_map(
|
||||
orte_jobid_t jobid);
|
||||
|
||||
static int orte_rmgr_cnos_launch(
|
||||
orte_jobid_t jobid);
|
||||
|
||||
static int orte_rmgr_cnos_terminate_job(
|
||||
orte_jobid_t jobid);
|
||||
|
||||
static int orte_rmgr_cnos_terminate_proc(
|
||||
const orte_process_name_t* proc_name);
|
||||
|
||||
static int orte_rmgr_cnos_spawn(
|
||||
orte_app_context_t** app_context,
|
||||
size_t num_context,
|
||||
orte_jobid_t* jobid,
|
||||
orte_rmgr_cb_fn_t cbfn,
|
||||
orte_proc_state_t cb_conditions);
|
||||
|
||||
orte_rmgr_base_module_t orte_rmgr_cnos_module = {
|
||||
orte_rmgr_cnos_query,
|
||||
orte_rmgr_cnos_create,
|
||||
orte_rmgr_cnos_allocate,
|
||||
orte_rmgr_cnos_deallocate,
|
||||
orte_rmgr_cnos_map,
|
||||
orte_rmgr_cnos_launch,
|
||||
orte_rmgr_cnos_terminate_job,
|
||||
orte_rmgr_cnos_terminate_proc,
|
||||
orte_rmgr_cnos_spawn,
|
||||
orte_rmgr_base_proc_stage_gate_init,
|
||||
orte_rmgr_base_proc_stage_gate_mgr,
|
||||
NULL, /* finalize */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Create the job segment and initialize the application context.
|
||||
*/
|
||||
static int orte_rmgr_cnos_create(
|
||||
orte_app_context_t** app_context,
|
||||
size_t num_context,
|
||||
orte_jobid_t* jobid)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_query(void)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_allocate(orte_jobid_t jobid)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_deallocate(orte_jobid_t jobid)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_map(orte_jobid_t jobid)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_launch(orte_jobid_t jobid)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_terminate_job(orte_jobid_t jobid)
|
||||
{
|
||||
abort();
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
static int orte_rmgr_cnos_terminate_proc(const orte_process_name_t* proc_name)
|
||||
{
|
||||
abort();
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static int orte_rmgr_cnos_spawn(
|
||||
orte_app_context_t** app_context,
|
||||
size_t num_context,
|
||||
orte_jobid_t* jobid,
|
||||
orte_rmgr_cb_fn_t cbfunc,
|
||||
orte_proc_state_t cb_conditions)
|
||||
{
|
||||
return ORTE_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
|
39
orte/mca/rmgr/cnos/rmgr_cnos.h
Обычный файл
39
orte/mca/rmgr/cnos/rmgr_cnos.h
Обычный файл
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* Universal Resource Manager (URM)
|
||||
*/
|
||||
#ifndef ORTE_RMGR_URM_H
|
||||
#define ORTE_RMGR_URM_H
|
||||
|
||||
#include "orte/mca/rmgr/rmgr.h"
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Global URM component */
|
||||
OMPI_COMP_EXPORT extern orte_rmgr_base_component_t mca_rmgr_cnos_component;
|
||||
/** Global URM module */
|
||||
OMPI_COMP_EXPORT extern orte_rmgr_base_module_t orte_rmgr_cnos_module;
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
88
orte/mca/rmgr/cnos/rmgr_cnos_component.c
Обычный файл
88
orte/mca/rmgr/cnos/rmgr_cnos_component.c
Обычный файл
@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "orte_config.h"
|
||||
#include "orte/orte_constants.h"
|
||||
#include "orte/util/proc_info.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "orte/mca/errmgr/errmgr.h"
|
||||
|
||||
#include "orte/mca/rds/base/base.h"
|
||||
#include "orte/mca/ras/base/base.h"
|
||||
#include "orte/mca/rmaps/base/base.h"
|
||||
#include "orte/mca/pls/base/base.h"
|
||||
#include "rmgr_cnos.h"
|
||||
|
||||
/*
|
||||
* Local functions
|
||||
*/
|
||||
|
||||
static int orte_rmgr_cnos_open(void);
|
||||
static int orte_rmgr_cnos_close(void);
|
||||
static orte_rmgr_base_module_t* orte_rmgr_cnos_init(int *priority);
|
||||
|
||||
|
||||
orte_rmgr_base_component_t mca_rmgr_cnos_component = {
|
||||
/* First, the mca_base_component_t struct containing meta
|
||||
information about the component itself */
|
||||
|
||||
{
|
||||
/* Indicate that we are a iof v1.0.0 component (which also
|
||||
implies a specific MCA version) */
|
||||
|
||||
ORTE_RMGR_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_rmgr_cnos_open, /* component open */
|
||||
orte_rmgr_cnos_close /* component close */
|
||||
},
|
||||
|
||||
/* Next the MCA v1.0.0 component meta data */
|
||||
{
|
||||
/* Whether the component is checkpointable or not */
|
||||
false
|
||||
},
|
||||
|
||||
orte_rmgr_cnos_init
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* component open/close/init function
|
||||
*/
|
||||
static int orte_rmgr_cnos_open(void)
|
||||
{
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static orte_rmgr_base_module_t *orte_rmgr_cnos_init(int* priority)
|
||||
{
|
||||
*priority = 1;
|
||||
return &orte_rmgr_cnos_module;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Close all subsystems.
|
||||
*/
|
||||
static int orte_rmgr_cnos_close(void)
|
||||
{
|
||||
return ORTE_SUCCESS;
|
||||
}
|
Загрузка…
Ссылка в новой задаче
Block a user