+/* Copyright (c) 2013-2014. The SimGrid Team.
+ * All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2009 University of Houston. All rights reserved.
- * $COPYRIGHT$
*
* Additional copyrights may follow
*
- * $HEADER$
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
*/
-
-
/*
* ompi_coll_tuned_allreduce_intra_ring_segmented
*
max_real_segsize = true_extent + (max_segcount - 1) * extent;
/* Allocate and initialize temporary buffers */
- inbuf[0] = (char*)malloc(max_real_segsize);
+ inbuf[0] = (char*)smpi_get_tmp_sendbuffer(max_real_segsize);
if (NULL == inbuf[0]) { ret = -1; line = __LINE__; goto error_hndl; }
if (size > 2) {
- inbuf[1] = (char*)malloc(max_real_segsize);
+ inbuf[1] = (char*)smpi_get_tmp_recvbuffer(max_real_segsize);
if (NULL == inbuf[1]) { ret = -1; line = __LINE__; goto error_hndl; }
}
}
- if (NULL != inbuf[0]) free(inbuf[0]);
- if (NULL != inbuf[1]) free(inbuf[1]);
+ if (NULL != inbuf[0]) smpi_free_tmp_buffer(inbuf[0]);
+ if (NULL != inbuf[1]) smpi_free_tmp_buffer(inbuf[1]);
return MPI_SUCCESS;
error_hndl:
XBT_DEBUG("%s:%4d\tRank %d Error occurred %d\n",
__FILE__, line, rank, ret);
- if (NULL != inbuf[0]) free(inbuf[0]);
- if (NULL != inbuf[1]) free(inbuf[1]);
+ if (NULL != inbuf[0]) smpi_free_tmp_buffer(inbuf[0]);
+ if (NULL != inbuf[1]) smpi_free_tmp_buffer(inbuf[1]);
return ret;
}