This document walks through the necessary steps to reproduce the results
reported in paper #112018-00062 submitted for possible publication in
Mathematical Programming Computation. Hence, the below bash commands
are written for their servers, and should be modified accordingly for other *nix
platforms.
We assume that the host machine has the following installed:
curl,configureandmakefor building CMake,- a toolchain that supports C++11 for building and using POLO,
boost'sprogram_optionsmodule for building the test scripts,curlandbunzip2for downloading and unpacking thercv1dataset, and,pdflatexwithmathtoolsandpgfplotspackages for generating the figures.
Before anything else, we should make a local directory under $HOME that
contains binaries, libraries and configuration files of local installations of
the programs:
mkdir -p $HOME/local/{bin,etc,include,lib,share}
ln -s lib $HOME/local/lib64Then, we should modify $HOME/.bash_profile so that the environment variables
PATH and LD_LIBRARY_PATH point to the correct locations:
# $HOME/.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$HOME/local/bin:$PATH
export PATH
LD_LIBRARY_PATH=$HOME/local/lib
export LD_LIBRARY_PATHAfter saving the file, we need to source $HOME/.bash_profile to make the
changes valid for the current session.
NOTE. On some systems, we might need to set
DYLD_FALLBACK_LIBRARY_PATH
instead of LD_LIBRARY_PATH above.
Now that we have setup the paths, we can proceed with the installation of CMake.
POLO requires CMake (at least v3.9.0) to install its headers and C-API while
managing its dependencies. Moreover, this repository also contains a superbuild
CMake file to automate the dependency management and generation of the figures.
To install CMake from source, we issue the following on the terminal:
# Build and install CMake from source
curl --output /tmp/cmake.tar.gz \
https://gitlab.kitware.com/cmake/cmake/-/archive/v3.9.0/cmake-v3.9.0.tar.gz
tar xzf /tmp/cmake.tar.gz -C /tmp
cd /tmp/cmake-v3.9.0
./configure --prefix=$HOME/local \
--datadir=share/cmake \
--docdir=doc/cmake \
--no-qt-gui
make
make installNOTE. At this point, we might need to logoff and login back to make
environment changes valid so that which cmake points to the local installation
with cmake --version reporting 3.9.0.
Having successfully installed CMake, we finaly clone this repository and initiate the superbuild:
git clone https://github.com/pologrp/experiments $HOME/experiments
mkdir $HOME/experiments/build
cd $HOME/experiments/build
cmake -D CMAKE_INSTALL_PREFIX=$HOME/local ../
cmake --build .to
- install all the necessary programs, i.e., 0MQ (
v4.2.5), OpenBLAS (v0.3.3), cereal (v1.2.2), Google Test (v1.8.1, for unit testing), and POLO, - build and run the test scripts used in the paper, and,
- reproduce the figures from the generated results.
When the superbuild finishes, we should find a figures.pdf file under
$HOME/experiments/build/external/BUILD/experiments.