Fundamentals
“It’s all about
address mapping” could be a technical saying to describe the fundamentals
of TNet. As the idea is to transfer (store) data from one node
to another, the most direct way is to let the running process
send the data down to the NIC (bypassing the OS) and out on to
the network. The arriving packet on the remote NIC will then be
copied into the appropriate memory area of the destination process.
Address translation
is done on multiple levels (PCI-Bus, Network, etc.) for a remote
store. The important part is, that the network card can map the
host memory to the network in form of Virtual Communication Addresses.
The example above describes the situation after the target has
sent a request to get a message to the initiator. This mechanism
allows the target’s NIC to handle the incoming data and place
it at the right memory spot in the host.
TNet has been
designed for large-scale clusters. Each NIC is addressed by a
16bit destination ID which gives a total of 65536 nodes possible.
The actual network bandwidth is 1Gbit/s and will be multiplied
on future TNet releases. Switches are remotely configurable and
allow any network topology by preventing deadlocks. The 12 port
full crossbar switches, which in contrast to Myrinet use destination
routing, also include monitoring of the network performance. Variable
size micropackets of maximal 128 bytes permit a fair access even
on a highly loaded network. Reliability is improved by a hardware
implemented retransmission protocol.