Distributed computing with the CLAN network
David Riddoch, Kieran Mansley, Steve Pope · 2003
CLAN (collapsed LAN) is a high performance user-level network targeted at the server room. It presents a simple low-level interface to applications: connection-oriented non-coherent shared memory for data transfer, and Tripwire, a user-level programmable content addressable memory (CAM) for synchronisation. This simple interface is implemented using only hardware state machines on the network interface controller (NIC), yet is flexible enough to support many different applications and communications paradigms. We show how CLAN is used to support a number of standard transport protocols and middleware: MPI, VIA, TCP/IP and CORBA. In each case we demonstrate performance that approaches,the underlying network. For TCP/IP we present our initial results using an in-kernel stack, and describe the architecture of our prototype Gigabit Ethernet/CLAN bridge, which demultiplexes Ethernet frames directly to user-level TCP/IP stacks via the CLAN network. For VIA we present a software implementation with better latency than a commercial VIA NIC implemented on ASIC technology.