Public Member Functions | |
| SequentialMachineShMemWinBaseInternal (Int64 sizeof_segment, Int32 sizeof_type) | |
| Int32 | sizeofOneElem () const override |
| Method to get the size of an element in the window. | |
| ConstArrayView< Int32 > | machineRanks () const override |
| Method to get the ranks that possess a segment in the window. | |
| void | barrier () const override |
| Method to wait until all processes/threads of the node call this method to continue execution. | |
| Span< std::byte > | segmentView () override |
| Method to get a view of our segment. | |
| Span< std::byte > | segmentView (Int32 rank) override |
| Method to get a view of the segment of another subdomain of the node. | |
| Span< const std::byte > | segmentConstView () const override |
| Method to get a view of our segment. | |
| Span< const std::byte > | segmentConstView (Int32 rank) const override |
| Method to get a view of the segment of another subdomain of the node. | |
| void | add (Span< const std::byte > elem) override |
| Method to add elements into our segment. | |
| void | add () override |
| void | addToAnotherSegment (Int32 rank, Span< const std::byte > elem) override |
| Method to add elements into the segment of another subdomain. | |
| void | addToAnotherSegment () override |
| void | reserve (Int64 new_capacity) override |
| Method to reserve memory space in our segment. | |
| void | reserve () override |
| void | resize (Int64 new_size) override |
| Method to resize our segment. | |
| void | resize () override |
| void | shrink () override |
| Method to reduce the reserved memory space for the segments to the minimum necessary. | |
Private Attributes | |
| Int32 | m_sizeof_type |
| UniqueArray< std::byte > | m_segment |
| Int32 | m_my_rank = 0 |
Definition at line 442 of file SequentialParallelMng.cc.
|
inline |
Definition at line 447 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
See add(Span<const std::byte> elem).
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 494 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to add elements into our segment.
Collective call.
If the segment is too small, it will be resized.
Subdomains that do not wish to add elements can call the add() method without parameters or this method with an empty view.
| elem | The elements to add. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 487 of file SequentialParallelMng.cc.
References ARCCORE_FATAL, and Arcane::SpanImpl< T, SizeType, Extent >::size().
|
inlineoverridevirtual |
See addToAnotherSegment(Int32 rank, Span<const std::byte> elem).
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 505 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to add elements into the segment of another subdomain.
Collective call.
Two subdomains must not add elements to the same subdomain segment.
If the targeted segment is too small, it will be resized.
Subdomains that do not wish to add elements can call the addToAnotherSegment() method without parameters.
| rank | The subdomain into which to add elements. |
| elem | The elements to add. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 495 of file SequentialParallelMng.cc.
References ARCANE_FATAL, ARCCORE_FATAL, and Arcane::SpanImpl< T, SizeType, Extent >::size().
|
inlineoverridevirtual |
Method to wait until all processes/threads of the node call this method to continue execution.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 463 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to get the ranks that possess a segment in the window.
Non-collective call.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 459 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
See reserve(Int64 new_capacity)
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 511 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to reserve memory space in our segment.
Collective call.
This method does nothing if new_capacity is less than the memory space already allocated for the segment. For processes that do not wish to increase the available memory space for their segment, it is possible to set the new_capacity parameter to 0 or use the reserve() method (without arguments).
MPI will reserve a space with a size greater than or equal to new_capacity.
This method does not resize the segment; you must always use the add() method to add elements.
To resize the segment, the resize(Int64 new_size) method is available.
| new_capacity | The requested new capacity. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 507 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 516 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to resize our segment.
Collective call.
If the provided size is less than the current size of the segment, elements located after the provided size will be deleted.
For processes that do not wish to resize their segment, it is possible to set the new_size argument to -1 or call the resize() method (without arguments).
| new_size | The new size. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 512 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to get a view of our segment.
Non-collective call.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 476 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to get a view of the segment of another subdomain of the node.
Non-collective call.
| rank | The rank of the subdomain. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 480 of file SequentialParallelMng.cc.
References ARCANE_FATAL.
|
inlineoverridevirtual |
Method to get a view of our segment.
Non-collective call.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 465 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to get a view of the segment of another subdomain of the node.
Non-collective call.
| rank | The rank of the subdomain. |
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 469 of file SequentialParallelMng.cc.
References ARCANE_FATAL.
|
inlineoverridevirtual |
Method to reduce the reserved memory space for the segments to the minimum necessary.
Collective call.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 517 of file SequentialParallelMng.cc.
|
inlineoverridevirtual |
Method to get the size of an element in the window.
Non-collective call.
Implements Arcane::MessagePassing::IMachineShMemWinBaseInternal.
Definition at line 455 of file SequentialParallelMng.cc.
|
private |
Definition at line 526 of file SequentialParallelMng.cc.
|
private |
Definition at line 525 of file SequentialParallelMng.cc.
|
private |
Definition at line 524 of file SequentialParallelMng.cc.