CS 8803J
High Performance Computing
Notes for 11th March 2002

TOPIC: Different models of using NICs
 
 
 

A comparison table
Metrics
Active Messages
Remote Queueing ( Brewer, Inktomi )
Remote Memory
MUX/DeMUX Must DeMUX to the right user Through queues - no user level upcall By address straight into memory
Notification Polling/interrupt, multithreaded Relaxed since buffering is built-in Optional
Buffering Avoids packets Implicit buffering No
DMA ( vs VA ) Local to receiver: Receiver picks VA; Page fault must be dealt with Optional - mechanisms for big and small messages Inherent, sender provides receiver VAs
Protocol Acceleration Define common handler types and build in hardware or user-level accelerators Queue insert ( direct support in T3D and T3E ) Natural

Remote Memory:
 

Operations supported

+-------------+                 +-------------+
|             |    Write        |             |
|             | ------------->  |             |
|             |                 |             |
|             |     Read        |             |
| Sender      | ------------->  |  Receiver   |
|             |<-------------   |             |
|             |     CAS         |             |
|             | ------------->  |             |
|             | <-------------  |             |
+-------------+                 +-------------+

 Since sender needs receiver's VM information for all the operations, it uses RPC to get it started.
 

Advantages and Disadvantages
 

Comm model
Advantages
Disadvantages
Active Messages Message - handler model - easy implementation Overhead of running handler
Remote Queues Eases implementation by adding buffering Latency for small messages, Bandwidth for bigger ones
Remote Memory All operations are fast Assumes trust; Knowledge of receiver's VM needed; Perverse situations like locks, multiple queues need to be handled

Cycle of Reincarnation

Current trend:  Pn -> PN -> PNp -> PPn -> ... ?

P: Processor, N: Network interface.
 

NI "usage" - the big picture

AM                RQ             *                  RM
                                 |
<------------------------------------------------------->
Universal                                     Specialized

*: position of hybrid deposit that uses queue to share addresses
 

A sneak preview of "Separating Data and Ctrl Xfer in Distributed OS" ( Thekkath et al. )

NFS, server doesn't trust clients, but servers and clerks trust each other, clerks being processes that run in the client side. Clerk is involved in transferring data to client process.
 

+---------+         +--------+
|         |         |        |
| Client  |         | Server |
|         |         |        |
|   ^     |         |        |
|   |     |         |        |
|+--|----+|         |        |
||       ||         |        |
|| Clerk <----------|        |
|+-------+|         |        |
+---------+         +--------+