[mpich] MPICH primary repository branch, master, updated. v3.0.4-305-g23d3dcd
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/23d3dcd1e1313fa707529969443f08069d... commit 23d3dcd1e1313fa707529969443f08069dfe29d0 Author: Michael Blocksome <[email protected]> Date: Tue Jun 11 13:53:42 2013 -0500 Update README.vin with bgq configure instructions. Signed-off-by: Pavan Balaji <[email protected]> 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/0e527c1357b43aff182f45c471809fe5f6... commit 0e527c1357b43aff182f45c471809fe5f6a4d8cf Author: Pavan Balaji <[email protected]> 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
participants (1)
-
noreply@mpich.org