1
1

Add a new function to the name server that takes a base and offset and returns the corresponding vpid.

Fix the soh code.

This commit was SVN r3848.
Этот коммит содержится в:
Ralph Castain 2004-12-20 01:48:37 +00:00
родитель 45f77e2fc1
Коммит 832f4b566c
9 изменённых файлов: 54 добавлений и 8 удалений

Просмотреть файл

@ -121,6 +121,7 @@ OMPI_DECLSPEC mca_ns_base_jobid_t mca_ns_base_create_jobid_not_available(void
OMPI_DECLSPEC mca_ns_base_vpid_t mca_ns_base_get_vpid_range_not_available(mca_ns_base_jobid_t job, OMPI_DECLSPEC mca_ns_base_vpid_t mca_ns_base_get_vpid_range_not_available(mca_ns_base_jobid_t job,
mca_ns_base_vpid_t range); mca_ns_base_vpid_t range);
OMPI_DECLSPEC mca_ns_base_vpid_t mca_ns_base_derive_vpid(mca_ns_base_vpid_t base_vpid, int offset);
/* /*

Просмотреть файл

@ -92,6 +92,12 @@ ompi_process_name_t* mca_ns_base_create_process_name(mca_ns_base_cellid_t cell,
return(newname); return(newname);
} }
mca_ns_base_vpid_t mca_ns_base_derive_vpid(mca_ns_base_vpid_t base_vpid, int offset)
{
return (base_vpid + (mca_ns_base_vpid_t)offset);
}
ompi_process_name_t* mca_ns_base_copy_process_name(ompi_process_name_t* name) ompi_process_name_t* mca_ns_base_copy_process_name(ompi_process_name_t* name)
{ {
mca_ns_base_cellid_t cell; mca_ns_base_cellid_t cell;

Просмотреть файл

@ -219,6 +219,14 @@ typedef mca_ns_base_jobid_t (*mca_ns_base_module_create_jobid_fn_t)(void);
*/ */
typedef ompi_process_name_t* (*mca_ns_base_module_create_proc_name_fn_t)(mca_ns_base_cellid_t cell, mca_ns_base_jobid_t job, mca_ns_base_vpid_t vpid); typedef ompi_process_name_t* (*mca_ns_base_module_create_proc_name_fn_t)(mca_ns_base_cellid_t cell, mca_ns_base_jobid_t job, mca_ns_base_vpid_t vpid);
/**
* Derive a process vpid.
* Given a base vpid and an offset, return the computed equivalent vpid. This function
* is required because the vpid may not be an integer - need to provide a means for
* computing the resulting vpid in case it isn't.
*/
typedef mca_ns_base_vpid_t (*mca_ns_base_module_derive_vpid_fn_t)(mca_ns_base_vpid_t base_vpid, int offset);
/** /**
* Make a copy of a process name. * Make a copy of a process name.
* Given a process name, this function creates a copy of it and returns a pointer * Given a process name, this function creates a copy of it and returns a pointer
@ -726,6 +734,7 @@ struct mca_ns_base_module_1_0_0_t {
mca_ns_base_module_unpack_cellid_fn_t unpack_cellid; mca_ns_base_module_unpack_cellid_fn_t unpack_cellid;
mca_ns_base_module_pack_jobid_fn_t pack_jobid; mca_ns_base_module_pack_jobid_fn_t pack_jobid;
mca_ns_base_module_unpack_jobid_fn_t unpack_jobid; mca_ns_base_module_unpack_jobid_fn_t unpack_jobid;
mca_ns_base_module_derive_vpid_fn_t derive_vpid;
}; };
typedef struct mca_ns_base_module_1_0_0_t mca_ns_base_module_1_0_0_t; typedef struct mca_ns_base_module_1_0_0_t mca_ns_base_module_1_0_0_t;

Просмотреть файл

@ -88,7 +88,8 @@ static mca_ns_base_module_t mca_ns_proxy = {
mca_ns_base_pack_cellid, mca_ns_base_pack_cellid,
mca_ns_base_unpack_cellid, mca_ns_base_unpack_cellid,
mca_ns_base_pack_jobid, mca_ns_base_pack_jobid,
mca_ns_base_unpack_jobid mca_ns_base_unpack_jobid,
mca_ns_base_derive_vpid
}; };
/* /*

Просмотреть файл

@ -88,7 +88,8 @@ static mca_ns_base_module_t mca_ns_replica = {
mca_ns_base_pack_name, mca_ns_base_pack_name,
mca_ns_base_unpack_name, mca_ns_base_unpack_name,
mca_ns_base_pack_jobid, mca_ns_base_pack_jobid,
mca_ns_base_unpack_jobid mca_ns_base_unpack_jobid,
mca_ns_base_derive_vpid
}; };
/* /*

Просмотреть файл

@ -31,6 +31,7 @@ libmca_soh_base_la_SOURCES = \
$(headers) \ $(headers) \
soh_base_close.c \ soh_base_close.c \
soh_base_select.c \ soh_base_select.c \
soh_base_local_functions.c \
soh_base_open.c soh_base_open.c

Просмотреть файл

@ -22,6 +22,7 @@
*/ */
#include "ompi_config.h" #include "ompi_config.h"
#include "include/constants.h"
#include "class/ompi_list.h" #include "class/ompi_list.h"
#include "mca/mca.h" #include "mca/mca.h"
@ -39,7 +40,7 @@ OMPI_DECLSPEC int mca_soh_base_open(void);
OMPI_DECLSPEC int mca_soh_base_select(bool *allow_multi_user_threads, OMPI_DECLSPEC int mca_soh_base_select(bool *allow_multi_user_threads,
bool *have_hidden_threads); bool *have_hidden_threads);
OMPI_DECLSPEC int mca_soh_base_close(void); OMPI_DECLSPEC int mca_soh_base_close(void);
OMPI_DECLSPEC int mca_soh_base_update_cell_soh_not_available(mca_ns_base_cellid_t cellid);
/* /*
* globals that might be needed * globals that might be needed

30
src/mca/soh/base/soh_base_local_functions.c Обычный файл
Просмотреть файл

@ -0,0 +1,30 @@
/*
* 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$
*
* Additional copyrights may follow
*
* $HEADER$
*/
/** @file:
*/
/*
* includes
*/
#include "ompi_config.h"
#include "class/ompi_list.h"
#include "mca/mca.h"
#include "mca/soh/base/base.h"
int mca_soh_base_update_cell_soh_not_available(mca_ns_base_cellid_t cellid)
{
return OMPI_ERR_NOT_IMPLEMENTED;
}

Просмотреть файл

@ -43,11 +43,7 @@
*/ */
int mca_soh_base_output = -1; int mca_soh_base_output = -1;
mca_soh_base_module_t ompi_soh_monitor = { mca_soh_base_module_t ompi_soh_monitor = {
#if RALPH_NEEDS_TO_FIX mca_soh_base_update_cell_soh_not_available
mca_soh_base_update_cell_soh_not_available;
#else
NULL
#endif
}; };
bool mca_soh_base_selected = false; bool mca_soh_base_selected = false;
ompi_list_t mca_soh_base_components_available; ompi_list_t mca_soh_base_components_available;