The Persistent Memory Programming Model