Alaya-in-Matrix / MACE

code for the ICML2018 paper "Batch Bayesian Optimization via Multi-objective Acquisition Ensemble for Automated Analog Circuit Design"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

README

About

Parallel bayesian optimization via multi-objective acquisition ensemble

Python version

The code in this repo is used to run the experiments in the paper, I recently also implemented a python version that supports MCMC integration of the GP hyperparameters, the python version has less dependencies and is more user-friendly. The code is hosted here

Dependencies

  • Publicly available:
    • Cmake (for build and install)
    • Eigen
    • Boost
    • OpenMP
    • nlopt
    • gsl
  • Libraries written by me, used as git submodules:

Build and install

mkdir _build
cd _build
cmake .. -DCMAKE_BUILD_TYPE=release                             \
         -DMYDEBUG=OFF                                          \ 
         -DBOOST_ROOT=/path/to/your/boost/library               \
         -DEigen3_DIR=/path/to/your/eigen/share/eigen3/cmake    \
         -DGSL_ROOT_DIR=/path/to/your/gsl                       \
         -DNLOPT_PATH=/path/to/your/nlopt                       \
         -DCMAKE_INSTALL_PREFIX=/path/you/want/to/install

make
make install

Run

After successfully installed the MACE package, you should already have mace_bo in your path, you can go to demo and run the run.sh script

  • Configurations are written in conf, the first line workdir should be modified
  • The objective function is defined in run.pl
    • run.pl read the param file as design variables
    • run.pl write the objective value into result.po

TODO

  • Use TOML as config
  • Constraint handling

About

code for the ICML2018 paper "Batch Bayesian Optimization via Multi-objective Acquisition Ensemble for Automated Analog Circuit Design"


Languages

Language:C++ 100.0%