OSHMEM: use bulk connect/disconnect API
fixed by Yossi, reviewed by MikeD cmr=v1.8.2:reviewer=ompi-rm1.8 This commit was SVN r31856.
Этот коммит содержится в:
родитель
fad1063980
Коммит
5dd4c68a0f
@ -342,6 +342,12 @@ int mca_spml_ikrit_del_procs(oshmem_proc_t** procs, size_t nprocs)
|
||||
size_t i;
|
||||
opal_list_item_t *item;
|
||||
|
||||
#if MXM_API >= MXM_VERSION(2,0)
|
||||
if (mca_spml_ikrit.bulk_disconnect) {
|
||||
mxm_ep_powerdown(mca_spml_ikrit.mxm_ep);
|
||||
}
|
||||
#endif
|
||||
|
||||
while (NULL != (item = opal_list_remove_first(&mca_spml_ikrit.active_peers))) {
|
||||
};
|
||||
OBJ_DESTRUCT(&mca_spml_ikrit.active_peers);
|
||||
@ -487,6 +493,14 @@ int mca_spml_ikrit_add_procs(oshmem_proc_t** procs, size_t nprocs)
|
||||
free(conn_reqs);
|
||||
#endif
|
||||
|
||||
#if MXM_API >= MXM_VERSION(2,0)
|
||||
if (mca_spml_ikrit.bulk_connect) {
|
||||
/* Need a barrier to ensure remote peers already created connection */
|
||||
oshmem_shmem_barrier();
|
||||
mxm_ep_wireup(mca_spml_ikrit.mxm_ep);
|
||||
}
|
||||
#endif
|
||||
|
||||
proc_self = oshmem_proc_group_find(oshmem_group_all, my_rank);
|
||||
/* identify local processes and change transport to SHM */
|
||||
for (i = 0; i < nprocs; i++) {
|
||||
|
@ -81,6 +81,8 @@ struct mca_spml_ikrit_t {
|
||||
int free_list_num; /* initial size of free list */
|
||||
int free_list_max; /* maximum size of free list */
|
||||
int free_list_inc; /* number of elements to grow free list */
|
||||
int bulk_connect; /* use bulk connect */
|
||||
int bulk_disconnect; /* use bulk disconnect */
|
||||
|
||||
bool enabled;
|
||||
opal_list_t active_peers;
|
||||
|
@ -150,6 +150,10 @@ static int mca_spml_ikrit_component_register(void)
|
||||
mca_spml_ikrit_param_register_int("free_list_max", 1024, 0);
|
||||
mca_spml_ikrit.free_list_inc =
|
||||
mca_spml_ikrit_param_register_int("free_list_inc", 16, 0);
|
||||
mca_spml_ikrit.bulk_connect =
|
||||
mca_spml_ikrit_param_register_int("bulk_connect", 1, 0);
|
||||
mca_spml_ikrit.bulk_disconnect =
|
||||
mca_spml_ikrit_param_register_int("bulk_disconnect", 1, 0);
|
||||
mca_spml_ikrit.priority =
|
||||
mca_spml_ikrit_param_register_int("priority",
|
||||
20,
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user