X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f734ec7475682eb90323e804cbcfddd7e4523992..d5cc61332edae35867a41bb38ad9401faaab2716:/src/smpi/colls/reduce/reduce-arrival-pattern-aware.cpp?ds=sidebyside diff --git a/src/smpi/colls/reduce/reduce-arrival-pattern-aware.cpp b/src/smpi/colls/reduce/reduce-arrival-pattern-aware.cpp index a25a1c625f..8f0b20260e 100644 --- a/src/smpi/colls/reduce/reduce-arrival-pattern-aware.cpp +++ b/src/smpi/colls/reduce/reduce-arrival-pattern-aware.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017. The SimGrid Team. +/* Copyright (c) 2013-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -19,7 +19,7 @@ int reduce_arrival_pattern_aware_segment_size_in_byte = 8192; namespace simgrid{ namespace smpi{ /* Non-topology-specific pipelined linear-reduce function */ -int Coll_reduce_arrival_pattern_aware::reduce(void *buf, void *rbuf, +int Coll_reduce_arrival_pattern_aware::reduce(const void *buf, void *rbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, @@ -29,10 +29,6 @@ int Coll_reduce_arrival_pattern_aware::reduce(void *buf, void *rbuf, int tag = -COLL_TAG_REDUCE; MPI_Status status; MPI_Request request; - MPI_Request *send_request_array; - MPI_Request *recv_request_array; - MPI_Status *send_status_array; - MPI_Status *recv_status_array; MPI_Status temp_status_array[MAX_NODE]; @@ -190,14 +186,10 @@ int Coll_reduce_arrival_pattern_aware::reduce(void *buf, void *rbuf, else { // printf("node %d start\n",rank); - send_request_array = - (MPI_Request *) xbt_malloc((size + pipe_length) * sizeof(MPI_Request)); - recv_request_array = - (MPI_Request *) xbt_malloc((size + pipe_length) * sizeof(MPI_Request)); - send_status_array = - (MPI_Status *) xbt_malloc((size + pipe_length) * sizeof(MPI_Status)); - recv_status_array = - (MPI_Status *) xbt_malloc((size + pipe_length) * sizeof(MPI_Status)); + MPI_Request* send_request_array = new MPI_Request[size + pipe_length]; + MPI_Request* recv_request_array = new MPI_Request[size + pipe_length]; + MPI_Status* send_status_array = new MPI_Status[size + pipe_length]; + MPI_Status* recv_status_array = new MPI_Status[size + pipe_length]; if (rank == 0) { sent_count = 0; @@ -319,13 +311,10 @@ int Coll_reduce_arrival_pattern_aware::reduce(void *buf, void *rbuf, } } /* non-root */ - - - - free(send_request_array); - free(recv_request_array); - free(send_status_array); - free(recv_status_array); + delete[] send_request_array; + delete[] recv_request_array; + delete[] send_status_array; + delete[] recv_status_array; //printf("node %d done\n",rank); } /* end pipeline */