Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix dist.
[simgrid.git] / src / smpi / mpi / smpi_datatype.cpp
index a17f42e..5136911 100644 (file)
@@ -4,11 +4,12 @@
 /* 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 "simgrid/modelchecker.h"
 #include "private.hpp"
+#include "simgrid/modelchecker.h"
 #include "smpi_datatype_derived.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
+
 #include <string>
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_datatype, smpi, "Logging specific to SMPI (datatype)");
@@ -74,8 +75,9 @@ CREATE_MPI_DATATYPE(MPI_2LONG, 37, long_long);
 
 CREATE_MPI_DATATYPE(MPI_REAL, 38, float);
 CREATE_MPI_DATATYPE(MPI_REAL4, 39, float);
-CREATE_MPI_DATATYPE(MPI_REAL8, 40, float);
-CREATE_MPI_DATATYPE(MPI_REAL16, 41, double);
+CREATE_MPI_DATATYPE(MPI_REAL8, 40, double);
+CREATE_MPI_DATATYPE(MPI_REAL16, 41, long double);
+CREATE_MPI_DATATYPE_NULL(MPI_DATATYPE_NULL, -1);
 CREATE_MPI_DATATYPE_NULL(MPI_COMPLEX8, 42);
 CREATE_MPI_DATATYPE_NULL(MPI_COMPLEX16, 43);
 CREATE_MPI_DATATYPE_NULL(MPI_COMPLEX32, 44);
@@ -205,9 +207,6 @@ bool Datatype::is_basic()
 
 const char* Datatype::encode(MPI_Datatype dt)
 {
-  if (dt == MPI_DATATYPE_NULL)
-    return "-1";
-
   return dt->id.c_str();
 }
 
@@ -294,7 +293,7 @@ int Datatype::copy(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 
 // FIXME Handle the case of a partial shared malloc.
 
-  if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap) {
+  if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) {
     smpi_switch_data_segment(simgrid::s4u::Actor::self());
   }
   /* First check if we really have something to do */
@@ -530,7 +529,7 @@ int Datatype::create_subarray(int ndims, int* array_of_sizes,
       return MPI_ERR_ARG;
     }
   }
-  
+
   MPI_Aint extent = oldtype->get_extent();
 
   int i;
@@ -545,7 +544,7 @@ int Datatype::create_subarray(int ndims, int* array_of_sizes,
       step = 1;
       end = ndims;
   }
-  
+
   MPI_Aint size = (MPI_Aint)array_of_sizes[i] * (MPI_Aint)array_of_sizes[i+step];
   MPI_Aint lb = (MPI_Aint)array_of_starts[i] + (MPI_Aint)array_of_starts[i+step] *(MPI_Aint)array_of_sizes[i];
 
@@ -568,7 +567,7 @@ int Datatype::create_subarray(int ndims, int* array_of_sizes,
   //handle LB and UB with a resized call
   create_hindexed( 1, sizes, lbs, tmp, newtype);
   unref(tmp);
-  
+
   tmp = *newtype;
   create_resized(tmp, 0, extent, newtype);