install_unix#

View page source

Installing dismod_at in Unix#

System Requirements#

The following programs are required by dismod_at and should have standard system installs:

C++ Compiler#

The dismod_at program can be compiled by any C++98 compliant compiler; e.g., g++ . (Note that a C++11 compiler would be better.)

Fortran Compiler#

A fortran compiler is required by ipopt which in turn is required by dismod_at .

git#

The git program, a source code version control system, is required by dismod_at .

cmake#

The cmake program, which installs other programs, is required by dismod_at .

pkg-config#

The pkg-config program must be installed.

python3#

The python3, programming language. The packages listed in the standard library are assumed to be present. You need to have the following additional python packages: numpy , matplotlib , scipy , build .

sqlite3#

The http://sqlite.org/ library, version 3.7.11 (released on 2012-03-20) or higher; see sqlite releases. Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install sqlite-devel .

gsl#

gsl, the gnu scientific library. Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install gsl-devel .

suitesparse#

The suitesparse sparse matrix package. Note that the development headers are required; e.g., on Fedora or Red-Hat one needs to install suitesparse-devel .

Download dismod_at.git#

After installing the requirements above, use the following command to get the current version of dismod_at:

      git clone https://github.com/bradbell/dismod_at.git dismod_at.git
      cd dismod_at.git

You can determine the git_hash and version number corresponding to this checkout of the master branch using the commands:

      git show-ref | grep 'refs/heads/master'
      grep ‘^ SET ( dismod_at_versionCMakeLists.txt

You can checkout an old version corresponding to a specific git_hash , and check its version number, using the commands:

      git checkout -q git_hash
      grep ‘^ SET ( dismod_at_versionCMakeLists.txt

Paths#

This discussion is intended to help with the install of the special requirements and dismod_at (see below).

Adding to a Path#

The instructions below may require you to add to a path_name . Use the command

echo $ path_name

to see if your initial path is empty. If it is empty, use the command

export path_name = directory

to add directory to the path. If it is non-empty, use

export path_name =” $ path_name : directory

to add directory to the path.

PKG_CONFIG_PATH#

After sqlite3 and gsl are installed the following commands should work:

pkg-config sqlite3 --modversion
pkg-config gsl     --modversion

If one of them fails, a corresponding directory is missing from the PKG_CONFIG_PATH environment variable. If prefix is the prefix where gsl was installed, the command

find -L prefix -name gsl.pc 2> /dev/null

should find the directory where gsl.pc is located. After cppad_mixed is installed (see below), the following command should work:

pkg-config pkg --modversion

where pkg is any of the Special Requirements below. (There is one exception, the eigen package uses eigen3 for pkg above.) If one of these commands fails,

find -L dismod_at_prefix -name pkg . pc 2> /dev/null

should find the directory where pkg . pc is located; see dismod_at_prefix .

LD_LIBRARY_PATH#

The library locations are set at link time using cmake’s always full rpath commands. Hence, it should not be necessary to set LD_LIBRARY_PATH in order for dismod_at to work.

PATH#

After you install dismod_at (see below) you should be able to execute the command

dismod_at

from any directory. If you get the error dismod_at: command not found , you will need to add the binary install directory to you path. Use the following command to find it:

find -L dismod_at_prefix -name dismod_at 2> /dev/null

see dismod_at_prefix .

PYTHONPATH#

After you install dismod_at you should be able to execute the following commands:

      python3
      import dismod_at
      quit ()

where python3 is your python3 executable . If you get the error No module named 'dismod_at' , you will need to add the directory where the module is installed to your python path. Use the following command to find it:

find -L dismod_at_prefix -name site-packages 2> /dev/null

Special Requirements#

The packages listed below are required by dismod_at and may not have standard system installs

run_cmake.sh#

The settings in bin/run_cmake.sh are used by the scripts that install the special requirements. You must first change these settings to the appropriate values for your system before running the install scripts below:

eigen#

The eigen linear algebra package. The script bin/get_cppad_mixed.sh (see below) includes an install of eigen.

ipopt#

The Ipopt optimization package. The script bin/get_cppad_mixed.sh (see below) includes an install of ipopt.

cppad#

The cppad C++ algorithmic differentiation package. The script bin/get_cppad_mixed.sh (see below) includes an install of cppad.

cppad_mixed#

The cppad_mixed C++ random effects modeling package. Starting in the dismod_at.git directory, the command

bin/get_cppad_mixed.sh

can be used to install eigen, ipopt, and cppad_mixed. This script also serves as an example of how to install cppad_mixed.

dismod_at#

The steps above should only need to be executed once, not for each new version of dismod_at (unless the release_notes say otherwise). The steps below will need to be executed each time you install a new version of dismod_at :

Setup#

The file bin/run_cmake.sh has setting that you should change so they correspond to your machine.

Cmake Command#

After changing bin/run_cmake.sh to work for your system, in the dismod_at.git directory execute the following command:

bin/run_cmake.sh

The script also serves as an example of how to install dismod_at.

Build#

The following command is option and will just build the executable program build/devel/dismod_at :

cd build
make
cd ..

Test#

The following commands are optional and will, build the dismod_at executable, build the examples and tests, and run the examples, correctness tests, and speed tests:

cd build
make check
make speed
cd ..

Some of the tests use different random number simulations each time they are run. If you get a correctness check failure during a make check or make speed , try running the make command again. If you get the same correctness check fails twice in a row, there probably is a problem and you should get help from the dismod_at development team.

Install#

The following command will, build the dismod_at library and executable if necessary, and install dismod_at:

cd build
make install install_python
cd ..

Example#

The file example_install.sh contains an example install of dismod_at . The section get_started contains a list of examples and tests of using dismod_at . These tests are run as part of the make check command above.