OpenFAM is an application programming interface (API) for use in
systems that contain fabric-attached memory (FAM). The API is close to
and is patterned after APIs provided by one-sided partitioned global
address space (PGAS) libraries such as OpenSHMEM.
This maintains ease of use for application writers already familiar
with those libraries. The primary differences between OpenFAM and
other PGAS libraries are:
- FAM is no longer associated with a specific processing element
(PE), and can be addressed directly from any PE without the
cooperation and/or involvement of any other PE.
- Because state in FAM can survive program termination, additional
interfaces are present to manage FAM data beyond the lifetime of a
single program.
- The independence of state maintained in FAM provides additional
capability for managing application availability in the presence
of component failure.
The latest release of OpenFAM is 3.0.0, and includes the following enhancements:
- Support for multi-threaded applications.
- Support for volatile and persistent memory types.
- Data item interleaving for enhanced performance and large data items.
- Support for multiple I/O contexts to enable non-blocking I/Os to be grouped for better processor utilization.
- New APIs to check progress of non-blocking I/Os.
- New APIs to enable data item backup and restore to/from archival media.