LRPC Firefly RPC, Lightweight RPC, Winsock Direct and VIA.

Slides:



Advertisements
Similar presentations
System Area Network Abhiram Shandilya 12/06/01. Overview Introduction to System Area Networks SAN Design and Examples SAN Applications.
Advertisements

CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 U-Net: A User-Level Network Interface for Parallel and Distributed Computing T. von Eicken, A. Basu,
AMLAPI: Active Messages over Low-level Application Programming Interface Simon Yau, Tyson Condie,
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Lightweight Remote Procedure Call BRIAN N. BERSHAD THOMAS E. ANDERSON EDWARD D. LAZOWSKA HENRY M. LEVY Presented by Wen Sun.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Chapter 7 Protocol Software On A Conventional Processor.
Presented By Srinivas Sundaravaradan. MACH µ-Kernel system based on message passing Over 5000 cycles to transfer a short message Buffering IPC L3 Similar.
04/14/2008CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Reliable Distributed Systems
VIA and Its Extension To TCP/IP Network Yingping Lu Based on Paper “Queue Pair IP, …” by Philip Buonadonna.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Chris.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Haoyuan Li CS 6410 Fall /15/2009.  U-Net: A User-Level Network Interface for Parallel and Distributed Computing ◦ Thorsten von Eicken, Anindya.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
3.5 Interprocess Communication
USER LEVEL INTERPROCESS COMMUNICATION FOR SHARED MEMORY MULTIPROCESSORS Presented by Elakkiya Pandian CS 533 OPERATING SYSTEMS – SPRING 2011 Brian N. Bershad.
I/O Systems CS 3100 I/O Hardware1. I/O Hardware Incredible variety of I/O devices Common concepts ◦Port ◦Bus (daisy chain or shared direct access) ◦Controller.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
OPERATING SYSTEMS Introduction
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
COM S 614 Advanced Systems Novel Communications U-Net and Active Messages.
1 Reliable Distributed Systems RPC and Client-Server Computing Chapter 4.
Ethan Kao CS 6410 Oct. 18 th  Active Messages: A Mechanism for Integrated Communication and Control, Thorsten von Eicken, David E. Culler, Seth.
Optimizing RPC “Lightweight Remote Procedure Call” (1990) Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy (University of Washington)
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
CS533 Concepts of Operating Systems Class 9 Lightweight Remote Procedure Call (LRPC) Rizal Arryadi.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
ATM and Fast Ethernet Network Interfaces for User-level Communication Presented by Sagwon Seo 2000/4/13 Matt Welsh, Anindya Basu, and Thorsten von Eicken.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
Networked File System CS Introduction to Operating Systems.
Lightweight Remote Procedure Call (Bershad, et. al.) Andy Jost CS 533, Winter 2012.
LWIP TCP/IP Stack 김백규.
High Performance User-Level Sockets over Gigabit Ethernet Pavan Balaji Ohio State University Piyush Shivam Ohio State University.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
I/O Systems I/O Hardware Application I/O Interface
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Unconventional Networking Makoto Bentz October 13, 2010 CS 6410.
Srihari Makineni & Ravi Iyer Communications Technology Lab
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
The Peregrine High-Performance RPC System David B. Johnson Willy Zwaenepoel Software—Practice & Experience February 1993.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
The Mach System Silberschatz et al Presented By Anjana Venkat.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
Chapter 13: I/O Systems.
Kernel Design & Implementation
Module 12: I/O Systems I/O hardware Application I/O Interface
LWIP TCP/IP Stack 김백규.
CS533 Concepts of Operating Systems
B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M
CS 258 Reading Assignment 4 Discussion Exploiting Two-Case Delivery for Fast Protected Messages Bill Kramer February 13, 2002 #
I/O Systems I/O Hardware Application I/O Interface
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Multiple Processor Systems
Fast Communication and User Level Parallelism
Presented by Neha Agrawal
Presented by: SHILPI AGARWAL
Improving IPC by Kernel Design
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

LRPC Firefly RPC, Lightweight RPC, Winsock Direct and VIA

Important optimizations: LRPC Lightweight RPC (LRPC): for case of sender, dest on same machine (Bershad et. al.) Uses memory mapping to pass data Reuses same kernel thread to reduce context switching costs (user suspends and server wakes up on same kernel thread or “stack”) Single system call: send_rcv or rcv_send

LRPC Source does xyz(a, b, c) Dest on same site O/S O/S and dest initially are idle

LRPC Source does xyz(a, b, c) Dest on same site O/S Control passes directly to dest arguments directly visible through remapped memory

LRPC performance impact On same platform, offers about a 10-fold improvement over a hand-optimized RPC implementation Does two memory remappings, no context switch Runs about 50 times faster than standard RPC by same vendor (at the time of the research) Semantics stronger: easy to ensure exactly once

Fbufs Peterson: tool for speeding up layered protocols Observation: buffer management is a major source of overhead in layered protocols (ISO style) Solution: uses memory management, protection to “cache” buffers on frequently used paths Stack layers effectively share memory Tremendous performance improvement seen

Fbufs control flows through stack of layers, or pipeline of processes data copied from “out” buffer to “in” buffer

Fbufs control flows through stack of layers, or pipeline of processes data placed into “out” buffer, shaded buffers are mapped into address space but protected against access

Fbufs control flows through stack of layers, or pipeline of processes buffer remapped to eliminate copy

Fbufs control flows through stack of layers, or pipeline of processes in buffer reused as out buffer

Fbufs control flows through stack of layers, or pipeline of processes buffer remapped to eliminate copy

Where are Fbufs used? Although this specific system is not widely used Most kernels use similar ideas to reduce costs of in-kernel layering And many application-layer libraries use the same sorts of tricks to achieve clean structure without excessive overheads from layer crossing

Active messages Concept developed by Culler and von Eicken for parallel machines Assumes the sender knows all about the dest, including memory layout, data formats Message header gives address of handler Applications copy directly into and out of the network interface

Performance impact? Even with optimizations, standard RPC requires about 1000 instructions to send a null message Active messages: as few as 6 instructions! One-way latency as low as 35usecs But model works only if “same program” runs on all nodes and if application has direct control over communication hardware

U/Net Low latency/high performance communication for ATM on normal UNIX machines, later extended to fast Ethernet Developed by Von Eicken, Vogels and others at Cornell (1995) Idea is that application and ATM controller share memory-mapped region. I/O done by adding messages to queue or reading from queue Latency 50-fold reduced relative to UNIX, throughput 10-fold better for small messages!

U/Net concepts Normally, data flows through the O/S to the driver, then is handed to the device controller In U/Net the device controller sees the data directly in shared memory region Normal architecture gets protection from trust in kernel U/Net gets protection using a form of cooperation between controller and device driver

U/Net implementation Reprogram ATM controller to understand special data structures in memory-mapped region Rebuild ATM device driver to match this model Pin shared memory pages, leave mapped into I/O DMA map Disable memory caching for these pages (else changes won’t be visible to ATM)

U-Net Architecture User’s address space has a direct-mapped communication region ATM device controller sees whole region and can transfer directly in and out of it... organized as an in-queue, out- queue, freelist

U-Net protection guarantees No user can see contents of any other user’s mapped I/O region (U-Net controller sees whole region but not the user programs) Driver mediates to create “channels”, user can only communicate over channels it owns U-Net controller uses channel code on incoming/outgoing packets to rapidly find the region in which to store them

U-Net reliability guarantees With space available, has the same properties as the underlying ATM (which should be nearly 100% reliable) When queues fill up, will lose packets Also loses packets if the channel information is corrupted, etc

Minimum U/Net costs? Build message in a preallocated buffer in the shared region Enqueue descriptor on “out queue” ATM immediately notices and sends it Remote machine was polling the “in queue” ATM builds descriptor for incoming message Application sees it immediately: 35usecs latency

Protocols over U/Net Von Eicken, Vogels support IP, UDP, TCP over U/Net These versions run the TCP stack in user space!

VIA and Winsock Direct Windows consortium (MSFT, Intel, others) commercialized U/Net: Virtual Interface Architecture (VIA) Runs in NT Clusters But most applications run over UNIX-style sockets (“Winsock” interface in NT) Winsock direct automatically senses and uses VIA where available Today is widely used on clusters and may be a key reason that they have been successful