Programando para Memória Persistente: Dificuldades, Armadilhas e Desempenho - Bastelli, Lucas; Baldassin, Alexandro; Francesquini, Emilio (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD); 2022: Anais do XXIII Simpósio em Sistemas Computacionais de Alto Desempenho, 2022)
A tecnologia de memória persistente (PM) provê endereçamento por byte com latência de acesso relativamente próxima às das memórias voláteis (DRAM). Contudo, programar com PM traz novos desafios não encontrados em ambientes típicos com memória volátil. Neste contexto, este artigo apresenta duas contribuições principais. Primeiramente, analisamos qualitativamente as dificuldades e armadilhas de se programar com a PMDK, a biblioteca oficial da Intel para programação do Optane DC (seu dispositivo de armazenamento persistente). Esta análise é o resultado das nossas experiências coletadas durante o desenvolvimento de um conjunto de estruturas de dados típicas de aplicações com persistência de dados. A segunda contribuição é uma análise de desempenho considerando implementações persistentes e voláteis dessas estruturas de dados para DRAM, Optane DC e SSD. Os resultados experimentais mostram que o Optane DC, apesar de em média ser 5,54× mais lento que o dispositivo volátil (DRAM), supera o SSD em 14× no pior caso.