1
1

dont worry about which oob component is loaded - always register

this works ok w/ cofs as local replicas are created for each process

This commit was SVN r2577.
Этот коммит содержится в:
Tim Woodall 2004-09-09 22:31:08 +00:00
родитель 1ecabd1364
Коммит 653ee9e1a3

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

@ -5,7 +5,7 @@
/** @file **/ /** @file **/
#include "ompi_config.h" #include "ompi_config.h"
#include <string.h>
#include "include/constants.h" #include "include/constants.h"
#include "util/proc_info.h" #include "util/proc_info.h"
#include "util/sys_info.h" #include "util/sys_info.h"
@ -27,7 +27,6 @@ static ompi_condition_t ompi_rte_condition;
static bool ompi_rte_job_started = false; static bool ompi_rte_job_started = false;
static bool ompi_rte_job_finished = false; static bool ompi_rte_job_finished = false;
extern char* mca_oob_base_include;
/* /*
* Update the registry with an entry for this process. * Update the registry with an entry for this process.
@ -35,46 +34,39 @@ extern char* mca_oob_base_include;
int ompi_rte_register(void) int ompi_rte_register(void)
{ {
/* temporarily disable this if dont know seed - e.g. using cofs */ ompi_buffer_t buffer;
if(NULL == mca_oob_base_include) { char segment[32];
ompi_buffer_t buffer; char *jobid = ompi_name_server.get_jobid_string(ompi_process_info.name);
char segment[32]; char *keys[2];
char *jobid = ompi_name_server.get_jobid_string(ompi_process_info.name); void *addr;
char *keys[2]; int rc,size;
void *addr;
int rc,size;
/* setup keys and segment for this job */
sprintf(segment, "job-%s", jobid);
keys[0] = ompi_name_server.get_proc_name_string(ompi_process_info.name);
keys[1] = NULL;
free(jobid);
if (ompi_rte_debug_flag) { /* setup keys and segment for this job */
ompi_output(0, "rte_register: entered for proc %s", keys[0]); sprintf(segment, "job-%s", jobid);
keys[0] = ompi_name_server.get_proc_name_string(ompi_process_info.name);
keys[1] = NULL;
free(jobid);
if (ompi_rte_debug_flag) {
ompi_output(0, "rte_register: entered for proc %s", keys[0]);
} }
/* setup packed buffer of proc info - may expand as needed */ /* setup packed buffer of proc info - may expand as needed */
ompi_buffer_init(&buffer, 128); ompi_buffer_init(&buffer, 128);
ompi_pack(buffer, &ompi_process_info.pid, 1, OMPI_INT32); ompi_pack(buffer, &ompi_process_info.pid, 1, OMPI_INT32);
ompi_pack_string(buffer, ompi_system_info.nodename); ompi_pack_string(buffer, ompi_system_info.nodename);
/* peek the buffer and resulting size */ /* peek the buffer and resulting size */
ompi_buffer_get(buffer, &addr, &size); ompi_buffer_get(buffer, &addr, &size);
rc = ompi_registry.put(OMPI_REGISTRY_XAND | OMPI_REGISTRY_OVERWRITE, rc = ompi_registry.put(OMPI_REGISTRY_XAND | OMPI_REGISTRY_OVERWRITE,
segment, keys, addr, size); segment, keys, addr, size);
if (ompi_rte_debug_flag) { if (ompi_rte_debug_flag) {
ompi_output(0, "rte_register: %s %d", keys[0], rc); ompi_output(0, "rte_register: %s %d", keys[0], rc);
}
ompi_buffer_free(buffer);
return rc;
} else if (ompi_rte_debug_flag) {
ompi_output(0, "rte_register: oob does NOT have seed");
} }
return OMPI_SUCCESS; ompi_buffer_free(buffer);
return rc;
} }
@ -84,25 +76,21 @@ int ompi_rte_register(void)
int ompi_rte_unregister(void) int ompi_rte_unregister(void)
{ {
/* temporarily disable this if dont know seed - e.g. using cofs */ char segment[32];
if(NULL == mca_oob_base_include) { char *jobid = ompi_name_server.get_jobid_string(ompi_process_info.name);
char segment[32]; char *keys[2];
char *jobid = ompi_name_server.get_jobid_string(ompi_process_info.name); int rc;
char *keys[2];
int rc;
/* setup keys and segment for this job */ /* setup keys and segment for this job */
sprintf(segment, "job-%s", jobid); sprintf(segment, "job-%s", jobid);
free(jobid); free(jobid);
keys[0] = ompi_name_server.get_proc_name_string(ompi_process_info.name); keys[0] = ompi_name_server.get_proc_name_string(ompi_process_info.name);
keys[1] = NULL; keys[1] = NULL;
rc = ompi_registry.delete_object(OMPI_REGISTRY_XAND, segment, keys); rc = ompi_registry.delete_object(OMPI_REGISTRY_XAND, segment, keys);
free(keys[0]); free(keys[0]);
return rc; return rc;
}
return OMPI_SUCCESS;
} }