OFI SW - Progress Sean Hefty - Intel Corporation.

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Monitors Chapter 7. The semaphore is a low-level primitive because it is unstructured. If we were to build a large system using semaphores alone, the.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
Chapter 7 Protocol Software On A Conventional Processor.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
Virtual Memory Virtual Memory Management in Mach Labels and Event Processes in Asbestos Ingar Arntzen.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
Precept 3 COS 461. Concurrency is Useful Multi Processor/Core Multiple Inputs Don’t wait on slow devices.
Self Adaptive Software
Chapter 11 Operating Systems
Implications for Programming Models Todd C. Mowry CS 495 September 12, 2002.
1 I/O Management in Representative Operating Systems.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Scheduler Activations Jeff Chase. Threads in a Process Threads are useful at user-level – Parallelism, hide I/O latency, interactivity Option A (early.
Stan Smith Intel SSG/DPD June, 2015 Kernel Fabric Interface KFI Framework.
Chapter 4: Threads Adapted to COP4610 by Robert van Engelen.
Open Fabrics Interfaces Architecture Introduction Sean Hefty Intel Corporation.
OpenFabrics 2.0 Sean Hefty Intel Corporation. Claims Verbs is a poor semantic match for industry standard APIs (MPI, PGAS,...) –Want to minimize software.
Interrupts Signal that causes the CPU to alter its normal flow on instruction execution ◦ frees CPU from waiting for events ◦ provides control for external.
Martin Kruliš by Martin Kruliš (v1.0)1.
Architectural Support for Fine-Grained Parallelism on Multi-core Architectures Sanjeev Kumar, Corporate Technology Group, Intel Corporation Christopher.
OpenFabrics 2.0 or libibverbs 1.0 Sean Hefty Intel Corporation.
Scalable Fabric Interfaces Sean Hefty Intel Corporation OFI software will be backward compatible.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Fabric Interfaces Architecture Sean Hefty - Intel Corporation.
Scalable RDMA Software Solution Sean Hefty Intel Corporation.
GTK Binding for Alice Robert Grabowski Eine GTK-Schnittstelle für Alice.
Time Management.  Time management is concerned with OS facilities and services which measure real time, and is essential to the operation of timesharing.
WHDC PowerPoint Template Notes & Handouts
Fabric Interfaces Architecture Sean Hefty - Intel Corporation.
Updates and Common Questions Asked by Simulation Developers Peter Shier Architect Windows Devices and Storage Technologies
Stan Smith Intel SSG/DPD February, 2015 Kernel OpenFabrics Interface Initialization.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 4 Computer Systems Review.
OFI SW Sean Hefty - Intel Corporation. Target Software 2 Verbs 1.x + extensions 2.0 RDMA CM 1.x + extensions 2.0 Fabric Interfaces.
OpenFabrics Interface WG A brief introduction Paul Grun – co chair OFI WG Cray, Inc.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Platform Abstraction Group 3. Question How to deal with different types hardware and software platforms? What detail to expose to the programmer? What.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
© 2004, D. J. Foreman 1 Device Mgmt. © 2004, D. J. Foreman 2 Device Management Organization  Multiple layers ■ Application ■ Operating System ■ Driver.
OpenFabrics 2.0 rsockets+ requirements Sean Hefty - Intel Corporation Bob Russell, Patrick MacArthur - UNH.
Open Fabrics Interfaces Software Sean Hefty - Intel Corporation.
SEDA. How We Got Here On Tuesday we were talking about Multics and Unix. Fast forward years. How has the OS (e.g., Linux) changed? Some of Multics.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Homework-6 Questions : 2,10,15,22.
Stan Smith Intel SSG/DPD June, 2015 Kernel Fabric Interface Kfabric Framework.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Kendo: Efficient Deterministic Multithreading in Software M. Olszewski, J. Ansel, S. Amarasinghe MIT to be presented in ASPLOS 2009 slides by Evangelos.
SC’13 BoF Discussion Sean Hefty Intel Corporation.
GPU Computing CIS-543 Lecture 10: Streams and Events
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Providing Security for Embedded Devices Through Virtualization
Heterogeneous Programming
Fabric Interfaces Architecture – v4
Task Scheduling for Multicore CPUs and NUMA Systems
Persistent memory support
Monitors Chapter 7.
Design pattern for cloud Application
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
Process Description and Control
Monitors Chapter 7.
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
Process Description and Control
Monitors Chapter 7.
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
System Calls System calls are the user API to the OS
VIRTIO 1.1 FOR HARDWARE Rev2.0
Presentation transcript:

OFI SW - Progress Sean Hefty - Intel Corporation

Overview 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 2 All(?) current solutions require significant software components

Decisions Single or multiple progress models –Separate at provider level –Separate based on operation Performance implications –Visibility to the application –Performance versus ease of use 3

Current Proposal Concepts Define multiple progress models –Visible by application –Provider indicates optimal mode for their HW –See following slides Application can modify progress model –Trade-off in favor of ease of use Progress is at provider level –May be too coarse 4

Auto-Progress Underlying implementation will make progress on a request with no explicit intervention from the app –Necessary work may be done within directly related function call May require provider thread allocation –Includes kernel support 5 Simplest solution for app

Implicit Progress Model Underlying implementation uses application thread to make forward progress Progress depends on app calling into provider –Any function is usable –Progress may be limited to a specific ‘progress domain’ (e.g. specific endpoint) Well defined behavior needed to prevent deadlock –E.g. provider may not block application thread for an arbitrary time 6

Explicit Progress Model Provider exposes ‘progress’ call that application must invoke to advance progress Advances progress across all provider resources associated with the app 7

Notification Methods If software advances progress, callbacks may be the highest performing method of reporting completions –Immediate notification from progressing thread –Restricts what an application can do from the callback –Application queuing of an event may be more efficient than provider queuing event Event queues are ideal if hardware advances progress 8

Discussion enum fi_progress { FI_PROGRESS_AUTO, FI_PROGRES_INDIRECT, FI_PROGRESS_EXPLICIT }; int fi_progress(domain, enum fi_progress progress); int fi_control(domain, FI_[START|STOP]_PROGRESS, flags); 9 How to expose this?