GenMap requires some additional packages. So, you have to have root privileges to install them.
- CentOS 7
- CentOS 8
We provide a docker image to use this tool easily. So, if you can use docker, we recommend using it. You will be freed from complicated environment construction. Also, it will be helpful to use GenMap in another OS. See HowToUseDocker for more details.
- git
- python36
- python36-devel
- python36-libs
- python36-tkinter
- graphviz
We recommend installing GenMap on a virtual python environment to avoid python library conflicts.
Install the above packages (as necessary)
For CentOS7,
$ yum install git python36 python36-devel python36-libs python36-tkinter graphviz cmake3
For CentOS8,
$ dnf install git python36 python36-devel python3-libs python3-tkinter graphviz cmake3
Perhaps, you need to add a yum repository to install python3.
$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
- Build a virtual python environment
$ pyvenv-3.6 GenMap_env
It will create a "GenMap_env" directory. You can use your favorite directory name.
- Activate the virtual environment
$ cd GenMap_env
$ source bin/activate
If you want to exit this environment, just execute deactivate
command.
- Install GenMap
(GenMap_env) $ git clone git@github.com:hungalab/GenMap.git
- Install Python Libraries
GenMap requires the following python libraries. Recommended version for each library is in the bracket.
- deap (1.0.1)
- pulp (2.4)
- networkx (2.2)
- tqdm (4.31.1)
- matplotlib (3.0.0)
- pydot (1.4.1)
- pygmo (2.9)
- prettytable (0.7.2)
- cvxpy (1.1.10)
- seaborn (0.11.1)
- Optional
- llvmlite (0.30.0) (necesssary to export configuration as LLVM-IR)
- pyeda (0.28.0) (necessary for configuration compression using espresso)
- mosek (9.2.38) (necessary to use mosek's solvers)
(GenMap_env) $ pip3 install (package_name)[==version]
or
(GenMap_env) $ pip3 install -r requirements.txt (in this repo)
# Perhaps a version conflict will occur between numpy and cvxpy
# In this case, please install only numpy at first. Then, try to install the other packages with requirements.txt
# The optional packages are commented out