From d70a22b057de5731f48cd2e929a64425da2e4371 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Tue, 21 Dec 2004 06:23:42 +0000 Subject: [PATCH] Start to add a MCA parameter to fix the limit between eager and rendez-vous protocol (gm_max_eager_fragments). This commit was SVN r3856. --- src/mca/ptl/gm/src/ptl_gm.h | 16 ++++++++++------ src/mca/ptl/gm/src/ptl_gm_component.c | 7 ++++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/mca/ptl/gm/src/ptl_gm.h b/src/mca/ptl/gm/src/ptl_gm.h index 635548e544..f9280e360e 100644 --- a/src/mca/ptl/gm/src/ptl_gm.h +++ b/src/mca/ptl/gm/src/ptl_gm.h @@ -45,12 +45,16 @@ struct mca_ptl_gm_component_t { struct mca_ptl_gm_module_t **gm_ptl_modules; /**< array of available PTL modules */ size_t gm_num_ptl_modules; /**< number of ptls actually used */ size_t gm_max_ptl_modules; /**< maximum number of ptls - available */ - int gm_free_list_num; /**< initial size of free lists */ - int gm_free_list_max; /**< maximum size of free lists */ - int gm_free_list_inc; /**< number of elements to alloc when growing free lists */ - int gm_max_port_number; /**< maximum number of ports by board */ - int gm_max_boards_number; /**< maximum number of boards on the node */ - int gm_max_rdma_frag_size; /**< maximum fragment size used to transfer data over RDMA */ + uint32_t gm_free_list_num; /**< initial size of free lists */ + uint32_t gm_free_list_max; /**< maximum size of free lists */ + uint32_t gm_free_list_inc; /**< number of elements to alloc when growing free lists */ + uint32_t gm_max_port_number; /**< maximum number of ports by board */ + uint32_t gm_max_boards_number; /**< maximum number of boards on the node */ + uint32_t gm_max_rdma_frag_size; /**< maximum fragment size used to transfer data over RDMA */ + uint32_t gm_max_eager_fragments; /**< number of fragments before the rendez-vous protocol. If the + **< size of the message is less than this number multiplied by + **< the size of the first fragment then GM use a eager protocol. + */ char* gm_port_name; /**< the name used to get the port */ struct mca_ptl_gm_proc_t* gm_local; diff --git a/src/mca/ptl/gm/src/ptl_gm_component.c b/src/mca/ptl/gm/src/ptl_gm_component.c index 456c2d9005..f0ffecc816 100644 --- a/src/mca/ptl/gm/src/ptl_gm_component.c +++ b/src/mca/ptl/gm/src/ptl_gm_component.c @@ -97,12 +97,11 @@ mca_ptl_gm_component_open(void) /* register GM component parameters */ mca_ptl_gm_module.super.ptl_first_frag_size = - mca_ptl_gm_param_register_int ("first_frag_size", - ((PTL_GM_FIRST_FRAG_SIZE) - 64)); + mca_ptl_gm_param_register_int ("first_frag_size", ((PTL_GM_FIRST_FRAG_SIZE) - 64)); mca_ptl_gm_module.super.ptl_min_frag_size = mca_ptl_gm_param_register_int ("min_frag_size", 1<<16); mca_ptl_gm_module.super.ptl_max_frag_size = - mca_ptl_gm_param_register_int ("max_frag_size", 256 * 1024); + mca_ptl_gm_param_register_int ("max_frag_size", 256 * 1024 * 1024); /* Parameters setting the message limits. */ mca_ptl_gm_component.gm_port_name = mca_ptl_gm_param_register_string( "port_name", "OMPI_GM" ); @@ -112,6 +111,8 @@ mca_ptl_gm_component_open(void) mca_ptl_gm_param_register_int ("max_boards_number", 4 ); mca_ptl_gm_component.gm_max_rdma_frag_size = mca_ptl_gm_param_register_int ("max_rdma_frag_size", 512 * 1024); + mca_ptl_gm_component.gm_max_eager_fragments = + mca_ptl_gm_param_register_int( "max_eager_fragments", 5 ); mca_ptl_gm_component.gm_max_ptl_modules = mca_ptl_gm_param_register_int( "max_ptl_modules", 1 );