Fabric Interfaces Architecture Overview and Concepts

fabric interfaces architecture n.w
1 / 41
Embed
Share

Explore the fabric interfaces architecture by diving into object models, relationships, hierarchy, and more. Understand the semantics, object classes, and the communication domain it represents. Discover the passive and active elements, object relationships, and the role of fabric in defining communication boundaries. Delve into the fabric's structure, including passive endpoints and listening protocols across different network interfaces.

  • Fabric Interfaces
  • Architecture
  • Object Model
  • Communication Domain
  • Object Relationships

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Fabric Interfaces Architecture Sean Hefty - Intel Corporation

  2. Changes v2 Remove interface object Add open interface as base object Add SRQ object Add EQ group object v3 Modified SRQ Enhanced architecture semantics 2 www.openfabrics.org

  3. Overview Object Model Do we have the right type of objects defines? Do we have the correct object relationships? Interface Synopsis High-level description of object operations Is functionality missing? Are interfaces associated with the right object? Architectural Semantics Do the semantics match well with the apps? What semantics are missing? 3 www.openfabrics.org

  4. Object Class Model Objects represent collection of attributes and interfaces I.e. object-oriented programming model Consider architectural model only at this point Objects do not necessarily map directly to hardware or software objects 4 www.openfabrics.org

  5. Conceptual Object Hierarchy Fabric Domain Address Vector Map Index Passive Active Msg Datagram RDM Dispatcher Completion CM AV Domain Endpoint Descriptor Fabric Object inheritance Event Queue EQ Group Counter Memory Region Interfaces 5 www.openfabrics.org

  6. Object Relationships Passive EP EQ CM Map AV Index Fabric Msg Datagram Active EP RDM EQ Group Domain Dispatch EP CQ CM EQ Object scope AV Counter Domain MR 6 www.openfabrics.org

  7. Fabric Represents a communication domain or boundary Single IB or RoCE subnet, IP (iWarp) network, Ethernet subnet Multiple local NICs / ports Topology data, network time stamps Determines native addressing Mapped addressing possible GID/LID versus IP Passive EP Fabric EQ Domain 7 www.openfabrics.org

  8. Passive (Fabric) EP Listening endpoint Connection-oriented protocols Wildcard listen across multiple NICs / ports Bind to address to restrict listen Listen may migrate with address Passive EP Fabric EQ Domain 8 www.openfabrics.org

  9. Fabric EQ Associated with passive endpoint(s) Reports connection requests Could be used to report fabric events Passive EP Fabric EQ Domain 9 www.openfabrics.org

  10. Resource Domain Boundary for resource sharing Physical or logical NIC Command queue Container for data transfer resources A provider may define multiple domains for a single NIC Dependent on resource sharing Passive EP Fabric EQ Domain 10 www.openfabrics.org

  11. Domain Address Vectors Maintains list of remote endpoint addresses Map native addressing Index rank -based addressing Resolves higher-level addresses into fabric addresses Native addressing abstracted from user Handles address and route changes AV Active EP EQ Domain EQ Group Counter MR 11 www.openfabrics.org

  12. Domain Endpoints Data transfer portal Send / receive queues Command queues Ring buffers Buffer dispatching Multiple types defined Connection-oriented / connectionless Reliable / unreliable Message / stream AV Active EP EQ Domain EQ Group Counter MR 12 www.openfabrics.org

  13. Domain Event Queues Reports asynchronous events Unexpected errors reported out of band Events separated into EQ domains CM, AV, completions 1 EQ domain per EQ Future support for merged EQ domains AV Active EP EQ Domain EQ Group Counter MR 13 www.openfabrics.org

  14. EQ Groups Collection of EQs Conceptually shares same wait object Grouping for progress and wait operations AV Active EP EQ Domain EQ Group Counter MR 14 www.openfabrics.org

  15. Domain Counters Provides a count of successful completions of asynchronous operations Conceptual HW counter Count is independent from an actual event reported to the user through an EQ AV Active EP EQ Domain EQ Group Counter MR 15 www.openfabrics.org

  16. Domain Memory Regions Memory ranges accessible by fabric resources Local and/or remote access Defines permissions for remote access AV Active EP EQ Domain EQ Group Counter MR 16 www.openfabrics.org

  17. Interface Synopsis Operations associated with identified classes General functionality, versus detailed methods The full set of methods are not defined here Detailed behavior (e.g. blocking) is not defined Identify missing and unneeded functionality Mapping of functionality to objects Use timeboxing to limit scope of interfaces to refine by a target date 17 www.openfabrics.org

  18. Base Class Close Bind Destroy / free object Create an association between two object instances Fencing operation that completes only after previously issued asynchronous operations have completed (~fcntl) set/get low-level object behavior Open provider extended interfaces Sync Control I/F Open 18 www.openfabrics.org

  19. Fabric Domain Endpoint Open a resource domain Create a listening EP for connection-oriented protocols Open an event queue for listening EP or reporting fabric events EQ Open 19 www.openfabrics.org

  20. Resource Domain Obtain domain specific attributes Create an address vector, event or completion counter, event queue, endpoint, shared receive queue, or EQ group Query Open AV, EQ, EP, SRQ, EQ Group MR Ops Register data buffers for access by fabric resources 20 www.openfabrics.org

  21. Address Vector Insert Remove Insert one or more addresses into the vector Remote one or more addresses from the vector Return a stored address Convert an address into a printable string Lookup Straddr 21 www.openfabrics.org

  22. Base EP Enable Cancel Getopt Setopt Enables an active EP for data transfers Cancel a pending asynchronous operation (~getsockopt) get protocol specific EP options (~setsockopt) set protocol specific EP options 22 www.openfabrics.org

  23. Passive EP Getname (~getsockname) return EP address Listen Start listening for connection requests Reject Reject a connection request 23 www.openfabrics.org

  24. Active EP CM Connection establishment ops, usable by connection-oriented and connectionless endpoints 2-sided message queue ops, to send and receive messages 1-sided RDMA read and write ops 2-sided matched message ops, to send and receive messages (conceptual merge of messages and RMA writes) 1-sided atomic ops Triggered Deferred operations initiated on a condition being met MSG RMA Tagged Atomic 24 www.openfabrics.org

  25. Event Queue Read Retrieve a completion event, and optional source endpoint address data for received data transfers Retrieve event data about an operation that completed with an unexpected error Insert an event into the queue Directs the EQ to signal its wait object when a specified condition is met Converts error data associated with a completion into a printable string Read Err Write Reset Strerror 25 www.openfabrics.org

  26. EQ Group Poll Wait Check EQs for events Wait for an event on the EQ group 26 www.openfabrics.org

  27. Completion Counter Retrieve a counter s value Increment a counter Set / clear a counter s value Wait until a counter reaches a desired threshold Read Add Set Wait 27 www.openfabrics.org

  28. Memory Region Desc (~lkey) Optional local memory descriptor associated with a data buffer (~rkey) Protection key against access from remote data transfers Key 28 www.openfabrics.org

  29. Architectural Semantics Need refining Progress Ordering - completions and data delivery Multi-threading and locking model Buffering Function signatures and semantics Once defined, object and interface semantics cannot change semantic changes require new objects and interfaces 29 www.openfabrics.org

  30. Progress Ability of the underlying implementation to complete processing of an asynchronous request Need to consider ALL asynchronous requests Connections, address resolution, data transfers, event processing, completions, etc. HW/SW mix All(?) current solutions require significant software components 30 www.openfabrics.org

  31. Progress Support two progress models Automatic and implicit Separate operations as belonging to one of two progress domains Data or control Report progress model for each domain SAMPLE Implicit Automatic Data Software Hardware offload Control Software Kernel services 31 www.openfabrics.org

  32. Automatic Progress Implies hardware offload model Or standard kernel services / threads for control operations Once an operation is initiated, it will complete without further user intervention or calls into the API Automatic progress meets implicit model by definition 32 www.openfabrics.org

  33. Implicit Progress Implies significant software component Occurs when reading or waiting on EQ(s) Application can use separate EQs for control and data Progress limited to objects associated with selected EQ(s) App can request automatic progress E.g. app wants to wait on native wait object Implies provider allocated threading 33 www.openfabrics.org

  34. Ordering Applies to a single initiator endpoint performing data transfers to one target endpoint over the same data flow Data flow may be a conceptual QoS level or path through the network Separate ordering domains Completions, message, data Fenced ordering may be obtained using fi_sync operation 34 www.openfabrics.org

  35. Completion Ordering Order in which operation completions are reported relative to their submission Unordered or ordered No defined requirement for ordered completions Default: unordered 35 www.openfabrics.org

  36. Message Ordering Order in which message (transport) headers are processed I.e. whether transport message are received in or out of order Determined by selection of ordering bits [Read | Write | Send] After [Read | Write | Send] RAR, RAW, RAS, WAR, WAW, WAS, SAR, SAW, SAS Example: fi_order = 0 // unordered fi_order = RAR | RAW | RAS | WAW | WAS | SAW | SAS // IB/iWarp ordering 36 www.openfabrics.org

  37. Data Ordering Delivery order of transport data into target memory Ordering per byte-addressable location I.e. access to the same byte in memory Ordering constrained by message ordering rules Must at least have message ordering first 37 www.openfabrics.org

  38. Data Ordering Ordering limited to message order size E.g. MTU In order data delivery if transfer <= message order size Message order size = 0 No data ordering Message order size = -1 All data ordered 38 www.openfabrics.org

  39. Other Ordering Rules Ordering to different target endpoints not defined Per message ordering semantics implemented using different data flows Data flows may be less flexible, but easier to optimize for Endpoint aliases may be configured to use different data flows 39 www.openfabrics.org

  40. Multi-threading and Locking Support both thread safe and lockless models Compile time and run time support Run-time limited to compiled support Lockless (based on MPI model) Single single-threaded app Funneled only 1 thread calls into interfaces Serialized only 1 thread at a time calls into interfaces Thread safe Multiple multi-threaded app, with no restrictions 40 www.openfabrics.org

  41. Buffering Support both application and network buffering Zero-copy for high-performance Network buffering for ease of use Buffering in local memory or NIC In some case, buffered transfers may be higher- performing (e.g. inline ) Registration option for local NIC access Migration to fabric managed registration Required registration for remote access Specify permissions 41 www.openfabrics.org

More Related Content