Check out the new USENIX Web site. next up previous
Next: Performance Evaluation Up: Implementation of HLRC on Previous: Data Transfers

Remote Requests

The DSM protocol may issue remote requests for data and synchronization. These requests, which require a response, are sent using the send-receive model. Since each node executes one application thread, there can be only one outstanding request issued by that node and, one corresponding reply. Therefore, each node expects at most N-1 requests (one from each other node). This means that each node must register N-1 receive buffers and post the same number of receive descriptors, where N is the number of nodes in the cluster. A N-th registered receive buffer is used to receive the reply messages (acks, locks, etc). Since VIA does not support notification on message arrival, a server thread is run on each node, which is responsible to handle remote requests. When no requests are pending, the server thread blocks on a completion queue that aggregates the receive queues for the N-1 buffers on which the node can receive asynchronous requests.

Messages that do not require a response (barrier, reply messages) are sent using RDMA Write and do not consume a descriptor on the receiving side. These messages are consumed in a busy loop by the application (not server) thread, since there is nothing else the application thread can do. The memory location for the flag on which spinning is performed, is updated by RDMA Write.


next up previous
Next: Performance Evaluation Up: Implementation of HLRC on Previous: Data Transfers
Murali Rangarajan 2000-08-09