Parallel programming models are of 3 categories:
- Shared memory: with implicit communication and explicit synchronization.
- Message passing: with explicit communication and implicit synchronization.
- Remote memory access and Partioned global address space: synchronization and communication are managed independantly.
Two sided (Send/Recv) vs One sided (RDMA)
- Send/Recv:
- Source issues ‘Send’ with location of data to be sent and target issues ‘Recv’ with location where data should be written.
- Each side has information necessary for communication, hence ‘two-sided’.
- RDMA:
- Source and target buffers are registered prior to communication.
- Registration of memory returns a handle to be used in RDMA operations.
- Only one side needs to have all the information necessary for the communication, hence ‘one-sided’.
Remote Memory Access (One-sided communication)
- Remote Direct Memory Access is a direct memory access from the memory of one computer into that of another without involving either computer’s OS.
- RDMA model provides mechanisms that enable out of user-space operations to a previously registered user space memory buffer without OS involvement.
Memory Regions and Process Groups
References