Skip to content

Commit cb3ed47

Browse files
authored
Merge pull request #6882 from hoopoepg/topic/ucx-ppn-hint-v4.0
UCX: added PPN hint for UCX context - v4.0
2 parents 6d62fb0 + 2fa112c commit cb3ed47

File tree

3 files changed

+30
-15
lines changed

3 files changed

+30
-15
lines changed

config/ompi_check_ucx.m4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ AC_DEFUN([OMPI_CHECK_UCX],[
120120
UCP_ATOMIC_POST_OP_XOR,
121121
UCP_ATOMIC_FETCH_OP_FAND,
122122
UCP_ATOMIC_FETCH_OP_FOR,
123-
UCP_ATOMIC_FETCH_OP_FXOR],
123+
UCP_ATOMIC_FETCH_OP_FXOR,
124+
UCP_PARAM_FIELD_ESTIMATED_NUM_PPN],
124125
[], [],
125126
[#include <ucp/api/ucp.h>])
126127
AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS],

ompi/mca/pml/ucx/pml_ucx.c

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -197,22 +197,27 @@ int mca_pml_ucx_open(void)
197197
}
198198

199199
/* Initialize UCX context */
200-
params.field_mask = UCP_PARAM_FIELD_FEATURES |
201-
UCP_PARAM_FIELD_REQUEST_SIZE |
202-
UCP_PARAM_FIELD_REQUEST_INIT |
203-
UCP_PARAM_FIELD_REQUEST_CLEANUP |
204-
UCP_PARAM_FIELD_TAG_SENDER_MASK |
205-
UCP_PARAM_FIELD_MT_WORKERS_SHARED |
206-
UCP_PARAM_FIELD_ESTIMATED_NUM_EPS;
207-
params.features = UCP_FEATURE_TAG;
208-
params.request_size = sizeof(ompi_request_t);
209-
params.request_init = mca_pml_ucx_request_init;
210-
params.request_cleanup = mca_pml_ucx_request_cleanup;
211-
params.tag_sender_mask = PML_UCX_SPECIFIC_SOURCE_MASK;
200+
params.field_mask = UCP_PARAM_FIELD_FEATURES |
201+
UCP_PARAM_FIELD_REQUEST_SIZE |
202+
UCP_PARAM_FIELD_REQUEST_INIT |
203+
UCP_PARAM_FIELD_REQUEST_CLEANUP |
204+
UCP_PARAM_FIELD_TAG_SENDER_MASK |
205+
UCP_PARAM_FIELD_MT_WORKERS_SHARED |
206+
UCP_PARAM_FIELD_ESTIMATED_NUM_EPS;
207+
params.features = UCP_FEATURE_TAG;
208+
params.request_size = sizeof(ompi_request_t);
209+
params.request_init = mca_pml_ucx_request_init;
210+
params.request_cleanup = mca_pml_ucx_request_cleanup;
211+
params.tag_sender_mask = PML_UCX_SPECIFIC_SOURCE_MASK;
212212
params.mt_workers_shared = 0; /* we do not need mt support for context
213213
since it will be protected by worker */
214214
params.estimated_num_eps = ompi_proc_world_size();
215215

216+
#if HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN
217+
params.estimated_num_ppn = opal_process_info.num_local_peers + 1;
218+
params.field_mask |= UCP_PARAM_FIELD_ESTIMATED_NUM_PPN;
219+
#endif
220+
216221
status = ucp_init(&params, config, &ompi_pml_ucx.ucp_context);
217222
ucp_config_release(config);
218223

oshmem/mca/spml/ucx/spml_ucx_component.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,15 +212,24 @@ static int spml_ucx_init(void)
212212
opal_common_ucx_mca_register();
213213

214214
memset(&params, 0, sizeof(params));
215-
params.field_mask = UCP_PARAM_FIELD_FEATURES|UCP_PARAM_FIELD_ESTIMATED_NUM_EPS|UCP_PARAM_FIELD_MT_WORKERS_SHARED;
216-
params.features = UCP_FEATURE_RMA|UCP_FEATURE_AMO32|UCP_FEATURE_AMO64;
215+
params.field_mask = UCP_PARAM_FIELD_FEATURES |
216+
UCP_PARAM_FIELD_ESTIMATED_NUM_EPS |
217+
UCP_PARAM_FIELD_MT_WORKERS_SHARED;
218+
params.features = UCP_FEATURE_RMA |
219+
UCP_FEATURE_AMO32 |
220+
UCP_FEATURE_AMO64;
217221
params.estimated_num_eps = ompi_proc_world_size();
218222
if (oshmem_mpi_thread_requested == SHMEM_THREAD_MULTIPLE) {
219223
params.mt_workers_shared = 1;
220224
} else {
221225
params.mt_workers_shared = 0;
222226
}
223227

228+
#if HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN
229+
params.estimated_num_ppn = opal_process_info.num_local_peers + 1;
230+
params.field_mask |= UCP_PARAM_FIELD_ESTIMATED_NUM_PPN;
231+
#endif
232+
224233
err = ucp_init(&params, ucp_config, &mca_spml_ucx.ucp_context);
225234
ucp_config_release(ucp_config);
226235
if (UCS_OK != err) {

0 commit comments

Comments
 (0)