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.
