The remote put pattern
Summary¶
In the remote PUT pattern, a PE requests a remote PE to update its local data. On the sender side, it keeps sending a massive number of requests to remote locations and invokes the done()
API when it will not send any more messages. On the receiver side, the received messages are processed by a message handler one-by-one.
One benefit of this communication model is that it does not require remote atomics (e.g., shmem_atomic_add()
) due to the sequential processing of messages.
The figure below illustrates the PUT pattern. While the figure only shows one PE0 to PE1 communication for presentation purposes, in reality, each PE does the sender's and receiver's role in an interleaved fashion.
Code Example¶
Actor class definition:
Main program: