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.
Этот коммит содержится в:
родитель
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user