X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e9c0448c6566825b170b98ecff716b098bda10e..954676b700e711f38ec4d286d33d5427d3f4ca46:/src/smpi/colls/alltoall-3dmesh.c diff --git a/src/smpi/colls/alltoall-3dmesh.c b/src/smpi/colls/alltoall-3dmesh.c index c226927693..81b1ecdd7c 100644 --- a/src/smpi/colls/alltoall-3dmesh.c +++ b/src/smpi/colls/alltoall-3dmesh.c @@ -1,3 +1,9 @@ +/* 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. */ + #include "colls_private.h" #include @@ -76,15 +82,15 @@ int smpi_coll_tuned_alltoall_3dmesh(void *send_buff, int send_count, block_size = extent * send_count; - tmp_buff1 = (char *) xbt_malloc(block_size * num_procs * two_dsize); - tmp_buff2 = (char *) xbt_malloc(block_size * two_dsize); + tmp_buff1 = (char *) smpi_get_tmp_sendbuffer(block_size * num_procs * two_dsize); + tmp_buff2 = (char *) smpi_get_tmp_recvbuffer(block_size * two_dsize); statuses = (MPI_Status *) xbt_malloc(num_reqs * sizeof(MPI_Status)); reqs = (MPI_Request *) xbt_malloc(num_reqs * sizeof(MPI_Request)); req_ptr = reqs; - send_offset = recv_offset = (rank % two_dsize) * block_size * num_procs; + recv_offset = (rank % two_dsize) * block_size * num_procs; smpi_mpi_sendrecv(send_buff, send_count * num_procs, send_type, rank, tag, tmp_buff1 + recv_offset, num_procs * recv_count, @@ -174,7 +180,7 @@ int smpi_coll_tuned_alltoall_3dmesh(void *send_buff, int send_count, free(reqs); free(statuses); - free(tmp_buff1); - free(tmp_buff2); + smpi_free_tmp_buffer(tmp_buff1); + smpi_free_tmp_buffer(tmp_buff2); return MPI_SUCCESS; }