Sends values across different processors. More...
#include <arcane/core/ITransferValuesParallelOperation.h>
Public Member Functions | |
| virtual | ~ITransferValuesParallelOperation ()=default |
| Destructor. | |
| virtual IParallelMng * | parallelMng ()=0 |
| Associated parallelism manager. | |
| virtual void | setTransferRanks (Int32ConstArrayView ranks)=0 |
| Positions the array indicating who to send the values to. | |
| virtual void | addArray (Int32ConstArrayView send_values, SharedArray< Int32 > recv_value)=0 |
Adds an array of Int32. | |
| virtual void | addArray (Int64ConstArrayView send_values, SharedArray< Int64 > recv_values)=0 |
Adds an array of Int64. | |
| virtual void | addArray (RealConstArrayView send_values, SharedArray< Real > recv_values)=0 |
Adds an array of Int64. | |
| virtual void | transferValues ()=0 |
| Sends and receives values. | |
Sends values across different processors.
This operation allows values to be communicated with other processors. The array ranks indicates for each element the rank of the processor it is intended for. It is then possible to specify arrays containing the values to send and to receive. The send arrays must have the same number of elements as ranks
An instance is used only once. Once the transfer is complete, it can be destroyed.
For example, for a case with 3 processors:
To perform the transfer
After sending, processor of rank 0 will have the following values:
Note that the order of elements is undetermined
Definition at line 105 of file ITransferValuesParallelOperation.h.
|
pure virtual |
Adds an array of Int32.
Implemented in Arcane::TransferValuesParallelOperation.
|
pure virtual |
Adds an array of Int64.
Implemented in Arcane::TransferValuesParallelOperation.
|
pure virtual |
Adds an array of Int64.
Implemented in Arcane::TransferValuesParallelOperation.
|
pure virtual |
Associated parallelism manager.
Implemented in Arcane::TransferValuesParallelOperation.
|
pure virtual |
Positions the array indicating who to send the values to.
Implemented in Arcane::TransferValuesParallelOperation.
|
pure virtual |
Sends and receives values.
This call is collective and blocking.
Implemented in Arcane::TransferValuesParallelOperation.