Template Numerical Library version\ main:bb09b17
Loading...
Searching...
No Matches
TNL::Containers::DistributedArraySynchronizer< DistributedArray > Class Template Reference
Inheritance diagram for TNL::Containers::DistributedArraySynchronizer< DistributedArray >:
Collaboration diagram for TNL::Containers::DistributedArraySynchronizer< DistributedArray >:

Public Types

using ByteArrayView = typename Base::ByteArrayView
 
using RequestsVector = typename Base::RequestsVector
 
- Public Types inherited from TNL::Containers::ByteArraySynchronizer< DistributedArray::DeviceType, DistributedArray::IndexType >
enum  AsyncPolicy
 
using ByteArrayView
 
using RequestsVector
 

Public Member Functions

 DistributedArraySynchronizer (SubrangeType localRange, int overlaps, MPI::Comm communicator)
 
void synchronizeByteArray (ByteArrayView array, int bytesPerValue) override
 Main synchronization function.
 
RequestsVector synchronizeByteArrayAsyncWorker (ByteArrayView array, int bytesPerValue) override
 
- Public Member Functions inherited from TNL::Containers::ByteArraySynchronizer< DistributedArray::DeviceType, DistributedArray::IndexType >
void synchronizeByteArrayAsync (ByteArrayView array, int bytesPerValue, AsyncPolicy policy=AsyncPolicy::synchronous)
 An asynchronous version of synchronizeByteArray.
 

Additional Inherited Members

- Public Attributes inherited from TNL::Containers::ByteArraySynchronizer< DistributedArray::DeviceType, DistributedArray::IndexType >
std::future< void > async_op
 Can be used for checking if a synchronization started asynchronously has been finished.
 
std::size_t async_ops_count
 
Timer async_start_timer
 
Timer async_wait_before_start_timer
 
Timer async_wait_timer
 

Member Function Documentation

◆ synchronizeByteArray()

template<typename DistributedArray >
void TNL::Containers::DistributedArraySynchronizer< DistributedArray >::synchronizeByteArray ( ByteArrayView array,
int bytesPerValue )
inlineoverridevirtual

Main synchronization function.

This is only a pure virtual function – the functionality must be implemented in a subclass.

Implements TNL::Containers::ByteArraySynchronizer< DistributedArray::DeviceType, DistributedArray::IndexType >.

◆ synchronizeByteArrayAsyncWorker()

template<typename DistributedArray >
RequestsVector TNL::Containers::DistributedArraySynchronizer< DistributedArray >::synchronizeByteArrayAsyncWorker ( ByteArrayView array,
int bytesPerValue )
inlinenodiscardoverridevirtual

The documentation for this class was generated from the following file: