Alain Miniussi
90e84fe143
Change partial specialization position to agree with nvcc/icc
2017-02-23 13:47:23 +01:00
Alain Miniussi
98c406a77f
documentation typo
2017-02-23 11:26:49 +01:00
Jonathan Wakely
947d171573
Add header for serialization::make_array ( #40 )
2017-02-22 19:19:45 -07:00
Jonathan Wakely
f5bdcc1ebf
Replace boost::serialization::detail::get_data function. ( #39 )
2017-02-22 19:18:58 -07:00
Andrey Semashev
b21d956760
Fix incorrect usage of auto_ptr to free an array ( #38 )
...
The `auto_ptr` would use `delete p` to free an array allocated with `operator new[]`, which could result in heap corruption. Replaced it with `scoped_array`.
2017-02-22 19:17:32 -07:00
Alain Miniussi
dc9122c00d
workaround an Open MPI bug: ( #37 )
...
According to:
http://mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf
input data on Scatter should be passed as a pointer to const. Open MPI miss that const which invalidate the implicit conversion.
2017-02-22 19:16:46 -07:00
Alain Miniussi
c5df30a54d
Support recent g++ without c++11.
2016-11-04 00:11:14 +01:00
Alain Miniussi
415a41f6ea
Test that static and dynamic MPI versions matches
2016-11-02 14:52:01 +01:00
Alain Miniussi
9d4e00a3c8
using g++5.4 detected a lot of compilation problems on template code that wasn't instantiated by the tests (which is an issue to deal with).
2016-10-28 00:48:20 +02:00
Alain Miniussi
e3b0d08c7e
Explicitly avoid temporary in isend.
2016-10-27 00:54:51 +02:00
Alain Miniussi
91a19d2e6a
uniform var name.
2016-10-26 10:15:29 +02:00
Alain Miniussi
864ad60116
Only allocate receiv buffer on root node in gather.
2016-10-26 10:10:04 +02:00
Alain Miniussi
d3f671ea0a
factorize
2016-10-25 16:34:46 +02:00
Alain Miniussi
debeb7c8c4
Renaming
2016-10-25 15:53:14 +02:00
Alain Miniussi
e169ada110
renaming
2016-10-25 15:47:45 +02:00
Alain Miniussi
4f6d3a5f8c
typo
2016-10-25 15:47:39 +02:00
Alain Miniussi
8ff3bf01e0
all_gatherv implementation
2016-10-25 15:36:38 +02:00
Alain Miniussi
da49ba7d4c
special flag to mark non rooted opertaions
2016-10-25 15:34:22 +02:00
Alain Miniussi
2a31dde183
Inject sizes and displacement support.
2016-10-25 13:42:58 +02:00
Alain Miniussi
61e0654098
Iterate on ouput instead of using indexed access.
...
Will make sharing implementation with variadic version easier.
2016-10-25 12:05:10 +02:00
Alain Miniussi
d81cbab4a1
gatherv is now point 2 point free.
2016-10-24 20:49:23 +02:00
Alain Miniussi
0a6092d5ff
Generalized the gather MPI implementation function for non MPI datatypes in order to accomodate the variadic implementation.
2016-10-24 19:45:43 +02:00
Alain Miniussi
f55fee5e36
Iterate on output instead of using indexes.
...
It will be easier to merge with the variadic version.
2016-10-24 19:19:44 +02:00
Alain Miniussi
806d161cac
add scatter example code
2016-10-24 17:33:10 +02:00
Alain Miniussi
2c9d9e6df7
Move non template code in non template file.
2016-10-24 15:35:33 +02:00
Alain Miniussi
abded0963a
scatterv whithout point to point communication
2016-10-24 13:22:09 +02:00
Alain Miniussi
2003a35286
get a vector free version.
2016-10-24 13:21:41 +02:00
Alain Miniussi
f9d9ac9414
try to get a core dump in debug mode
2016-10-24 13:21:03 +02:00
Alain Miniussi
60360763f4
scatter is now clearly divided in 2 step: 1) fill the buffer, 2) dispatch the buffer
2016-10-21 17:21:00 +02:00
Alain Miniussi
3a0109112c
prepare for passing each proc's number of element explicitly.
2016-10-21 16:58:23 +02:00
Alain Miniussi
7b27c12ab4
started isolating the scatter send bufferfilling. Will be shared with scatterv
2016-10-21 16:48:55 +02:00
Alain Miniussi
ef30d347f7
scatter does not use point to point anymore
2016-10-21 16:23:43 +02:00
Alain Miniussi
96def4ce61
was missing in previous commit, the name of sizes2offsetshas changed.
2016-10-21 16:22:57 +02:00
Alain Miniussi
e3f076023e
There are as many sizes as offsets
2016-10-21 16:20:34 +02:00
Alain Miniussi
cdabc4398d
Comply to boost indentation rules
2016-10-21 13:46:52 +02:00
Alain Miniussi
8aec85cfb0
allocae sizes only on root.
2016-10-21 11:12:37 +02:00
Alain Miniussi
a8b8049995
use data() instead of hacky &array[0]
2016-10-21 11:12:02 +02:00
Alain Miniussi
590c8c69b0
Set the output buffer size.
...
This function is often called on the root node only, so it is more convenient to allocate memory on demand.
2016-10-21 11:10:46 +02:00
Alain Miniussi
f254852f3d
Comment typo, a template was wrongly calling gather (a test should be added for that case)
2016-10-21 10:48:24 +02:00
Alain Miniussi
23a64c3ef6
all_gather does not use point to point anymore.
2016-10-20 21:21:45 +02:00
Alain Miniussi
6e06e914c6
convert a sequence of size to a sequence of offsets
2016-10-20 21:21:11 +02:00
Alain Miniussi
f8340229af
identation
2016-10-20 21:20:42 +02:00
Alain Miniussi
8158aebc01
Use C API in gather implementation
2016-10-20 20:25:27 +02:00
Alain Miniussi
0efb1415f6
identation
2016-10-20 20:10:02 +02:00
Alain Miniussi
2bdf8df315
Pessimistic comment, broadcast never uses point to point
2016-10-20 19:34:14 +02:00
Alain Miniussi
a5b5a2c4d3
Fixed a pessimistic comment, all_to_all never uses individual send reciv.
2016-10-20 19:32:55 +02:00
Alain Miniussi
5e4beaccda
Implement gather without any point to point communication.
2016-10-20 19:16:27 +02:00
Alain Miniussi
916e51dc62
Use broadcast imlementation proposed by Lorenz Hübschle-Schneider ( https://gist.github.com/lorenzhs/79dab54552fd1f9381da ): ofr non primitive/mpi type, broadcast the archive content as a primitive byte array.
2016-10-20 16:11:12 +02:00
Alain Miniussi
e47c532155
Merge pull request #36 from fweik/array
...
specialization of is_mpi_datatype for std::array
2016-10-19 15:52:17 +02:00
Alain Miniussi
9a90ae9048
Doc
2016-10-19 15:49:36 +02:00