190 likes | 317 Views
COM S 614 Advanced Systems. Novel Communications U-Net and Active Messages. Problem Domain. System Area Networks Cluster Computing Rack-and-stack builds COTS hardware. Presentation Parts. U-Net — say it fast Active Messages — keep it simple. Cluster Computing. File server clusters
E N D
COM S 614Advanced Systems Novel Communications U-Net and Active Messages
Problem Domain • System Area Networks • Cluster Computing • Rack-and-stack builds • COTS hardware
Presentation Parts • U-Net — say it fast • Active Messages — keep it simple
Cluster Computing • File server clusters • Database servers • Storage Area Networks • Web Servers • Scientific Applications
Parallel Applications • Communications Intensive • Small messages • 50% < 200 bytes • RPC style programming
Traditional Network Interface • NIC on IO bus • DMA to kernel buffers • Interrupt driven
Performance Barriers • Multiple data copies • Kernel processing bottleneck • Context switch expensive
Goals • Remove kernel • Zero-copy send/receive • Simple API
User Level Network Interface • Application thinks it owns the adapter • Application owns its buffer pool • Application handles retries, scheduling
ULNI Pieces • Virtual interface • Large buffer pool for data • Ring buffers for send/receive descriptors • Memory mapped status registers
ULNI API • Kernel used to establish VI • Common functions for descriptor and pool management • DMA direct to user space
Virtual Interface Architecture • Compaq, Intel, Microsoft • Standard for communications within a cluster • MS provides similar WinSock Direct • WinSock Disaster • 10X latency over NIC • 60-70% max thruput
ULNI Lessons • Network transfers through DMA • Programmed IO can be better • Polling is simple, but not efficient • Alternative is interrupts, worse! • Unreliable, no flow feedback • Point-to-point • Context switch VI slow
ULNI Future • Interface mapped to coherent memory bus Note: might waste a page of SRAM for status registers, almost all of it is wasted • Polling code inserted by compiler • Multicast traffic managed by switches, spanning tree • Multiple NI’s an interesting research direction
How to say it… • Don’t wait for the response • Do simple things • Messages look like long jumps
Procedure call?! • Identical code on all nodes • Really small messages (16 bytes) • Not allowed to block • “Deadlock avoidance is a rather tricky issue…”
Active Message Applications • Parallel computation • Data flow • Flow control, lock management • Virtual Mapped Memory Communication
AM Lessons • Simplify buffer management • High caliber initial implementation • Willingness to distribute and support the code • Provided a common vocabulary for developers • Efficient RPC methods