[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.0.4-305-g23d3dcd

mysql vizuser noreply at mpich.org
Tue Jun 11 16:40:27 CDT 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  23d3dcd1e1313fa707529969443f08069dfe29d0 (commit)
       via  0e527c1357b43aff182f45c471809fe5f6a4d8cf (commit)
      from  18bea0dab583b63ceb513ef5b98d05c9d4e27bb2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/23d3dcd1e1313fa707529969443f08069dfe29d0

commit 23d3dcd1e1313fa707529969443f08069dfe29d0
Author: Michael Blocksome <blocksom at us.ibm.com>
Date:   Tue Jun 11 13:53:42 2013 -0500

    Update README.vin with bgq configure instructions.
    
    Signed-off-by: Pavan Balaji <balaji at mcs.anl.gov>

diff --git a/README.vin b/README.vin
index 56e783d..a13b933 100644
--- a/README.vin
+++ b/README.vin
@@ -492,19 +492,26 @@ pamid device
 This is the device used on the IBM Blue Gene/Q system.  The following
 configure options can be used:
 
-  ./configure --host=powerpc64-bgq-linux --target=powerpc64-bgq-linux --build=powerpc64-linux-gnu
-	      --with-device=pamid:BGQ --with-file-system=bg+bglockless --enable-timer-type=device
-	      --with-fwrapname=fmpich --with-cross=src/mpid/pamid/cross/bgq8
-	      --with-pm=none --enable-timing=no --disable-collchk
-	      --disable-graphics --disable-rlog --disable-sample --disable-rpath
-	      --with-aint-size=8 --with-assert-level=2 --enable-fast=O3
-	      --enable-error-messages --disable-debuginfo
-	      --enable-thread-cs=per-object --enable-handle-allocation=tls
-	      --enable-refcount=lock-free --disable-predefined-refcount
-	      CC=powerpc64-bgq-linux-gcc
-	      CXX=powerpc64-bgq-linux-g++
-	      F77=powerpc64-bgq-linux-gfortran
-	      FC=powerpc64-bgq-linux-gfortran
+  ./configure --host=powerpc64-bgq-linux                                \
+              --with-device=pamid:BGQ                                   \
+              --with-file-system=bg+bglockless
+
+The Blue Gene/Q cross compilers must either be in the $PATH, or
+explicitly specified using environment variables, before configure.
+For example:
+
+  PATH=$PATH:/bgsys/drivers/ppcfloor/gnu-linux/bin
+
+or
+
+  CC=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc64-bgq-linux-gcc
+  CXX=...
+  ...
+
+There are several other configure options that are specific to building
+on a Blue Gene/Q system.  See the wiki page for more information:
+
+  https://wiki.mpich.org/mpich/index.php/BGQ
 
 -------------------------------------------------------------------------
 

http://git.mpich.org/mpich.git/commitdiff/0e527c1357b43aff182f45c471809fe5f6a4d8cf

commit 0e527c1357b43aff182f45c471809fe5f6a4d8cf
Author: Pavan Balaji <balaji at mcs.anl.gov>
Date:   Mon Jun 10 16:11:07 2013 -0500

    Fix tt#1505.
    
    We slow down consecutive ssh connections to the same host to avoid the
    ssh server falling over.  This patch allows the user to control how
    many ssh connections we allow before throttling.

diff --git a/src/pm/hydra/tools/bootstrap/external/ssh.c b/src/pm/hydra/tools/bootstrap/external/ssh.c
index 1a8c98e..764618f 100644
--- a/src/pm/hydra/tools/bootstrap/external/ssh.c
+++ b/src/pm/hydra/tools/bootstrap/external/ssh.c
@@ -17,10 +17,13 @@ static HYD_status create_element(char *hostname, struct HYDT_bscd_ssh_time **e)
     struct HYDT_bscd_ssh_time *tmp;
     HYD_status status = HYD_SUCCESS;
 
+    /* FIXME: These are never getting freed */
     HYDU_MALLOC((*e), struct HYDT_bscd_ssh_time *, sizeof(struct HYDT_bscd_ssh_time), status);
+    HYDU_MALLOC((*e)->init_time, struct timeval *,
+                HYDT_bscd_ssh_limit_time * sizeof(struct timeval), status);
 
     (*e)->hostname = HYDU_strdup(hostname);
-    for (i = 0; i < SSH_LIMIT; i++) {
+    for (i = 0; i < HYDT_bscd_ssh_limit; i++) {
         (*e)->init_time[i].tv_sec = 0;
         (*e)->init_time[i].tv_usec = 0;
     }
@@ -57,7 +60,7 @@ HYD_status HYDTI_bscd_ssh_store_launch_time(char *hostname)
     }
 
     /* Search for an unset element to store the current time */
-    for (i = 0; i < SSH_LIMIT; i++) {
+    for (i = 0; i < HYDT_bscd_ssh_limit; i++) {
         if (e->init_time[i].tv_sec == 0 && e->init_time[i].tv_usec == 0) {
             gettimeofday(&e->init_time[i], NULL);
             goto fn_exit;
@@ -67,12 +70,12 @@ HYD_status HYDTI_bscd_ssh_store_launch_time(char *hostname)
     /* No free element found; wait for the oldest element to turn
      * older */
     oldest = 0;
-    for (i = 0; i < SSH_LIMIT; i++)
+    for (i = 0; i < HYDT_bscd_ssh_limit; i++)
         if (older(e->init_time[i], e->init_time[oldest]))
             oldest = i;
 
     gettimeofday(&now, NULL);
-    time_left = SSH_LIMIT_TIME - now.tv_sec + e->init_time[oldest].tv_sec;
+    time_left = HYDT_bscd_ssh_limit_time - now.tv_sec + e->init_time[oldest].tv_sec;
 
     /* A better approach will be to make progress here, but that would
      * mean that we need to deal with nested calls to the demux engine
diff --git a/src/pm/hydra/tools/bootstrap/external/ssh.h b/src/pm/hydra/tools/bootstrap/external/ssh.h
index 5197093..5bac875 100644
--- a/src/pm/hydra/tools/bootstrap/external/ssh.h
+++ b/src/pm/hydra/tools/bootstrap/external/ssh.h
@@ -13,8 +13,8 @@
  * connections from the same IP address per minute. If we exceed that,
  * the server assumes it's a hack-in attack, and does not accept any
  * more connections. So, we limit the number of ssh connections. */
-#define SSH_LIMIT 8
-#define SSH_LIMIT_TIME 15
+#define HYDRA_LAUNCHER_SSH_DEFAULT_LIMIT 8
+#define HYDRA_LAUNCHER_SSH_DEFAULT_LIMIT_TIME 15
 
 #define older(a,b) \
     ((((a).tv_sec < (b).tv_sec) ||                                      \
@@ -22,10 +22,12 @@
 
 struct HYDT_bscd_ssh_time {
     char *hostname;
-    struct timeval init_time[SSH_LIMIT];
+    struct timeval *init_time;
     struct HYDT_bscd_ssh_time *next;
 };
 
+extern int HYDT_bscd_ssh_limit;
+extern int HYDT_bscd_ssh_limit_time;
 extern struct HYDT_bscd_ssh_time *HYDT_bscd_ssh_time;
 
 HYD_status HYDTI_bscd_ssh_store_launch_time(char *hostname);
diff --git a/src/pm/hydra/tools/bootstrap/external/ssh_init.c b/src/pm/hydra/tools/bootstrap/external/ssh_init.c
index 4a134bb..8633b32 100644
--- a/src/pm/hydra/tools/bootstrap/external/ssh_init.c
+++ b/src/pm/hydra/tools/bootstrap/external/ssh_init.c
@@ -8,11 +8,24 @@
 #include "bsci.h"
 #include "common.h"
 
+int HYDT_bscd_ssh_limit;
+int HYDT_bscd_ssh_limit_time;
+
 HYD_status HYDT_bsci_launcher_ssh_init(void)
 {
+    int rc;
+
     HYDT_bsci_fns.query_env_inherit = HYDT_bscd_ssh_query_env_inherit;
     HYDT_bsci_fns.launch_procs = HYDT_bscd_common_launch_procs;
     HYDT_bsci_fns.launcher_finalize = HYDT_bscd_ssh_launcher_finalize;
 
+    rc = MPL_env2int("HYDRA_LAUNCHER_SSH_LIMIT", &HYDT_bscd_ssh_limit);
+    if (rc == 0)
+        HYDT_bscd_ssh_limit = HYDRA_LAUNCHER_SSH_DEFAULT_LIMIT;
+
+    rc = MPL_env2int("HYDRA_LAUNCHER_SSH_LIMIT_TIME", &HYDT_bscd_ssh_limit_time);
+    if (rc == 0)
+        HYDT_bscd_ssh_limit_time = HYDRA_LAUNCHER_SSH_DEFAULT_LIMIT_TIME;
+
     return HYD_SUCCESS;
 }

-----------------------------------------------------------------------

Summary of changes:
 README.vin                                       |   33 +++++++++++++--------
 src/pm/hydra/tools/bootstrap/external/ssh.c      |   11 ++++--
 src/pm/hydra/tools/bootstrap/external/ssh.h      |    8 +++--
 src/pm/hydra/tools/bootstrap/external/ssh_init.c |   13 ++++++++
 4 files changed, 45 insertions(+), 20 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list