Persistent Memory PMEM: Architecture to Advanced Development

Persistent Memory PMEM: Architecture to Advanced Development, Unlock the power of Persistent Memory—transform how data is stored, managed, accessed in modern computing environments.
Course Description
Course Introduction:
Dive deep into the world of Persistent Memory (PMEM), a revolutionary technology that bridges the gap between traditional memory and storage. This course is designed to equip you with the knowledge and practical skills needed to harness PMEM for high-performance applications. Whether you’re a developer, systems architect, or tech enthusiast, you’ll explore PMEM’s architecture, development kits, and advanced programming techniques to push the boundaries of data management.
Section 1: Foundations of Persistent Memory
Section Overview:
This section lays the groundwork, introducing Persistent Memory’s architecture, its unique characteristics, and the hardware and software ecosystems that support it.
- Lecture 1: Welcome to the World of Persistent Memory
Get an overview of the course objectives, learning outcomes, and what you can expect in the coming modules. - Lecture 2: What Is Persistent Memory?
Understand the fundamental concept of PMEM, how it differs from traditional memory and storage, and why it’s a game-changer. - Lecture 3: The Significance of Persistent Memory
Explore the critical role PMEM plays in modern computing, its hardware requirements, and the software ecosystem that supports it. - Lecture 4: Memory vs. Storage: Understanding the Divide
Delve into the technical differences between memory and storage, and how PMEM blurs these lines to offer the best of both worlds. - Lecture 5: Core Characteristics of Persistent Memory
Learn about the unique features of PMEM, such as low latency, high endurance, and data persistence, which make it ideal for specific applications. - Lecture 6: Hardware Platforms That Support PMEM
Identify the hardware that enables PMEM, including supported devices and system configurations. - Lecture 7: OS-Level Support for Memory and Storage
Discover how operating systems interact with PMEM, including support mechanisms and performance optimizations. - Lecture 8: PMEM as Block Storage: A New Perspective
Understand how PMEM can be utilized as block storage, and its impact on data performance and reliability.
Section 2: Mastering PMEM Development Kit
Section Overview:
This section transitions from theory to hands-on practice, introducing you to the PMEM Development Kit and guiding you through advanced development concepts.
- Lecture 9: The Basics of Atomic Updates
Learn how atomic updates work in PMEM and their importance for data consistency. - Lecture 10: Transactions in Persistent Memory
Explore transaction management techniques in PMEM to ensure data integrity during failures. - Lecture 11: Volatile Libraries: What They Are and Why They Matter
Understand volatile libraries and their role in PMEM applications. - Lecture 12: Persistent Libraries for Robust Applications
Dive into the structure and use of persistent libraries to build reliable PMEM-based systems. - Lecture 13: Practical Use of Persistent Libraries
Apply your knowledge in real-world scenarios by working with persistent libraries. - Lecture 14: Mapping Files to Persistent Memory
Learn how to efficiently map files to PMEM for optimal performance. - Lecture 15: Copying Data to Persistent Memory
Master techniques for safely copying data into PMEM with minimal performance overhead. - Lecture 16: The Art of Flushing: Separating Steps for Efficiency
Understand the flushing mechanism in PMEM and how to optimize it for better data reliability.
Section 3: Advanced PMEM Programming with libpmemobj, libpmemobj-cpp, and pmemkv
Section Overview:
In this advanced section, we’ll dive into specialized libraries and frameworks for PMEM development, focusing on practical applications and performance optimization.
- Lecture 17: Demystifying libpmemobj
Get to know libpmemobj, a core library for managing persistent objects in memory. - Lecture 18: Memory Pools Explained
Understand memory pools and their critical role in efficient PMEM resource management. - Lecture 19: Scaling with Memory Poolsets
Explore how memory poolsets allow for scalable and flexible PMEM applications. - Lecture 20: Leveraging Metaprogramming in PMEM
Discover how metaprogramming techniques can enhance PMEM application performance. - Lecture 21: Navigating C++ Standard Limitations with PMEM
Learn to overcome C++ standard limitations when working with PMEM. - Lecture 22: Inside PMEMKV Architecture
Delve into the architecture of pmemkv, a key-value store optimized for persistent memory. - Lecture 23: Building a Phonebook App with PMEMKV
Apply your knowledge to create a practical phonebook application using pmemkv. - Lecture 24: The Future of PMEM in the Cloud
Explore the exciting potential of PMEM in cloud computing environments and how it’s shaping the future. - Lecture 25: Wrapping Up: Course Conclusion and Key Takeaways
Reflect on what you’ve learned, review key concepts, and discover how to continue your PMEM journey beyond this course.