From b3663bd29a7bb15f60d0714faa898945181c11a6 Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Wed, 14 Aug 2019 13:32:51 +0000 Subject: [PATCH] add sleep depending on MPI rank to avoid all ranks calling daos_fini() at once (issue with PSM2). Signed-off-by: Mohamad Chaarawi --- src/aiori-DAOS.c | 5 +++++ src/aiori-DFS.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/aiori-DAOS.c b/src/aiori-DAOS.c index 9f4270b..870aa68 100644 --- a/src/aiori-DAOS.c +++ b/src/aiori-DAOS.c @@ -17,6 +17,8 @@ * This file implements the abstract I/O interface for DAOS Array API. */ +#define _BSD_SOURCE + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -320,6 +322,9 @@ DAOS_Fini() rc = daos_pool_disconnect(poh, NULL); DCHECK(rc, "Failed to disconnect from pool %s", o.pool); + MPI_CHECK(MPI_Barrier(MPI_COMM_WORLD), "barrier error"); + usleep(20000 * rank); + rc = daos_fini(); DCHECK(rc, "Failed to finalize daos"); diff --git a/src/aiori-DFS.c b/src/aiori-DFS.c index 9c4ca25..ef89f41 100755 --- a/src/aiori-DFS.c +++ b/src/aiori-DFS.c @@ -16,6 +16,8 @@ * This file implements the abstract I/O interface for DAOS FS API. */ +#define _BSD_SOURCE + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -471,6 +473,9 @@ DFS_Finalize() daos_pool_disconnect(poh, NULL); DCHECK(rc, "Failed to disconnect from pool"); + MPI_CHECK(MPI_Barrier(MPI_COMM_WORLD), "barrier error"); + usleep(20000 * rank); + rc = daos_fini(); DCHECK(rc, "Failed to finalize DAOS"); }