Skip to content
This repository has been archived by the owner on Mar 23, 2019. It is now read-only.

UbuntuOboe

Stefan Vigerske edited this page Mar 22, 2019 · 1 revision

Installation of OBOE on ubuntu

Introduction

This page descibes step-by-step the compilation of OBOE on a linux distribution. Even if the compilation has been done on UBUNTU, it is a good starting point for any other linux distributions.

1. Developper tools

Install the necessary to compile (gcc and so on)

sudo apt-get install build-essential

If you want to activate the serialization feature:

sudo apt-get install libboost-dev

2. LAPACK installation

sudo apt-get install liblapack-dev libblas-dev libatlas-base-dev

3. LAPACK++ installation

wget http://kent.dl.sourceforge.net/sourceforge/lapackpp/lapackpp-2.5.1.tar.gz
tar zxvf lapackpp-2.5.1.tar.gz
cd lapackpp-2.5.1
./configure
make
sudo make install
sudo ln -s /usr/local/include/lapackpp /usr/local/include/lapackpp/include

For gcc > 4.3 (ubuntu 8.10+), if you have the following error:

vtmpl.h:75: error: 'memcpy' was not declared in this scope

You must add the following line in the include section of matrix/src/vtmpl.h

#include <cstring>

4. OBOE compilation

svn co https://projects.coin-or.org/svn/OBOE/trunk OBOE
cd OBOE

For gcc > 4.3 (ubuntu 8.10+), You must add the following lines in the include section of include/AccpmDefs.h and src/Utilities/AccpmDefs.h

#include <cstring>
#include <cstdlib>

OBOE needs to know where are located the BLAS, LAPACK and LAPACK++ libraries, so define some variables.

export BLAS=/usr/lib/libblas.a
export LAPACK=/usr/lib/liblapack.a
export LAPACKCPP_DIR=/usr/local/include/lapackpp
export LAPACKCPP_LIB=/usr/local/lib/liblapackpp.la
./configure
make
make install

If you want to enable the serialization feature, you must add the following line in the config.h file

#define SERIALIZATION 1

then modify the ./configure statement

./configure --enable-serialization=yes

and ignore any warnings.

The libraries are located in the lib directory. You can create the library liboboe.a that contains all the libraries with

./create_oboe_lib.sh

5. Testing you installation

Compile the examples:

make check

The examples are located in src/Benchmark directory. The README file details the problems solved by the examples. You may need to add the library path of LAPACK++ in the search path:

export LD_LIBRARY_PATH=/usr/local/lib

6. Tuning

Some major improvements in computation efficiency may be done by compiling yourself the BLAS, LAPACK and LAPACK++ libraries to match the characteristics of your processor such as SSE2 instructions, multi-core... Once you have compiled these libraries, you shall adapt the ./configure directives for OBOE compilation.