X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/196f911de0c7d88e09df07dd519a2f3777e01a27..4bb593c5dd46c9fa83345dc65903620c917317df:/src/smpi/colls/reduce_scatter-ompi.c diff --git a/src/smpi/colls/reduce_scatter-ompi.c b/src/smpi/colls/reduce_scatter-ompi.c index 20c9f46186..e303d208f3 100644 --- a/src/smpi/colls/reduce_scatter-ompi.c +++ b/src/smpi/colls/reduce_scatter-ompi.c @@ -23,7 +23,6 @@ #include "colls_private.h" #include "coll_tuned_topo.h" -#include "smpi/smpi.h" #include "xbt/replay.h" /* @@ -93,11 +92,8 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf, } /* Allocate temporary receive buffer. */ - if(_xbt_replay_is_active()){ - recv_buf_free = (char*) SMPI_SHARED_MALLOC(buf_size); - }else{ - recv_buf_free = (char*) xbt_malloc(buf_size); - } + recv_buf_free = (char*) smpi_get_tmp_recvbuffer(buf_size); + recv_buf = recv_buf_free - lb; if (NULL == recv_buf_free) { err = MPI_ERR_OTHER; @@ -105,11 +101,8 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf, } /* allocate temporary buffer for results */ - if(_xbt_replay_is_active()){ - result_buf_free = (char*) SMPI_SHARED_MALLOC(buf_size); - }else{ - result_buf_free = (char*) xbt_malloc(buf_size); - } + result_buf_free = (char*) smpi_get_tmp_sendbuffer(buf_size); + result_buf = result_buf_free - lb; /* copy local buffer into the temporary results */ @@ -299,14 +292,9 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf, cleanup: if (NULL != disps) xbt_free(disps); - - if (!_xbt_replay_is_active()){ - if (NULL != recv_buf_free) xbt_free(recv_buf_free); - if (NULL != result_buf_free) xbt_free(result_buf_free); - }else{ - if (NULL != recv_buf_free) SMPI_SHARED_FREE(recv_buf_free); - if (NULL != result_buf_free) SMPI_SHARED_FREE(result_buf_free); - } + if (NULL != recv_buf_free) smpi_free_tmp_buffer(recv_buf_free); + if (NULL != result_buf_free) smpi_free_tmp_buffer(result_buf_free); + return err; } @@ -426,15 +414,15 @@ smpi_coll_tuned_reduce_scatter_ompi_ring(void *sbuf, void *rbuf, int *rcounts, max_real_segsize = true_extent + (ptrdiff_t)(max_block_count - 1) * extent; - accumbuf_free = (char*)xbt_malloc(true_extent + (ptrdiff_t)(total_count - 1) * extent); + accumbuf_free = (char*)smpi_get_tmp_recvbuffer(true_extent + (ptrdiff_t)(total_count - 1) * extent); if (NULL == accumbuf_free) { ret = -1; line = __LINE__; goto error_hndl; } accumbuf = accumbuf_free - lb; - inbuf_free[0] = (char*)xbt_malloc(max_real_segsize); + inbuf_free[0] = (char*)smpi_get_tmp_sendbuffer(max_real_segsize); if (NULL == inbuf_free[0]) { ret = -1; line = __LINE__; goto error_hndl; } inbuf[0] = inbuf_free[0] - lb; if (size > 2) { - inbuf_free[1] = (char*)xbt_malloc(max_real_segsize); + inbuf_free[1] = (char*)smpi_get_tmp_sendbuffer(max_real_segsize); if (NULL == inbuf_free[1]) { ret = -1; line = __LINE__; goto error_hndl; } inbuf[1] = inbuf_free[1] - lb; } @@ -515,9 +503,9 @@ smpi_coll_tuned_reduce_scatter_ompi_ring(void *sbuf, void *rbuf, int *rcounts, if (ret < 0) { line = __LINE__; goto error_hndl; } if (NULL != displs) xbt_free(displs); - if (NULL != accumbuf_free) xbt_free(accumbuf_free); - if (NULL != inbuf_free[0]) xbt_free(inbuf_free[0]); - if (NULL != inbuf_free[1]) xbt_free(inbuf_free[1]); + if (NULL != accumbuf_free) smpi_free_tmp_buffer(accumbuf_free); + if (NULL != inbuf_free[0]) smpi_free_tmp_buffer(inbuf_free[0]); + if (NULL != inbuf_free[1]) smpi_free_tmp_buffer(inbuf_free[1]); return MPI_SUCCESS; @@ -525,9 +513,9 @@ smpi_coll_tuned_reduce_scatter_ompi_ring(void *sbuf, void *rbuf, int *rcounts, XBT_DEBUG( "%s:%4d\tRank %d Error occurred %d\n", __FILE__, line, rank, ret); if (NULL != displs) xbt_free(displs); - if (NULL != accumbuf_free) xbt_free(accumbuf_free); - if (NULL != inbuf_free[0]) xbt_free(inbuf_free[0]); - if (NULL != inbuf_free[1]) xbt_free(inbuf_free[1]); + if (NULL != accumbuf_free) smpi_free_tmp_buffer(accumbuf_free); + if (NULL != inbuf_free[0]) smpi_free_tmp_buffer(inbuf_free[0]); + if (NULL != inbuf_free[1]) smpi_free_tmp_buffer(inbuf_free[1]); return ret; }