Network Interface for Protected, User-Level Communication (Thesis)
Scalable parallel architectures are converging on the general framework
of a distributed memory parallel processor (DMPP), consisting of a
group of interconnected compute nodes, each typically consisting of a
CPU, some memory, and a network interface. DMPP architectures range
from tightly-coupled multicomputers to loosely-coupled networks of
personal computers (PCs), and support a number of parallel programming
paradigms including shared-memory and message-passing. Networks of PCs
are very attractive DMPPs because of the high performance and low cost
of the PC nodes.
Custom-built multicomputers have one principal advantage over networks
of PCs: they are faster. The major reason for this advantage is a gap
in communication performance between multicomputer interconnects and
local area networks. Recent networking trends have seen a migration of
technology from multicomputers to networks of PCs, shrinking this
communication performance gap considerably. However, software
overhead---largely attributable to local area network
interfaces---continues to maintain the performance gap.
This dissertation describes how network interfaces can bridge the gap
by providing appropriate support for protected, user-level
communication with extremely low software overhead. Such network
interfaces can be used to build scalable, high-performance, really
inexpensive multiprocessors out of low-cost, commodity components.
This assertion is demonstrated via a working implementation of a
prototype SHRIMP network of PCs. The prototype achieves data transfer
latency competitive with custom multicomputers, and efficient use of
bandwidth down to small message sizes. In addition, SHRIMP supports
general multiprogramming, extending its benefits from uniprocessors to
The key to SHRIMP performance is virtual memory-mapped communication,
which strips away overhead from time-critical data transfer operations
without sacrificing all the services that systems have come to depend
on. Equipped with virtual memory-mapped communication, networks of PCs
could very well become commodity scalable systems.