1 / 17

Sockets Direct Protocol (SDP) for Windows - Motivation and Plans

Sockets Direct Protocol (SDP) for Windows - Motivation and Plans. Gilad Shainer Mellanox Technologies Inc. shainer@mellanox.com. Agenda. SDP Protocol Overview SDP vs. WSD SDP Stack Components Current Status. Key Message.

holli
Download Presentation

Sockets Direct Protocol (SDP) for Windows - Motivation and Plans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sockets Direct Protocol (SDP) for Windows - Motivation and Plans Gilad Shainer Mellanox Technologies Inc. shainer@mellanox.com

  2. Agenda • SDP Protocol Overview • SDP vs. WSD • SDP Stack Components • Current Status 2006 Sonoma Workshop – Sockets Direct Protocol

  3. Key Message With SDP, any traditional TCP sockets-based applications can benefit from InfiniBand without any change 2006 Sonoma Workshop – Sockets Direct Protocol

  4. Motivation • SDP sockets provide much better bandwidth and lower latency than traditional TCP sockets • SDP sockets provide lower CPU utilization and can benefit from RDMA • WSD sockets are not supported in all Windows operation systems • XP, XP embedded and Vista do not have WSD support 2006 Sonoma Workshop – Sockets Direct Protocol

  5. Sockets Direct Protocol (SDP) Overview • Transparent to the application • Maintains SOCK_STREAM Semantics • Leverages InfiniBand Capabilities • Transport Offload – Reliable Connection • Zero Copy – Using RDMA • Standardized wire protocol 2006 Sonoma Workshop – Sockets Direct Protocol

  6. Unmodified Application winsock API Socket Switch WSD WinSock Provider SDP WinSock Provider SAN Provider IB Access Layer user kernel TCP/IP SDP IPoIB NDIS Miniport Application IB Access Layer OpenIB Windows platform SDP Stack Overview 2006 Sonoma Workshop – Sockets Direct Protocol

  7. SDP Buf SDP Buf SrcAvail Message SDP Data Message SDP RDMA Read Read Response RdmaRdCompl Msg Data Transfer Modes BCopy Data Source Data Sink Data Source Read ZCopy Data Sink App Buf SDP Buf App Buf SDP Buf SDP Buf SDP Buf SDP Buf App Buf App Buf SDP Buf SDP Buf App Buf App Buf SDP SDP Buf 2006 Sonoma Workshop – Sockets Direct Protocol

  8. SDP vs. WSD 2006 Sonoma Workshop – Sockets Direct Protocol

  9. ULP Comparison 2006 Sonoma Workshop – Sockets Direct Protocol

  10. SDP Socket Provider • User-mode library • Implements Socket Provider Interface (SPI) • Supports TCP protocol • WSPxxx function for each socket call • Socket switch implemented in the library • Policy based selection of SDP vs TCP • SDP calls are redirected to SDP module 2006 Sonoma Workshop – Sockets Direct Protocol

  11. SDP Module • Kernel module • Implemented as a high level driver • Connection establishment • Routing • ARP through IPoIB • Path Record • CM • Data transfer mechanism • Buffer Copy for first release • Using physical memory region for local SDP buffers 2006 Sonoma Workshop – Sockets Direct Protocol

  12. Kernel Implementation • Each user socket is implemented as a struct in the kernel, composed from 3 parts: • For sending the data • For receiving data • For accepting new connections • If this is a listening socket • Currently all the parts are being protected by one lock • We will consider changing that in the future • In kernel all operations are being implemented as Asynchronous • If operation is blocking, we block at the user level. • The Heaviest operations are data copy • We might consider moving it from the lock. 2006 Sonoma Workshop – Sockets Direct Protocol

  13. Buffer Copy Implementation • 16KB buffers for send and receive. • The data is first copied into the buffers, and only then being sent • For each process, a second thread is created for user context operations • If the data copy should be done in interrupt context • This thread will be waked up – for send and receive operations 2006 Sonoma Workshop – Sockets Direct Protocol

  14. Current Status • Maintainer • Tzachi Dar (Mellanox); tzchid@mellanox.co.il • Buffer Copy released Oct/05 • Support: Socket, Connect, Bind, Listen, Accept, Close, Send/Recv • Only kernel code posted to openib.org repository • Zero Copy and API enhancements schedule TBD • Will support overlapped (asynchronous) operation • Will support Zero copy 2006 Sonoma Workshop – Sockets Direct Protocol

  15. Message size (B) Bandwidth (MB) 1 0.06 2 0.16 4 0.25 8 0.65 16 1.04 32 2.55 64 4.16 128 10 256 15.2 512 37.5 1024 61.8 2048 138 4096 233 8192 493 16384 573 32768 971 65536 980 131072 1241 262144 1205 Current Performance • 2 sockets (2 processes) bandwidth benchmark 2006 Sonoma Workshop – Sockets Direct Protocol

  16. Resources • OpenIB WiKi • https://openib.org/tiki/tiki-index.php?page=OpenIB+Windows • Openib-windows mailing list • http://openib.org/mailman/listinfo/openib-windows • Sign up to contribute • http://windows.openib.org/openib/contribute.aspx 2006 Sonoma Workshop – Sockets Direct Protocol

  17. Q & A 2006 Sonoma Workshop – Sockets Direct Protocol

More Related