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;
|
size_t i;
|
||||||
opal_list_item_t *item;
|
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))) {
|
while (NULL != (item = opal_list_remove_first(&mca_spml_ikrit.active_peers))) {
|
||||||
};
|
};
|
||||||
OBJ_DESTRUCT(&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);
|
free(conn_reqs);
|
||||||
#endif
|
#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);
|
proc_self = oshmem_proc_group_find(oshmem_group_all, my_rank);
|
||||||
/* identify local processes and change transport to SHM */
|
/* identify local processes and change transport to SHM */
|
||||||
for (i = 0; i < nprocs; i++) {
|
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_num; /* initial size of free list */
|
||||||
int free_list_max; /* maximum 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 free_list_inc; /* number of elements to grow free list */
|
||||||
|
int bulk_connect; /* use bulk connect */
|
||||||
|
int bulk_disconnect; /* use bulk disconnect */
|
||||||
|
|
||||||
bool enabled;
|
bool enabled;
|
||||||
opal_list_t active_peers;
|
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_param_register_int("free_list_max", 1024, 0);
|
||||||
mca_spml_ikrit.free_list_inc =
|
mca_spml_ikrit.free_list_inc =
|
||||||
mca_spml_ikrit_param_register_int("free_list_inc", 16, 0);
|
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.priority =
|
||||||
mca_spml_ikrit_param_register_int("priority",
|
mca_spml_ikrit_param_register_int("priority",
|
||||||
20,
|
20,
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user