[mpich] MPICH primary repository branch, master, updated. v3.1.3-53-g36d11a1
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 36d11a1383cfecd65bfbf429692aa1afd5395a12 (commit) via 993845eaa36b9c5ca55c5b1eb11502fc71b9234e (commit) from e2db1e48598bad1814876b2a222649ad1dec8bc6 (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/36d11a1383cfecd65bfbf429692aa1afd5... commit 36d11a1383cfecd65bfbf429692aa1afd5395a12 Author: Ken Raffenetti <[email protected]> Date: Tue Oct 28 14:00:43 2014 -0500 portals4: set reasonable interface limits Set reasonable limits for maximum unexpected headers and EQs at init time. We accomplish this with a pre-init stage where we fill in a limits struct with the system defaults, increase certain values (if they are not set already in the environment), then do the real init. If the "desired" limits structure had a way to allow default values for limits we don't care about, the pre-init stage could go away. Signed-off-by: Antonio J. Pena <[email protected]> diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c index 9535797..a6ef6e6 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c +++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c @@ -11,7 +11,8 @@ #error Checkpointing not implemented #endif -#define EQ_COUNT 1024 +#define UNEXPECTED_HDR_COUNT 32768 +#define EQ_COUNT 32768 #define NID_KEY "NID" #define PID_KEY "PID" #define PTI_KEY "PTI" @@ -81,6 +82,7 @@ static int ptl_init(MPIDI_PG_t *pg_p, int pg_rank, char **bc_val_p, int *val_max int mpi_errno = MPI_SUCCESS; int ret; ptl_md_t md; + ptl_ni_limits_t desired; MPIDI_STATE_DECL(MPID_STATE_PTL_INIT); MPIDI_FUNC_ENTER(MPID_STATE_PTL_INIT); @@ -101,19 +103,28 @@ static int ptl_init(MPIDI_PG_t *pg_p, int pg_rank, char **bc_val_p, int *val_max MPIDI_Anysource_improbe_fn = MPID_nem_ptl_anysource_improbe; - /* set the unexpected header limit before PtlInit, unless it is already set in the env */ - if (getenv("PTL_LIM_MAX_UNEXPECTED_HEADERS") == NULL) { - char *envstr = MPIU_Strdup("PTL_LIM_MAX_UNEXPECTED_HEADERS=2000000"); - MPL_putenv(envstr); - MPIU_Free(envstr); - } - /* init portals */ ret = PtlInit(); MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlinit", "**ptlinit %s", MPID_nem_ptl_strerror(ret)); + /* do an interface pre-init to get the default limits struct */ + ret = PtlNIInit(PTL_IFACE_DEFAULT, PTL_NI_MATCHING | PTL_NI_PHYSICAL, + PTL_PID_ANY, NULL, &desired, &MPIDI_nem_ptl_ni); + MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlniinit", "**ptlniinit %s", MPID_nem_ptl_strerror(ret)); + + /* finalize the interface so we can re-init with our desired maximums */ + ret = PtlNIFini(MPIDI_nem_ptl_ni); + MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlnifini", "**ptlnifini %s", MPID_nem_ptl_strerror(ret)); + + /* set higher limits if they are determined to be too low */ + if (desired.max_unexpected_headers < UNEXPECTED_HDR_COUNT && getenv("PTL_LIM_MAX_UNEXPECTED_HEADERS") == NULL) + desired.max_unexpected_headers = UNEXPECTED_HDR_COUNT; + if (desired.max_eqs < EQ_COUNT && getenv("PTL_LIM_MAX_EQS") == NULL) + desired.max_eqs = EQ_COUNT; + + /* do the real init */ ret = PtlNIInit(PTL_IFACE_DEFAULT, PTL_NI_MATCHING | PTL_NI_PHYSICAL, - PTL_PID_ANY, NULL, &MPIDI_nem_ptl_ni_limits, &MPIDI_nem_ptl_ni); + PTL_PID_ANY, &desired, &MPIDI_nem_ptl_ni_limits, &MPIDI_nem_ptl_ni); MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlniinit", "**ptlniinit %s", MPID_nem_ptl_strerror(ret)); ret = PtlEQAlloc(MPIDI_nem_ptl_ni, EQ_COUNT, &MPIDI_nem_ptl_eq); http://git.mpich.org/mpich.git/commitdiff/993845eaa36b9c5ca55c5b1eb11502fc71... commit 993845eaa36b9c5ca55c5b1eb11502fc71b9234e Author: Ken Raffenetti <[email protected]> Date: Tue Oct 28 13:37:58 2014 -0500 portals4: reduce unexpected buffer space Out previous increase consumed too much memory. 8MB should be enough given the maximum put size and number of headers. Signed-off-by: Antonio J. Pena <[email protected]> diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_poll.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_poll.c index 3394ff4..8104eaf 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_poll.c +++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_poll.c @@ -7,7 +7,7 @@ #include "ptl_impl.h" #define OVERFLOW_LENGTH (1024*1024) -#define NUM_OVERFLOW_ME 512 +#define NUM_OVERFLOW_ME 8 static ptl_handle_me_t overflow_me_handle[NUM_OVERFLOW_ME]; static void *overflow_buf[NUM_OVERFLOW_ME]; ----------------------------------------------------------------------- Summary of changes: .../channels/nemesis/netmod/portals4/ptl_init.c | 29 +++++++++++++------ .../channels/nemesis/netmod/portals4/ptl_poll.c | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org