[mpich2-commits] r4164 - in mpich2/trunk/src/pm/hydra: include launcher/mpiexec utils/bind

balaji at mcs.anl.gov balaji at mcs.anl.gov
Sun Mar 22 19:30:25 CDT 2009


Author: balaji
Date: 2009-03-22 19:30:24 -0500 (Sun, 22 Mar 2009)
New Revision: 4164

Modified:
   mpich2/trunk/src/pm/hydra/include/hydra_base.h
   mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
   mpich2/trunk/src/pm/hydra/utils/bind/bind.c
Log:
Added an option to specify no binding at runtime and made that the
default for now.


Modified: mpich2/trunk/src/pm/hydra/include/hydra_base.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_base.h	2009-03-23 00:23:20 UTC (rev 4163)
+++ mpich2/trunk/src/pm/hydra/include/hydra_base.h	2009-03-23 00:30:24 UTC (rev 4164)
@@ -94,6 +94,7 @@
 
 typedef enum {
     HYD_BIND_UNSET,
+    HYD_BIND_NONE,
     HYD_BIND_RR,
     HYD_BIND_BUDDY,
     HYD_BIND_PACK,

Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-23 00:23:20 UTC (rev 4163)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-23 00:30:24 UTC (rev 4164)
@@ -204,13 +204,16 @@
             }
             HYDU_ERR_CHKANDJUMP(status, handle.binding != HYD_BIND_UNSET,
                                 HYD_INTERNAL_ERROR, "duplicate binding\n");
-            if (!strcmp(str2, "rr"))
+            if (!strcmp(str2, "none"))
+                handle.binding = HYD_BIND_NONE;
+            else if (!strcmp(str2, "rr"))
                 handle.binding = HYD_BIND_RR;
             else if (!strcmp(str2, "buddy"))
                 handle.binding = HYD_BIND_BUDDY;
             else if (!strcmp(str2, "pack"))
                 handle.binding = HYD_BIND_PACK;
-            /* We don't support user-specified mappings yet */
+            else if (!strcmp(str2, "user"))
+                handle.binding = HYD_BIND_USER;
 
             continue;
         }
@@ -279,6 +282,9 @@
     status = HYDU_get_base_path(progname, handle.wdir, &handle.base_path);
     HYDU_ERR_POP(status, "unable to get base path\n");
 
+    if (handle.binding == HYD_BIND_UNSET)
+        handle.binding = HYD_BIND_NONE;
+
     if (handle.prop == HYD_ENV_PROP_UNSET)
         handle.prop = HYD_ENV_PROP_ALL;
 

Modified: mpich2/trunk/src/pm/hydra/utils/bind/bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/bind/bind.c	2009-03-23 00:23:20 UTC (rev 4163)
+++ mpich2/trunk/src/pm/hydra/utils/bind/bind.c	2009-03-23 00:30:24 UTC (rev 4164)
@@ -183,8 +183,13 @@
             else
                 return bind_info.bind_map[0][0];
         }
-        else
+        else if (binding == HYD_BIND_NONE) {
             return -1;
+        }
+        else if (binding == HYD_BIND_USER) {
+            HYDU_Error_printf("User-specified binding is not supported yet\n");
+            return -1;
+        }
     }
     else {
         HYDU_Error_printf("Process-core binding is not supported on this platform\n");



More information about the mpich2-commits mailing list