Validation Methodology for Libraries in PMDK


This video features Intel’s approach to testing PMDK libraries. The video lists different kinds of testing PMDK validation team uses to ensure the best quality for the libraries.


Hi, I'm Usha Upadhyayula from Intel. And in this video, I'll talk about the methodology we use in validating Persistent Memory Development Kit libraries also known as PMDK libraries.

Along with developing these libraries, Intel developed a wide range of testing mechanisms. Our first priority is a functional group of tests where we ensure all features work as advertised. The second set of tests we execute are unit tests, which are prepared by the development team. The third set is a performance and benchmarking test suite to ensure these libraries do not degrade performance of the application. Finally, we run system-level tests that include validating some real-world application proof-points that use PMDK libraries.

We use Jenkins as the automation platform, striving for 100% automation of all our tests. Our automation test framework facilitates minimal effort to test these libraries. Our tests are cross-platform, meaning they work on different flavors of Linux* and Windows*. And our parameterized tests allow us to cover many paths with the same code.

Also, we use continuous integration to achieve daily runs, containing basic acceptance tests, functional tests, and system tests-- weekly execution covering the additional scope of performance and security checks-- and on-demand checks for custom branches. In addition, we use code coverage analysis and use a set of synthetic benchmarks we developed for persistent memory to test these libraries. From the security-testing perspective, we use static analysis and fuzzing testing to ensure that these libraries have no vulnerabilities in the code.

We started open-sourcing some of these tests and plan to open-source more in the future. We believe persistent memory adoption is imminent and we want to provide the best experiences to all users of PMDK libraries.

Thank you for watching. We hope you get a chance to explore the persistent memory repository on GitHub* and provide us feedback. Please don't forget to Like this video and subscribe.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804