Mark Olesen
b6539cd02e
ENH: additional MPI gather/scatter routines, globalIndex gather methods
...
- UPstream::mpiGather (MPI_Gather) - used by Pstream::listGatherValues
- UPstream::mpiScatter (MPI_Scatter) - used by Pstream::listScatterValues
These are much simpler forms for gather/scatter of fixed-sized
contiguous types data types (eg, primitives, simple pairs etc).
In the gather form, creates a list of gathered values on the master
process. The subranks have a list size of zero.
Similarly, scatter will distribute a list of values to single values
on each process.
Instead of
labelList sendSizes(Pstream::nProcs());
sendSizes[Pstream::myProcNo()] = sendData.size();
Pstream::gatherList(sendSizes);
Can write
const labelList sendSizes
(
UPstream::listGatherValues<label>(sendData.size())
);
// Less code, lower overhead and list can be const.
For scattering an individual value only,
instead of
labelList someValues;
if (Pstream::master()) someValues = ...;
Pstream::gatherList(sendSizes);
const label localValue
(
someValues[Pstream::myProcNo()]
);
Can write
labelList someValues;
if (Pstream::master()) someValues = ...;
Pstream::gatherList(sendSizes);
const label localValue
(
UPstream::listScatterValues<label>(someValues)
);
Can of course also mix listGatherValues to assemble a list on master
and use Pstream::scatterList to distribute.
ENH: adjusted globalIndex gather methods
- added mpiGather() method [contiguous data only] using MPI_Gatherv
- respect localSize if gathering master data to ensure that a
request for 0 master elements is properly handled.
2021-10-29 17:04:52 +02:00
..
2020-11-11 18:36:01 +01:00
2021-04-27 12:28:35 +02:00
2020-06-02 13:51:18 +02:00
2020-11-19 16:57:45 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-03-16 08:47:58 +00:00
2021-07-05 14:55:37 +02:00
2020-12-08 11:58:28 +01:00
2020-06-04 16:56:21 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-03-16 08:47:58 +00:00
2021-06-11 17:18:35 +02:00
2019-10-31 14:48:44 +00:00
2020-05-29 15:48:21 +02:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2020-09-07 09:45:51 +02:00
2019-10-31 14:48:44 +00:00
2020-03-19 12:31:49 +01:00
2020-11-19 16:55:29 +01:00
2019-12-05 11:47:19 +00:00
2021-07-28 10:02:27 +02:00
2021-04-19 16:33:42 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-07-05 14:55:37 +02:00
2021-04-19 16:33:42 +00:00
2020-08-07 09:24:56 +02:00
2020-05-29 15:55:56 +02:00
2021-06-28 09:14:42 +01:00
2020-10-19 21:14:17 +02:00
2021-05-18 15:30:00 +02:00
2019-12-05 11:47:19 +00:00
2020-03-11 22:05:15 +01:00
2021-06-28 09:14:42 +01:00
2021-05-31 09:11:49 +02:00
2019-12-05 11:47:19 +00:00
2019-10-31 14:48:44 +00:00
2020-10-07 09:18:23 +02:00
2019-11-11 18:50:00 +01:00
2019-10-31 14:48:44 +00:00
2019-12-05 11:47:19 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-04-19 16:33:42 +00:00
2020-09-23 10:46:04 +02:00
2021-10-29 17:04:51 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2020-11-25 19:53:02 +01:00
2021-07-05 14:55:48 +02:00
2020-05-11 14:14:59 +02:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2020-06-10 15:29:07 +02:00
2021-04-19 16:33:42 +00:00
2021-05-12 11:24:57 +02:00
2020-08-11 13:15:28 +02:00
2021-07-05 14:55:37 +02:00
2019-10-31 14:48:44 +00:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2021-10-12 10:11:05 +02:00
2021-04-19 16:33:42 +00:00
2019-10-31 14:48:44 +00:00
2020-12-08 11:58:28 +01:00
2019-10-31 14:48:44 +00:00
2020-02-24 18:41:02 +01:00
2019-10-31 14:48:44 +00:00
2021-07-15 16:47:27 +02:00
2019-10-31 14:48:44 +00:00
2020-11-25 19:53:03 +01:00
2021-09-27 13:26:02 +02:00
2020-05-11 10:12:26 +02:00
2021-09-27 13:26:02 +02:00
2020-09-07 09:45:51 +02:00
2020-05-29 15:48:20 +02:00
2021-04-19 16:33:42 +00:00
2021-06-28 09:14:42 +01:00
2021-07-05 14:55:37 +02:00
2021-07-05 14:55:37 +02:00
2021-04-19 16:33:42 +00:00
2019-10-31 14:48:44 +00:00
2021-10-29 17:04:52 +02:00
2021-05-12 11:24:57 +02:00
2020-09-07 09:45:51 +02:00
2021-07-05 14:55:37 +02:00
2020-08-07 09:24:56 +02:00
2021-07-05 14:55:37 +02:00
2021-04-19 16:33:42 +00:00
2021-06-28 09:14:42 +01:00
2021-04-19 16:33:42 +00:00
2021-04-19 16:33:42 +00:00
2021-04-19 16:33:42 +00:00
2021-07-05 14:55:37 +02:00
2020-07-28 08:40:43 +02:00
2019-12-05 11:47:19 +00:00
2019-10-31 14:48:44 +00:00
2021-06-28 09:14:42 +01:00
2020-02-19 23:36:46 +01:00
2020-09-23 10:46:04 +02:00
2019-10-31 14:48:44 +00:00
2020-09-28 14:26:07 +02:00
2019-10-31 14:48:44 +00:00
2020-10-01 11:35:43 +02:00
2021-07-05 14:55:37 +02:00
2021-03-17 15:10:00 +01:00
2019-12-05 11:47:19 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-07-05 14:55:37 +02:00
2021-05-27 15:42:46 +02:00
2020-10-01 11:35:43 +02:00
2020-06-09 08:11:04 +01:00
2020-10-07 09:17:00 +02:00
2021-06-29 13:43:44 +02:00
2021-10-29 17:04:51 +02:00
2019-10-31 14:48:44 +00:00
2021-04-19 16:33:42 +00:00
2021-03-09 09:49:31 +01:00
2021-04-19 16:33:42 +00:00
2019-10-31 14:48:44 +00:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2021-02-16 18:08:50 +01:00
2020-06-17 10:46:26 +02:00
2019-04-03 20:24:30 +02:00
2019-10-31 14:48:44 +00:00
2021-05-12 11:24:57 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2020-06-02 13:51:18 +02:00
2020-06-09 08:11:04 +01:00
2021-10-18 19:22:23 +01:00
2021-04-19 16:33:42 +00:00
2021-06-28 09:14:42 +01:00
2020-02-18 13:51:20 +01:00
2020-05-29 15:55:27 +02:00
2020-05-04 09:15:21 +02:00
2019-10-31 14:48:44 +00:00
2021-03-23 18:00:14 +01:00
2019-10-31 14:48:44 +00:00
2021-03-09 09:23:41 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-12-06 17:23:59 +01:00
2021-04-19 16:33:42 +00:00
2020-09-23 10:46:04 +02:00
2019-10-31 14:48:44 +00:00
2020-09-28 14:26:07 +02:00
2020-09-28 14:26:07 +02:00
2020-11-11 18:36:01 +01:00
2020-09-28 14:26:07 +02:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-06-29 13:43:44 +02:00
2021-06-28 09:14:42 +01:00
2020-11-25 19:53:02 +01:00
2021-06-28 09:14:42 +01:00
2021-06-29 13:43:44 +02:00
2021-04-19 16:33:42 +00:00
2019-10-31 14:48:44 +00:00
2020-09-07 09:45:51 +02:00
2020-09-07 09:45:51 +02:00
2021-09-07 11:29:11 +02:00
2021-07-05 14:55:37 +02:00
2019-10-31 14:48:44 +00:00
2021-05-27 15:42:46 +02:00
2021-03-16 08:47:59 +00:00
2020-05-04 09:15:21 +02:00
2020-07-28 08:40:43 +02:00
2020-03-11 22:05:15 +01:00
2019-12-05 11:47:19 +00:00
2019-10-31 14:48:44 +00:00
2020-09-07 09:45:51 +02:00
2021-07-05 14:55:37 +02:00
2019-10-31 14:48:44 +00:00
2021-07-05 14:55:37 +02:00
2021-07-05 14:55:37 +02:00
2021-06-28 09:14:42 +01:00
2019-12-23 09:49:23 +00:00
2021-06-28 09:14:42 +01:00
2021-07-05 14:55:37 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2020-10-28 16:04:12 +01:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-04-26 17:09:38 +02:00
2019-10-31 14:48:44 +00:00
2020-10-01 11:35:43 +02:00
2019-12-05 11:47:19 +00:00
2021-10-29 17:04:51 +02:00
2021-07-05 14:55:37 +02:00
2020-05-29 15:55:56 +02:00
2020-05-29 15:55:56 +02:00
2021-06-28 09:14:42 +01:00
2021-05-19 16:20:12 +02:00
2021-04-19 16:33:42 +00:00
2019-12-13 12:10:53 +01:00
2021-04-19 16:33:42 +00:00
2021-04-19 16:33:42 +00:00
2019-12-13 12:33:23 +01:00
2021-04-19 16:33:42 +00:00
2021-07-05 14:55:37 +02:00
2021-04-19 16:33:42 +00:00
2021-04-19 16:33:42 +00:00
2020-05-29 15:55:56 +02:00
2020-05-29 15:55:56 +02:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2019-11-15 11:26:45 +01:00
2020-05-29 15:55:56 +02:00
2020-05-29 15:55:56 +02:00
2020-11-19 16:55:29 +01:00
2020-11-19 16:55:29 +01:00
2020-07-24 09:04:07 +02:00
2021-02-16 18:08:50 +01:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-07-05 14:55:37 +02:00
2020-10-15 17:21:33 +02:00
2020-06-02 13:51:18 +02:00
2018-11-13 15:21:13 +01:00
2020-09-07 09:37:05 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2021-05-12 11:24:57 +02:00
2019-12-05 11:47:19 +00:00
2020-09-16 17:27:56 +02:00
2019-10-31 14:48:44 +00:00
2021-03-09 09:49:31 +01:00
2017-04-07 08:17:43 +02:00
2021-06-28 09:14:42 +01:00
2019-10-31 14:48:44 +00:00
2021-04-19 16:33:42 +00:00
2020-06-05 16:34:51 +02:00
2019-10-31 14:48:44 +00:00
2019-10-31 14:48:44 +00:00
2020-09-07 09:45:51 +02:00
2021-07-05 14:55:37 +02:00
2021-06-28 09:14:42 +01:00