Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sanitize the OOP of kernel::profile
[simgrid.git] / src / smpi / mpi / smpi_op.cpp
index 53fa2cb..edd5651 100644 (file)
@@ -1,12 +1,12 @@
-/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2009-2019. 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 "smpi_op.hpp"
 #include "private.hpp"
 #include "smpi_datatype.hpp"
-#include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_op, smpi, "Logging specific to SMPI (op)");
 
@@ -77,8 +77,8 @@ APPLY_OP_LOOP(MPI_DOUBLE, double,op)\
 APPLY_OP_LOOP(MPI_LONG_DOUBLE, long double,op)\
 APPLY_OP_LOOP(MPI_REAL, float,op)\
 APPLY_OP_LOOP(MPI_REAL4, float,op)\
-APPLY_OP_LOOP(MPI_REAL8, float,op)\
-APPLY_OP_LOOP(MPI_REAL16, double,op)
+APPLY_OP_LOOP(MPI_REAL8, double,op)\
+APPLY_OP_LOOP(MPI_REAL16, long double,op)
 
 #define APPLY_COMPLEX_OP_LOOP(op)\
 APPLY_OP_LOOP(MPI_C_FLOAT_COMPLEX, float _Complex,op)\
@@ -190,7 +190,7 @@ static void replace_func(void *a, void *b, int *length, MPI_Datatype * datatype)
   memcpy(b, a, *length * (*datatype)->size());
 }
 
-static void no_func(void *a, void *b, int *length, MPI_Datatype * datatype)
+static void no_func(void*, void*, int*, MPI_Datatype*)
 {
   /* obviously a no-op */
 }
@@ -240,9 +240,10 @@ void Op::set_fortran_op()
 
 void Op::apply(void *invec, void *inoutvec, int *len, MPI_Datatype datatype)
 {
-  if(smpi_privatize_global_variables == SMPI_PRIVATIZE_MMAP){//we need to switch as the called function may silently touch global variables
+  if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) {
+    // we need to switch as the called function may silently touch global variables
     XBT_DEBUG("Applying operation, switch to the right data frame ");
-    smpi_switch_data_segment(simgrid::s4u::Actor::self()->getPid());
+    smpi_switch_data_segment(simgrid::s4u::Actor::self());
   }
 
   if (not smpi_process()->replaying() && *len > 0) {