Next: Software DSM
Up: Software Distributed Shared Memory
Previous: Introduction
The VI Architecture [5] is a user-level
memory-mapped communication architecture that is designed to
achieve low latency, high bandwidth across a cluster of computers.
The VI architecture attempts to reduce the amount of software overhead
imposed by traditional communication models, by avoiding
the kernel involvement in
each communication operation. In traditional models, the operating
system multiplexes access to the hardware between communication endpoints
and therefore all communication operations require a trap into the
kernel.
Each consumer process (VI Consumer) is provided a directly
accessible interface to the network hardware, called the Virtual
Interface (VI). Each VI represents a communication endpoint and pairs
of VIs can be connected to form communication channels for
bidirectional point-to-point data transfer.
Each VI has a pair of work queues, one for send and one for receive.
VI Consumers send and receive messages by posting requests, in the
form of descriptors, to these queues.
These requests are asynchronously processed directly by
network interface controller (VI Provider)
and marked with a status value when completed. VI Consumers can then
remove these descriptors from the queue and reuse them if necessary.
Completion queues allow the VI Consumer to combine the descriptor
completion events of multiple VIs into a single queue.
There are several key features of the VIA communication model:
- Direct Access to the Network Interface.
This enables low latency communication which has been shown to
improve DSM performance.
- Memory Registration. VIA requires that memory used for every
data transfer request be registered. Any memory page registered
with VIA is kept pinned to the same physical
memory location until the memory is deregistered by the VI Consumer.
The necessity of memory registration becomes an issue for software DSM
when the shared address space is larger than the physical memory or
when memory pressure due to other applications makes it difficult
to register the entire shared address space.
- Zero-Copy Protocols. With memory registration, the VI Provider
can transfer data directly between the buffers of a VI Consumer and
the network without copying any data to or from intermediate buffers.
Zero-copy communication protocols help improve the performance of DSM
systems but because it requires registration of the entire address space,
it can be used only for small problem sizes.
- Protected Channel for Communication. The VI architecture requires
that a VI be explicitly connected with another VI in order to transfer
data between them.
Communication using the VI channels established by the connection process
eliminates the protection check by the operating
system from the critical
path of data transfer. This feature is not relevant to software DSM
systems that typically assume no sharing of the cluster with
other applications.
The VI architecture supports two types of
data transfer models for communication.
The Send-Receive model is similar to traditional message passing,
which involves an explicit receive operation, and the recipient of a
message has to specify the memory location where the data will be placed.
The Remote Direct Memory Access (RDMA)
model involves only the sender, and no receive operation is
required. In this case, both the source
and destination buffer are specified by the sender.
The VIA specification defines two RDMA operations, RDMA Write and RDMA Read.
Next: Software DSM
Up: Software Distributed Shared Memory
Previous: Introduction
Murali Rangarajan
2000-08-09