Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
No_op has a specific effect, actually, and turns the get_accumulate in a get.
authordegomme <augustin.degomme@unibas.ch>
Mon, 3 Apr 2017 12:38:20 +0000 (14:38 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Tue, 4 Apr 2017 08:27:12 +0000 (10:27 +0200)
The standard says it may differ a bit internally.. Or not.

src/smpi/smpi_win.cpp

index 6237780..5b9a269 100644 (file)
@@ -354,7 +354,8 @@ int Win::get_accumulate( void *origin_addr, int origin_count, MPI_Datatype origi
 
   get(result_addr, result_count, result_datatype, target_rank,
               target_disp, target_count, target_datatype);
 
   get(result_addr, result_count, result_datatype, target_rank,
               target_disp, target_count, target_datatype);
-  accumulate(origin_addr, origin_count, origin_datatype, target_rank,
+  if(op!=MPI_NO_OP)
+    accumulate(origin_addr, origin_count, origin_datatype, target_rank,
               target_disp, target_count, target_datatype, op);
 
   return MPI_SUCCESS;
               target_disp, target_count, target_datatype, op);
 
   return MPI_SUCCESS;