I'm very pleased to announce that NVML version 1.0 has been released!!!
The NVML 1.0 API is now complete and stable. The libraries are fully functional and have been validated for production quality. Man pages are all up to date.
During the last quarter, we've been focused mostly on improving the performance of libpmemobj. Thanks to Piotr Balcer, who did the refactoring of the internal object containers, we were able to get significant performance gain for selected workloads.
We also decided to make some API changes that were needed for proper implementation of libpmemobj C++ bindings (i.e. extending type numbers to 64-bit).
Other changes were required to address issues related to differences between Linux and Windows (like incompatible off-t definition), allowing us to have a uniform NVML API on both OS-es.
The implementation of prototype
C++ bindings for libpmemobj is now complete and the code is pretty well-documented. The web-based version of the documentation will be available soon on
http://pmem.io.
Note that this is the experimental API - not to be used in production. It is very likely that, based on the feedback from community, we'll be still modifying and improving it for the next few months.
In the near future, we plan to add yet another NVM library (libpmempool), which would provide similar functionality as pmempool utility.
We would also like to add a few more examples demonstrating how to use the libpmemobj C++ API.
And last but not least, the first patches introducing support for Windows will be merged soon.
The detailed list of changes since version 0.4 can be found here:
The source tarballs and pre-built packages for NVM Libraries version 1.0 are available in the
GitHub releases area.
The tagged source could be also fetched directly from our repository:
-krzycz