A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix dist.
[simgrid.git]
/
src
/
smpi
/
mpi
/
smpi_datatype.cpp
diff --git
a/src/smpi/mpi/smpi_datatype.cpp
b/src/smpi/mpi/smpi_datatype.cpp
index
de11260
..
5136911
100644
(file)
--- a/
src/smpi/mpi/smpi_datatype.cpp
+++ b/
src/smpi/mpi/smpi_datatype.cpp
@@
-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. */
/* 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 "private.hpp"
+#include "simgrid/modelchecker.h"
#include "smpi_datatype_derived.hpp"
#include "smpi_op.hpp"
#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)");
#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_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);
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)
{
const char* Datatype::encode(MPI_Datatype dt)
{
- if (dt == MPI_DATATYPE_NULL)
- return "-1";
-
return dt->id.c_str();
}
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.
// FIXME Handle the case of a partial shared malloc.
- if
(smpi_privatize_global_variables == SMPI_PRIVATIZE_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 */
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;
}
}
return MPI_ERR_ARG;
}
}
-
+
MPI_Aint extent = oldtype->get_extent();
int i;
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;
}
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];
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);
//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);
tmp = *newtype;
create_resized(tmp, 0, extent, newtype);