Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
test for replay - enabling buffer sharing by default when replaying
authorAugustin Degomme <augustin.degomme@imag.fr>
Thu, 11 Sep 2014 12:23:10 +0000 (14:23 +0200)
committerAugustin Degomme <augustin.degomme@imag.fr>
Thu, 11 Sep 2014 12:32:01 +0000 (14:32 +0200)
Only one algo for now, maybe more later

src/smpi/colls/reduce_scatter-ompi.c

index 1f3175b..bd2d578 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "colls_private.h"
 #include "coll_tuned_topo.h"
 
 #include "colls_private.h"
 #include "coll_tuned_topo.h"
+#include "xbt/replay.h"
 
 /*
  * Recursive-halving function is (*mostly*) copied from the BASIC coll module.
 
 /*
  * Recursive-halving function is (*mostly*) copied from the BASIC coll module.
@@ -91,7 +92,11 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf,
     }
 
     /* Allocate temporary receive buffer. */
     }
 
     /* Allocate temporary receive buffer. */
-    recv_buf_free = (char*) xbt_malloc(buf_size);
+    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 = recv_buf_free - lb;
     if (NULL == recv_buf_free) {
         err = MPI_ERR_OTHER;
     recv_buf = recv_buf_free - lb;
     if (NULL == recv_buf_free) {
         err = MPI_ERR_OTHER;
@@ -99,7 +104,11 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf,
     }
    
     /* allocate temporary buffer for results */
     }
    
     /* allocate temporary buffer for results */
-    result_buf_free = (char*) xbt_malloc(buf_size);
+    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 = result_buf_free - lb;
    
     /* copy local buffer into the temporary results */
     result_buf = result_buf_free - lb;
    
     /* copy local buffer into the temporary results */
@@ -289,9 +298,14 @@ smpi_coll_tuned_reduce_scatter_ompi_basic_recursivehalving(void *sbuf,
 
  cleanup:
     if (NULL != disps) xbt_free(disps);
 
  cleanup:
     if (NULL != disps) xbt_free(disps);
-    if (NULL != recv_buf_free) xbt_free(recv_buf_free);
-    if (NULL != result_buf_free) xbt_free(result_buf_free);
-
+    
+    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);
+    }
     return err;
 }
 
     return err;
 }