Files
Abstract
The increased size of data sets is driving the need for increased memory storage andspeed. Persistent memory, PMEM, has emerged as a new solution to the problem. It
places itself in between main memory and storage in the memory hierarchy. PMEM
offers the ability to increase the amount of addressable memory or the use of dynamic
random access memory, DRAM, as a hardware managed cache with PMEM acting as
main memory for the machine. In both cases, it becomes paramount to understand
the strengths and weaknesses of PMEM. As PMEM is different hardware from DRAM,
it has different performance which implies that code written for DRAM might not be
optimized for PMEM. This manuscript delves into the performance metrics of PMEM
to determine its effectiveness for standard graph algorithms. It also will serve as a
guideline as to how to optimally use PMEM and when PMEM becomes advantageous
to use.
To overcome the physical storage limits of memory, solutions such as distributed
computing and out-of-core computing arose. Distributed computing allows multiple
nodes of a computing cluster to compute and communicate in parallel. The disadvantage of this approach becomes the communication overhead between nodes. Out-ofcore computing adds layers of slower memory closer to the node to avoid distributed
computing. The additional memory typically comes in the form of hard drives or
solid-state drives, SSD. Because of how programs interact with drives, code needs
to be rewritten to take advantage of this approach, including accessing the memory, reordering the data in a more efficient read order, and localizing computations
to minimize reading from drives. PMEM offers the first solution in which current
programs can fully utilize the memory with little to no changes in code. This of-iv
fers a plug-and-play solution where distributed computing and out-of-core computing
cannot.
This manuscript measures the performance of PMEM by running benchmarks to
measure bandwidth, latency, and graph algorithm performance. Each benchmark is
ran on PMEM and DRAM to compare against each other. The graphs selected for
benchmarking are a combination of real-world graphs. Results shows that PMEM
can be utilized to achieve performance comparable to DRAM.