1
1

Fix a problem that affected attributes - we were missing the vm_register function call.

This commit was SVN r3692.
Этот коммит содержится в:
Ralph Castain 2004-12-03 21:05:22 +00:00
родитель a4c8e4f15c
Коммит 5e560cb148
8 изменённых файлов: 76 добавлений и 26 удалений

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

@ -67,7 +67,7 @@ int ompi_attr_create_predefined(void)
rc = ompi_registry.subscribe( rc = ompi_registry.subscribe(
OMPI_REGISTRY_OR, OMPI_REGISTRY_OR,
OMPI_REGISTRY_NOTIFY_ON_STARTUP|OMPI_REGISTRY_NOTIFY_INCLUDE_STARTUP_DATA, OMPI_REGISTRY_NOTIFY_ON_STARTUP|OMPI_REGISTRY_NOTIFY_INCLUDE_STARTUP_DATA,
OMPI_RTE_VM_STATUS_SEGMENT, OMPI_RTE_VM_STATUS_SEGMENT,
NULL, NULL,
ompi_attr_create_predefined_callback, ompi_attr_create_predefined_callback,
@ -84,12 +84,10 @@ void ompi_attr_create_predefined_callback(
ompi_registry_notify_message_t *msg, ompi_registry_notify_message_t *msg,
void *cbdata) void *cbdata)
{ {
int num, err; int err;
ompi_list_item_t *item; ompi_list_item_t *item;
ompi_registry_value_t *reg_value; ompi_registry_value_t *reg_value;
ompi_buffer_t buffer; ompi_rte_vm_status_t *vm_stat;
char *bogus;
ompi_process_name_t name;
/* Set some default values */ /* Set some default values */
@ -124,26 +122,13 @@ void ompi_attr_create_predefined_callback(
NULL != item; NULL != item;
item = ompi_list_remove_first(&msg->data)) { item = ompi_list_remove_first(&msg->data)) {
reg_value = (ompi_registry_value_t *) item; reg_value = (ompi_registry_value_t *) item;
buffer = (ompi_buffer_t) reg_value->object; vm_stat = ompi_rte_unpack_vm_status(reg_value);
/* Node name */
ompi_unpack_string(buffer, &bogus);
free(bogus);
/* Process name */
ompi_unpack(buffer, &name, 1, OMPI_NAME);
free(&name);
/* OOB contact info */
ompi_unpack_string(buffer, &bogus);
free(bogus);
/* Process slot count */ /* Process slot count */
ompi_unpack(buffer, &num, 1, OMPI_INT32); attr_universe_size += vm_stat->num_cpus;
attr_universe_size += num;
/* Discard the rest */ /* Discard the rest */
ompi_buffer_free(buffer); free(vm_stat);
OBJ_RELEASE(item); OBJ_RELEASE(item);
} }
} }

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

@ -114,6 +114,13 @@ OMPI_DECLSPEC mca_ns_base_vpid_t mca_ns_base_reserve_range(mca_ns_base_jobid_
OMPI_DECLSPEC int mca_ns_base_free_name(ompi_process_name_t* name); OMPI_DECLSPEC int mca_ns_base_free_name(ompi_process_name_t* name);
OMPI_DECLSPEC mca_ns_base_cellid_t mca_ns_base_create_cellid_not_available(void);
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,
mca_ns_base_vpid_t range);
/* /*

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

@ -35,6 +35,30 @@
* globals * globals
*/ */
/*
* "not available" functions
*/
mca_ns_base_cellid_t
mca_ns_base_create_cellid_not_available(void)
{
return MCA_NS_BASE_CELLID_MAX;
}
mca_ns_base_jobid_t
mca_ns_base_create_jobid_not_available(void)
{
return MCA_NS_BASE_JOBID_MAX;
}
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)
{
return MCA_NS_BASE_VPID_MAX;
}
/* /*
* functions * functions
*/ */

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

@ -40,7 +40,36 @@
* Global variables * Global variables
*/ */
int mca_ns_base_output = -1; int mca_ns_base_output = -1;
mca_ns_base_module_t ompi_name_server; mca_ns_base_module_t ompi_name_server = {
mca_ns_base_create_cellid_not_available,
mca_ns_base_assign_cellid_to_process,
mca_ns_base_create_jobid_not_available,
mca_ns_base_create_process_name,
mca_ns_base_copy_process_name,
mca_ns_base_convert_string_to_process_name,
mca_ns_base_get_vpid_range_not_available,
mca_ns_base_free_name,
mca_ns_base_get_proc_name_string,
mca_ns_base_get_vpid_string,
mca_ns_base_convert_vpid_to_string,
mca_ns_base_convert_string_to_vpid,
mca_ns_base_get_jobid_string,
mca_ns_base_convert_jobid_to_string,
mca_ns_base_convert_string_to_jobid,
mca_ns_base_get_cellid_string,
mca_ns_base_convert_cellid_to_string,
mca_ns_base_convert_string_to_cellid,
mca_ns_base_get_vpid,
mca_ns_base_get_jobid,
mca_ns_base_get_cellid,
mca_ns_base_compare,
mca_ns_base_pack_name,
mca_ns_base_unpack_name,
mca_ns_base_pack_cellid,
mca_ns_base_unpack_cellid,
mca_ns_base_pack_jobid,
mca_ns_base_unpack_jobid
};
bool mca_ns_base_selected = false; bool mca_ns_base_selected = false;
ompi_list_t mca_ns_base_components_available; ompi_list_t mca_ns_base_components_available;
mca_ns_base_component_t mca_ns_base_selected_component; mca_ns_base_component_t mca_ns_base_selected_component;

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

@ -281,6 +281,11 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
goto error; goto error;
} }
/*
* Set the virtual machine status for this node
*/
ompi_rte_vm_register();
/* execute the compound command - no return data requested /* execute the compound command - no return data requested
* we'll get it all from the startup message * we'll get it all from the startup message
*/ */

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

@ -133,7 +133,7 @@ ompi_rte_vm_status_t
return stat_ptr; return stat_ptr;
} }
int ompi_vm_register(void) int ompi_rte_vm_register(void)
{ {
ompi_rte_vm_status_t status; ompi_rte_vm_status_t status;

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

@ -490,9 +490,9 @@ OMPI_DECLSPEC void ompi_rte_parse_environ(void);
/** /**
* Register a daemon on the virtual machine segment. * Register on the virtual machine segment.
*/ */
OMPI_DECLSPEC int ompi_vm_register(void); OMPI_DECLSPEC int ompi_rte_vm_register(void);
/** /**
* Startup a job - notify processes that all ready to begin * Startup a job - notify processes that all ready to begin

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

@ -236,7 +236,7 @@ int main(int argc, char *argv[])
/* register this node on the virtual machine */ /* register this node on the virtual machine */
ompi_vm_register(); ompi_rte_vm_register();
if (ompi_daemon_debug) { if (ompi_daemon_debug) {
ompi_output(0, "[%d,%d,%d] ompid: issuing callback", ompi_rte_get_self()->cellid, ompi_output(0, "[%d,%d,%d] ompid: issuing callback", ompi_rte_get_self()->cellid,