LibRDPMA provides a set of tools to analyze the behavior when accessing NVM (i.e., Intel Optane DC persistent memory) with RDMA. These including benchmarks for one-sided RDMA and two-sided RDMA and tools to analyze NVM behavior.
Building the tools of librdpma is straightforward since it will automatically install dependencies. Specifically, using the following steps:
- Clone the project with
git clone https://github.com/SJTU-IPADS/librdpma.git --recursive - Make sure
cmakeis installed. Then executecmake . - Build the project with
make.
For the built binaries, ./nvm_rrtserver and ``./nvm_rrtclientare used for evaluating two-sided performance, while./nvm_server` and `./nvm_client` are used for evaluating one-sided performance. We provide scripts to run experiments. For how to configure these binaries, please use `binary --help` to check.
We've also provide scripts to run experiments. For example, to run one-sided evaluations, use the following:
cd scripts; ./bootstrap-proxy.py -f run_one.toml; Note thatrun_one.tomlshould be configured according to your hardawre setting. It is straightforward to configure it based on its content.
We provide some tools for make system configurations or monitor NVM statistics.
-
To tune DDIO setups, use
cd ddio_tools; cmake; make;and then usesetup_dca. -
To monitor NVM read/write amplications, use
cd nvm; python analysis.py. Note thatipmctlshould be installed.
To check the results of these benchmarks, please refer to our paper:
[ATC] Characterizing and Optimizing Remote Persistent Memory with RDMA and NVM. Xingda Wei and Xiating Xie and Rong Chen and Haibo Chen and Binyu Zang. 2021 USENIX Annual Technical Conference.