Fix issue where messages could start arriving before the window was
fully initialized, especially during lock/unlock, which doesn't use MPI collectives for synchronization (unlike Fence) This commit was SVN r12676.
Этот коммит содержится в:
родитель
b5b6f4c4bf
Коммит
bc3250fe6f
@ -24,6 +24,7 @@
|
|||||||
#include "ompi/win/win.h"
|
#include "ompi/win/win.h"
|
||||||
#include "ompi/communicator/communicator.h"
|
#include "ompi/communicator/communicator.h"
|
||||||
#include "ompi/mca/btl/btl.h"
|
#include "ompi/mca/btl/btl.h"
|
||||||
|
#include "ompi/mca/osc/base/base.h"
|
||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
|
|
||||||
|
|
||||||
@ -38,6 +39,9 @@ ompi_osc_rdma_module_free(ompi_win_t *win)
|
|||||||
opal_progress();
|
opal_progress();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opal_output_verbose(50, ompi_osc_base_output,
|
||||||
|
"Finalizing window %d", module->p2p_comm->c_contextid);
|
||||||
|
|
||||||
/* finish with a barrier */
|
/* finish with a barrier */
|
||||||
if (ompi_group_size(win->w_group) > 1) {
|
if (ompi_group_size(win->w_group) > 1) {
|
||||||
ret = module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
|
ret = module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
|
||||||
|
@ -419,13 +419,12 @@ ompi_osc_rdma_component_select(ompi_win_t *win,
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* need to make create a collective, or lock requests can come in
|
||||||
if (module->p2p_eager_send) {
|
before the window is fully created... */
|
||||||
/* need to barrier if eager sending or we can receive before the
|
|
||||||
other side has been fully setup, causing much gnashing of
|
|
||||||
teeth. */
|
|
||||||
module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
|
module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
|
||||||
}
|
|
||||||
|
opal_output_verbose(50, ompi_osc_base_output,
|
||||||
|
"created window %d", module->p2p_comm->c_contextid);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user