Libfabric is the next-generation Linux library being developed by an open source consortium of vendors and academic researchers that implements the OpenFabrics Interfaces, specifically designed to expose application-focused networking functionality to high performance applications (e.g., MPI, PGAS, SHMEM, datacenter applications, etc.).
I’ve described libfabric in a few prior blog entires, and how we actively support Cisco usNIC functionality in libfabric.
The title of the paper is “A Brief Introduction to the OpenFabrics Interfaces – A New Network API for Maximizing High Performance Application Efficiency,” which is quite a mouthful.
It’s a high-level introduction of the abstractions and interfaces that are available in libfabric. Here’s the abstract of the paper (click here to download the PDF):
OpenFabrics Interfaces (OFI) is a new family of application program interfaces that exposes communication services to middleware and applications. Libfabric is the first member of this family of interfaces and was designed under the auspices of the OpenFabrics Alliance by a broad coalition of industry, academic, and national labs partners over the past two years.
Building and expanding on the goals and objectives of the verbs interface, libfabric is specifically designed to meet the performance and scalability requirements of high performance applications such as Message Passing Interface MPI libraries, Symmetric Hierarchical Memory Access (SHMEM) libraries, Partitioned Global Address Space (PGAS) programming models, Database Management Systems (DBMS) and enterprise applications running in a tightly coupled network environment.
A key aspect of libfabric is that it is designed to be independent of the underlying network protocols as well as the implementation of the networking devices. This paper provides a brief discussion of the motivation for creating a new API and describes the novel requirements gathering process that was used to drive its design. Next, we provide a high level overview of the API architecture and design, and finally we discuss the current state of development, release schedule and future work.