/pmevo-eval

PLDI'20 Research Artifact for the PMEvo Project

Primary LanguagePythonMIT LicenseMIT

Evaluator for PMEvo, based on PMEvo artifact

Original README below.

This fork is intended to offer an easy Python interface to evaluate Palmed against PMEvo. All credit goes to the original authors — see below.

Artifact for "PMEvo: Portable Inference of Port Mappings for Out-of-Order Processors by Evolutionary Optimization"

Also see the project website and the paper.

A full pre-built version of this VM is available here for download. A smaller VM without pre-built Ithemal container is available here.

This artifact was created to be used as a Vagrant Virtual Machine. Usage without the VM is possible, but might require you to apply some steps from vm_setup/bootstrap.sh and vm_setup/post_install.sh. In particular, you need to set the PMEVO_BASE environment variable to the absolute path of the vm_setup/pmevo directory.

Setting up the VM

The artifact is provided as a Vagrant Virtual Machine using the Virtual Box provider. To run it, you will need to install Vagrant as described here:

https://www.vagrantup.com/intro/getting-started/install.html

and also Virtual Box as available here:

https://www.virtualbox.org/

Depending on your hardware platform, it might be necessary to enable virtualization options in your system's BIOS to use virtual box.

Use the following command to build the VM:

cd vm_setup
vagrant up

Once this is done, ssh to the VM and run the post-install script:

vagrant ssh
./post_install.sh

Next, leave the VM and package it up:

exit
vagrant package --output ../pmevo-artifact.box

Take the resulting box and put it into an archive together with the shipping vagrant file:

cd ..
tar -czvf pmevo-artifact.tgz Vagrantfile pmevo-artifact.box

Done!