Commit Graph

65 Commits

Author SHA1 Message Date
Arne Morten Kvarving
62f22062dd eclmpiserializer: consistently make immutable access the exception
by nature of the operation, the data should be immutable on sender and
mutable on receiver. this way we atleast keep data immutable where we can,
and immutable access is explicitly marked by casts.
2022-09-16 11:57:23 +02:00
Arne Morten Kvarving
d31620b38b eclmpiserializer: simplify handling
everything can now be done through operator()
2022-09-16 11:57:23 +02:00
Arne Morten Kvarving
9cbb0aa05e added: pack array/vector of pod in one op 2022-09-15 14:04:41 +02:00
Arne Morten Kvarving
b1092c1a12 changed: refactor MPIPacker
to limit the overload party, we put packing details for
specific types in separate structs.
emit compiler error if unsupported type is given,
better to detect this on compile time rather than runtime
2022-09-15 14:04:41 +02:00
Arne Morten Kvarving
3a19ab31bd
Merge pull request #4106 from akva2/serializer_handle_tuples
changed: handle tuples in eclmpiserializer
2022-09-15 12:59:13 +02:00
Arne Morten Kvarving
3c389d5ece changed: handle pairs as tuples in eclmpiserializer 2022-09-15 11:19:04 +02:00
Arne Morten Kvarving
5c78925981 fixed: wrong root rank in variadic broadcast
change the test to broadcast from rank 1 instead of 0
so this bug does not resurface
2022-09-14 19:38:24 +02:00
Arne Morten Kvarving
fdb2743ca9 changed: handle tuples in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 15:54:37 +02:00
Arne Morten Kvarving
924ba450d2 fixed: remove_cvr_t should also remove volatile 2022-09-13 13:42:13 +02:00
Arne Morten Kvarving
f159eb524b changed: handle all vectors in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
6e83e349d6 changed: move variadic broadcast into EclMpiSerializer 2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
9e6574115a EclMpiSerializer: add handler for vector<bool> 2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
ebdfb0fc6a EclMpiSerializer: allow specifying root rank in broadcast/append 2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
dfa870c313 changed: handle all sets in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 12:39:07 +02:00
Arne Morten Kvarving
4cd9272a76 changed: handle all arrays in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 12:08:39 +02:00
Arne Morten Kvarving
603e44068c changed: handle all maps in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 11:32:37 +02:00
Arne Morten Kvarving
053dfc7ce5 eclmpiserializer: fix is_vector predicate
allow custom allocator
2022-09-13 10:49:54 +02:00
Arne Morten Kvarving
1838b39d2e changed: split ParallelRestart.hpp/cpp in two bits
the mpi serialization bit is put in MPISerializer.hpp/cpp,
while the parallel restart bit stays in ParallelRestart
2022-09-08 13:36:51 +02:00
Arne Morten Kvarving
ee0d482b32 added: eclmpiserializer::append
this broadcasts from the root rank, and then appends
the results to existing data on the others
2022-09-06 15:36:30 +02:00
Arne Morten Kvarving
2d2f25b778 added: map predicate
use it to allow for serializing nested maps
2022-09-06 10:32:48 +02:00
Bård Skaflestad
b3e517a8ef
Merge pull request #4055 from akva2/eclmpiserializer_map
eclmpiserializer: improve map handler
2022-09-02 21:01:47 +02:00
Arne Morten Kvarving
ade4cf978e eclmpiserializer: improve map handler
use has_serializeOp trait
2022-09-02 17:20:46 +02:00
Arne Morten Kvarving
2dd6433f16 eclmpiserializer: improve set handler
use has_serializeOp trait
2022-09-02 17:18:03 +02:00
Bård Skaflestad
a372a4d09e
Merge pull request #4052 from akva2/eclmpiserializer_vector
eclmpiserializer: improve vector handler
2022-09-02 17:10:10 +02:00
Bård Skaflestad
e3bc041909
Merge pull request #4051 from akva2/eclmpiserializer_array
eclmpiserializer: improve array handler
2022-09-02 17:09:41 +02:00
Arne Morten Kvarving
e2eac12593 eclmpiserializer: improve vector handler
use has_serializeOp trait
2022-09-02 14:36:42 +02:00
Bård Skaflestad
dff553db59
Merge pull request #4050 from akva2/eclmpiserializer_ptr
eclmpiserializer: improve ptr handler
2022-09-02 14:30:33 +02:00
Arne Morten Kvarving
3ed2a25470 eclmpiserializer: improve array handler
use has_serializeOp trait
2022-09-02 14:12:09 +02:00
Arne Morten Kvarving
9be60f2b3f eclmpiserializer: improve ptr handler
use has_serializeOp trait
2022-09-02 14:08:29 +02:00
Arne Morten Kvarving
a9eb6159ae eclmpiserializer: improve pair handling
use has_serializeOp trait
2022-09-02 13:54:39 +02:00
Arne Morten Kvarving
8bd2af1517 added: generalize variant serialization handling 2022-09-01 13:24:17 +02:00
Arne Morten Kvarving
2c0ff6f81e consistently use ParallelCommunication.hpp for communication definition 2022-09-01 12:26:11 +02:00
Joakim Hove
059efcd260 Add serializer support for std::array<T,N> 2021-10-25 10:50:34 +02:00
Elyes Ahmed
f53c597f90 Replacing use of MPI_COMM_WORLD with a variable communicator. 2021-10-05 13:07:52 +02:00
Bård Skaflestad
2dedb62363 Serializer: Detect Existence of 'serializeOp' Member Function
More direct test than looking for a 'serializeObject' member.
2021-09-29 13:41:01 +02:00
Joakim Hove
1b7ef65509 Add serializer support for set - closely modelled after map 2021-09-24 18:55:54 +02:00
Markus Blatt
e6c8f6985c Remove some shawowed variable warnings. 2021-09-13 12:08:13 +02:00
Joakim Hove
3d226abd24 Remove references to RestartConfig 2021-03-26 08:03:07 +01:00
Tor Harald Sandve
f4ac7f555b Add support for explicit guiderate for injection groups
With this commit the guiderate logic used for the production groups is also used for injectors
This allows for setting guiderates explicit at different group levels
Only RATE, NETV and VOID guiderate type is suppored.
2021-03-16 15:56:31 +01:00
Arne Morten Kvarving
49cc70f49c fixed: avoid deadlocks in parallel if serialization throws 2020-09-24 11:00:37 +02:00
Arne Morten Kvarving
dfd2109665 added: support for std::optional in eclmpiserializer 2020-09-23 12:23:18 +02:00
Joakim Hove
3c565ef59e Use const_cast< > in variant serialization 2020-08-27 11:01:22 +02:00
Joakim Hove
cc32189a2e Handle serialization of std::variant<T0,T1> 2020-08-25 22:37:24 +02:00
Joakim Hove
754f74df01 Adapt variant serialization to four types 2020-06-12 07:21:46 +02:00
Joakim Hove
a1306a62fc Add serialization of std::variant<T1,T2,T3> 2020-06-10 20:41:14 +02:00
Arne Morten Kvarving
a456b7dff5 fixed: broadcasting an int and receiving as a size_t is a very bad idea
pointy-hat: me
2020-03-30 11:48:00 +02:00
Atgeirr Flø Rasmussen
56222d4350 Make is_ptr() for unique_ptr handle two template parameters. 2020-03-23 13:36:07 +01:00
Atgeirr Flø Rasmussen
652c7d239b Simplify ptr(), avoiding a template template parameter.
Since unique_ptr<T, Deleter> takes two arguments it cannot strictly
speaking be used via a template template parameter that takes one,
even though the second has a default. GCC allows this anyway, but
not clang.
2020-03-23 11:55:45 +01:00
Arne Morten Kvarving
4c5f9f2241 add doxy to eclmpiserializer 2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
59d1ff9b88 updates in EclMpiSerializer to avoid explicit instances in serializer
now the serializer is 'standard', as in we only require basic types
+ stl containers. this should make the actual implementation pretty
pluggable. will ease replacing our serialization routines
with those in Dune 2.7 later.
2020-03-19 09:31:52 +01:00