do MPI_Barrier at the end of shmem_init() code but before we use shmem native collectives
Refs: #3763 This commit was SVN r29567.
Этот коммит содержится в:
родитель
a31e617d17
Коммит
598571649a
@ -891,6 +891,9 @@ static int mca_spml_ikrit_mxm_fence(int dst)
|
|||||||
fence_req->mxm_req.flags = MXM_REQ_SEND_FLAG_FENCE;
|
fence_req->mxm_req.flags = MXM_REQ_SEND_FLAG_FENCE;
|
||||||
fence_req->mxm_req.op.mem.remote_vaddr = 0;
|
fence_req->mxm_req.op.mem.remote_vaddr = 0;
|
||||||
fence_req->mxm_req.op.mem.remote_mkey = &mxm_empty_mem_key;
|
fence_req->mxm_req.op.mem.remote_mkey = &mxm_empty_mem_key;
|
||||||
|
fence_req->mxm_req.base.data_type = MXM_REQ_DATA_BUFFER;
|
||||||
|
fence_req->mxm_req.base.data.buffer.ptr = 0;
|
||||||
|
fence_req->mxm_req.base.data.buffer.length = 0;
|
||||||
#endif
|
#endif
|
||||||
fence_req->mxm_req.base.state = MXM_REQ_NEW;
|
fence_req->mxm_req.base.state = MXM_REQ_NEW;
|
||||||
fence_req->mxm_req.base.completed_cb = fence_completion_cb;
|
fence_req->mxm_req.base.completed_cb = fence_completion_cb;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "ompi/runtime/ompi_info_support.h"
|
#include "ompi/runtime/ompi_info_support.h"
|
||||||
#include "oshmem/runtime/oshmem_info_support.h"
|
#include "oshmem/runtime/oshmem_info_support.h"
|
||||||
#include "opal/util/show_help.h"
|
#include "opal/util/show_help.h"
|
||||||
|
#include "ompi/include/ompi/constants.h"
|
||||||
|
|
||||||
const char *oshmem_info_type_oshmem = "oshmem";
|
const char *oshmem_info_type_oshmem = "oshmem";
|
||||||
|
|
||||||
|
@ -223,6 +223,8 @@ int oshmem_shmem_init(int argc, char **argv, int requested, int *provided)
|
|||||||
ret = __shmem_init(argc, argv, requested, provided);
|
ret = __shmem_init(argc, argv, requested, provided);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MPI_Barrier(MPI_COMM_WORLD);
|
||||||
|
|
||||||
if (OSHMEM_SUCCESS == ret) {
|
if (OSHMEM_SUCCESS == ret) {
|
||||||
oshmem_shmem_initialized = true;
|
oshmem_shmem_initialized = true;
|
||||||
|
|
||||||
|
@ -182,7 +182,6 @@ OSHMEM_DECLSPEC int oshmem_shmem_register_params(void);
|
|||||||
RUNTIME_CHECK_ERROR("Required address %p is not in symmetric space\n", (x)); \
|
RUNTIME_CHECK_ERROR("Required address %p is not in symmetric space\n", (x)); \
|
||||||
oshmem_shmem_abort(-1); \
|
oshmem_shmem_abort(-1); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define RUNTIME_CHECK_WITH_MEMHEAP_SIZE(x) \
|
#define RUNTIME_CHECK_WITH_MEMHEAP_SIZE(x) \
|
||||||
if (OPAL_UNLIKELY((long)(x) > MCA_MEMHEAP_CALL(size))) \
|
if (OPAL_UNLIKELY((long)(x) > MCA_MEMHEAP_CALL(size))) \
|
||||||
{ \
|
{ \
|
||||||
@ -195,6 +194,7 @@ OSHMEM_DECLSPEC int oshmem_shmem_register_params(void);
|
|||||||
#define RUNTIME_CHECK_INIT()
|
#define RUNTIME_CHECK_INIT()
|
||||||
#define RUNTIME_CHECK_PE(x)
|
#define RUNTIME_CHECK_PE(x)
|
||||||
#define RUNTIME_CHECK_ADDR(x)
|
#define RUNTIME_CHECK_ADDR(x)
|
||||||
|
#define RUNTIME_CHECK_WITH_MEMHEAP_SIZE(x)
|
||||||
|
|
||||||
#endif /* OSHMEM_PARAM_CHECK */
|
#endif /* OSHMEM_PARAM_CHECK */
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user