|
Memclave Artifact Documentation
|
The first step is to build all subkernels required for our evaluation. On your development environment, change into the ime directory. There you will find a script build.sh, which compiles all required subkernels and creates a .tar archive out of them. The script requires that you have the memclave docker container installed. Running the script should take no longer than a minute:
Move the ime-client-library folder into your memclave environment, if it is not already present there. Move the subkernels.tar file, produced in the last step, into the ime-client-library folder. Now you should be able to execute the build.sh script, which compiles the guest side portions of our benchmarks. The build process should take no longer than a minute:
With compilation finished, you should be able to run all benchmarks in your memclave environment, except for one which is described below by using the run.sh script. Simply type
into your terminal.
There is one other measurement that needs to be taken using a modified version of the TL, which reports performance stats while loading subkernels in MRAM. We provide a modified boot.sh script to boot up the hypervisor with the modified TL. Shut down the memclave environment and boot it up again using the boot-stats.sh script. Once booted, perform the same setup steps, such as loading the kernel driver. Now change into your ime-client-library directory and execute
which will perform the final memclave benchmark.
To measure baseline performance, some of the same benchmarks need to be build on the execution environment. Move the prim-benchmarks folder of the artifact to the execution environment. Then move the ime-client-library folder into the prim-benchmarks folder on your execution environment. The latter is needed because the MRAM benchmark is written agnostic to whether Memclave or UPMEM is used as the guest-side library. There is no build step for the baseline, builds are handled just before benchmark execution. Use the run.sh script to execute all benchmarks:
Both the memclave and UPMEM benchmarks should have generated a file output.tar. Move those to your development environment, and rename them upmem.tar and memclave.tar respectively. Then run the script plotting/plot_all.sh to generate all figures present in the paper, and to print out table contents into the terminal: