OpenFAM release notes
These notes summarize the different releases of OpenFAM. A more detailed list of list of features, enhancements and bug fixes are added to the source tree in all the released versions, and are provided in the corresponding NEWS.md file. Build and installation instructions are listed in the corresponding README.md file located in the source tree.OpenFAM version 2.0 (release v2.0.0)
The current version of OpenFAM is 2.0. It contains the following changes and enhancements over version 1.0:
- Scalability improvements: This version supports a larger pool of memory by allowing multiple memory servers to be used. See services for more details.
- Performance improvements: Memory management and metadata operations have been optimized.
- Background worker threads (unused in OpenFAM 1.0) were disabled from the memory service.
- Allocation performance was improved by moving the memset operation to zero allocated memory from
fam_allocate()
tofam_deallocate()
path. - Regions can span multiple memory servers, thus reducing network bottlenecks when multiple data items within the same region are used.
- OpenFAM APIs changes:
fam_size
has been replaced withfam_stat
.fam_copy
has been changed to allow data copies between regions, as well as within a region.- The return type was changed from
int
tovoid
for the following APIs:fam_initialize, fam_resize_region, fam_change_permissions, fam_put_blocking, fam_get_blocking, fam_gather_blocking, fam_scatter_blocking
. fam_barrier_all
has been added as a supported API.
- Exception and error handling was simplified. All OpenFAM APIs returns only one exception type on error, i.e,
Fam_Exception
.
OpenFAM version 1.0 (release v0.4.0)
- Initial public release of OpenFAM reference implementation
- Memory allocator models implemented: "Shared memory model" to be used on scale-up platforms and "Memory server model" to be used on scale-out (cluster) platforms.
- Memory server model uses libfabric and support sockets, verbs and psm providers.