1
1
This commit was SVN r26262.
Этот коммит содержится в:
Nathan Hjelm 2012-04-10 19:56:19 +00:00
родитель 14d5525fb1
Коммит f88babfb92
4 изменённых файлов: 18 добавлений и 13 удалений

Просмотреть файл

@ -33,7 +33,6 @@ ugni_SOURCES = \
btl_ugni_frag.h \
btl_ugni_rdma.h \
btl_ugni_send.c \
btl_ugni_sendi.c \
btl_ugni_put.c \
btl_ugni_get.c \
btl_ugni.h \

Просмотреть файл

@ -73,10 +73,9 @@ btl_ugni_component_register(void)
mca_btl_ugni_component.ugni_eager_num =
mca_btl_ugni_param_register_int("eager_num", NULL, 16);
mca_btl_ugni_component.ugni_eager_max =
mca_btl_ugni_param_register_int("eager_max", NULL, 64);
mca_btl_ugni_param_register_int("eager_max", NULL, 128);
mca_btl_ugni_component.ugni_eager_inc =
mca_btl_ugni_param_register_int("eager_inc", NULL, 16);
mca_btl_ugni_component.cq_size =
mca_btl_ugni_param_register_int("cq_size", NULL, 25000);
@ -85,7 +84,10 @@ btl_ugni_component_register(void)
mca_btl_ugni_component.ugni_smsg_limit =
mca_btl_ugni_param_register_int("smsg_limit", "Maximum size message that "
"will be sent using the SMSG/MSGQ protocol "
"(0 - autoselect(default))", 0);
"(0 - autoselect(default), 16k max)", 0);
if (mca_btl_ugni_component.ugni_smsg_limit > 16384) {
mca_btl_ugni_component.ugni_smsg_limit = 16384;
}
mca_btl_ugni_component.smsg_max_credits =
mca_btl_ugni_param_register_int("smsg_max_credits", "Maximum number of "
@ -95,11 +97,13 @@ btl_ugni_component_register(void)
mca_btl_ugni_component.ugni_fma_limit =
mca_btl_ugni_param_register_int("fma_limit", "Maximum size message that "
"will be sent using the FMA (Fast Memory "
"Access) protocol (default 4095)",
4 * 1024 - 1);
"Access) protocol (default 1024)",
1024);
mca_btl_ugni_component.ugni_get_limit =
mca_btl_ugni_param_register_int("get_limit", NULL, 512 * 1024);
mca_btl_ugni_param_register_int("get_limit", "Maximum size message that "
"will be sent using the get protocol "
"(default 512k)", 512 * 1024);
mca_btl_ugni_component.rdma_max_retries =
mca_btl_ugni_param_register_int("rdma_max_retries", NULL, 8);
@ -109,7 +113,7 @@ btl_ugni_component_register(void)
/* smsg threshold */
mca_btl_ugni_module.super.btl_eager_limit = 8 * 1024;
mca_btl_ugni_module.super.btl_rndv_eager_limit = 8 * 1024;
mca_btl_ugni_module.super.btl_rdma_pipeline_frag_size = 2 * 1024 * 1024;
mca_btl_ugni_module.super.btl_rdma_pipeline_frag_size = 4 * 1024 * 1024;
mca_btl_ugni_module.super.btl_max_send_size = 8 * 1024;
mca_btl_ugni_module.super.btl_rdma_pipeline_send_length = 8 * 1024;
@ -256,7 +260,9 @@ mca_btl_ugni_component_init (int *num_btl_modules,
if (0 == mca_btl_ugni_component.ugni_smsg_limit) {
/* auto-set the smsg limit based on the number of ranks */
if (nprocs <= 1024) {
if (nprocs <= 256) {
mca_btl_ugni_component.ugni_smsg_limit = 8192;
} else if (nprocs <= 1024) {
mca_btl_ugni_component.ugni_smsg_limit = 1024;
} else if (nprocs <= 16384) {
mca_btl_ugni_component.ugni_smsg_limit = 512;

Просмотреть файл

@ -142,7 +142,7 @@ static void mca_btl_ugni_retry_send (ompi_common_ugni_post_desc_t *desc, int rc)
mca_btl_ugni_base_frag_t *frag = MCA_BTL_UGNI_DESC_TO_FRAG(desc);
rc = mca_btl_ugni_send (&frag->endpoint->btl->super, frag->endpoint, &frag->base, frag->hdr.send.tag);
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
if (OPAL_UNLIKELY(0 > rc)) {
opal_list_append (&frag->endpoint->btl->failed_frags, (opal_list_item_t *) frag);
}
}
@ -166,7 +166,7 @@ static inline int mca_btl_ugni_ep_connect_finish (mca_btl_base_endpoint_t *ep) {
ep->mailbox->smsg_attrib.mbox_maxcredit, ep->mailbox->smsg_attrib.msg_maxsize));
rc = GNI_SmsgInit (ep->common->ep_handle, &ep->mailbox->smsg_attrib, &ep->remote_smsg_attrib);
if (GNI_RC_SUCCESS != rc) {
if (OPAL_UNLIKELY(GNI_RC_SUCCESS != rc)) {
BTL_ERROR(("error initializing SMSG protocol. rc = %d", rc));
return ompi_common_rc_ugni_to_ompi (rc);
}
@ -179,7 +179,7 @@ static inline int mca_btl_ugni_ep_connect_finish (mca_btl_base_endpoint_t *ep) {
while (NULL != (item = opal_list_remove_first (&ep->pending_list))) {
mca_btl_ugni_base_frag_t *frag = (mca_btl_ugni_base_frag_t *) item;
rc = mca_btl_ugni_send (&ep->btl->super, ep, &frag->base, frag->hdr.send.tag);
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
if (OPAL_UNLIKELY(0 > rc)) {
frag->post_desc.cbfunc = mca_btl_ugni_retry_send;
opal_list_append (&ep->btl->failed_frags, (opal_list_item_t *) frag);
}

Просмотреть файл

@ -81,7 +81,7 @@ mca_btl_ugni_module_t mca_btl_ugni_module = {
mca_btl_ugni_prepare_src,
mca_btl_ugni_prepare_dst,
mca_btl_ugni_send,
mca_btl_ugni_sendi,
NULL, /* sendi */
mca_btl_ugni_put,
mca_btl_ugni_get,
NULL, /* mca_btl_base_dump, */