[mpich2-commits] r5641 - mpich2/trunk/src/pm/hydra/pm/pmiserv
balaji at mcs.anl.gov
balaji at mcs.anl.gov
Fri Oct 30 19:01:13 CDT 2009
Author: balaji
Date: 2009-10-30 19:01:13 -0500 (Fri, 30 Oct 2009)
New Revision: 5641
Modified:
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy_utils.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c
Log:
Fix for the MPICH_INTERFACE_HOSTNAME issue (ticket #903). Now Hydra
will automatically pick the hostname specified by the user in the
hostfile as the preferred communication interface. With this, Hydra
should work more correctly as described in
http://wiki.mcs.anl.gov/mpich2/index.php/Using_the_Hydra_Process_Manager#Hydra_with_Non-Ethernet_Networks
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy.h
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy.h 2009-10-30 23:03:34 UTC (rev 5640)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy.h 2009-10-31 00:01:13 UTC (rev 5641)
@@ -46,6 +46,8 @@
/* Proxy details */
struct {
int id;
+ char *hostname;
+
int proxy_core_count;
int proxy_process_count;
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy_utils.c 2009-10-30 23:03:34 UTC (rev 5640)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_proxy_utils.c 2009-10-31 00:01:13 UTC (rev 5641)
@@ -35,6 +35,7 @@
HYD_pmcd_pmip.downstream.exit_status = NULL;
HYD_pmcd_pmip.local.id = -1;
+ HYD_pmcd_pmip.local.hostname = NULL;
HYD_pmcd_pmip.local.proxy_core_count = 0;
HYD_pmcd_pmip.local.proxy_process_count = 0;
HYD_pmcd_pmip.local.procs_are_launched = 0;
@@ -172,6 +173,13 @@
continue;
}
+ /* Hostname (as specified by the user) */
+ if (!strcmp(*argv, "--hostname")) {
+ argv++;
+ HYD_pmcd_pmip.local.hostname = HYDU_strdup(*argv);
+ continue;
+ }
+
/* Process count */
if (!strcmp(*argv, "--proxy-core-count")) {
argv++;
@@ -413,6 +421,9 @@
if (HYD_pmcd_pmip.downstream.exit_status)
HYDU_FREE(HYD_pmcd_pmip.downstream.exit_status);
+ if (HYD_pmcd_pmip.local.hostname)
+ HYDU_FREE(HYD_pmcd_pmip.local.hostname);
+
HYDT_bind_finalize();
/* Reinitialize all params to set everything to "NULL" or
@@ -606,6 +617,16 @@
HYDU_ERR_POP(status, "unable to add env to list\n");
}
+ /* Set the MPICH_INTERFACE_HOSTNAME based on what the user provided */
+ if (HYD_pmcd_pmip.local.hostname) {
+ status = HYDU_env_create(&env, "MPICH_INTERFACE_HOSTNAME",
+ HYD_pmcd_pmip.local.hostname);
+ HYDU_ERR_POP(status, "unable to create env\n");
+
+ status = HYDU_append_env_to_list(*env, &prop_env);
+ HYDU_ERR_POP(status, "unable to add env to list\n");
+ }
+
for (i = 0; i < exec->proc_count; i++) {
pmi_id = HYDU_local_to_global_id(process_id,
HYD_pmcd_pmip.start_pid,
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c 2009-10-30 23:03:34 UTC (rev 5640)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c 2009-10-31 00:01:13 UTC (rev 5641)
@@ -229,6 +229,9 @@
HYDU_MALLOC(proxy->exec_launch_info, char **, total_args * sizeof(char *), status);
arg = 0;
+ proxy->exec_launch_info[arg++] = HYDU_strdup("--hostname");
+ proxy->exec_launch_info[arg++] = HYDU_strdup(proxy->hostname);
+
proxy->exec_launch_info[arg++] = HYDU_strdup("--global-core-count");
proxy->exec_launch_info[arg++] = HYDU_int_to_str(HYD_handle.global_core_count);
More information about the mpich2-commits
mailing list