dipetkov / eems

Estimating Effective Migration Surfaces

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segmentation fault 11 Error

SashaNikolaevaBerkeley opened this issue · comments

Hi Dr. Petkova,

When trying to run the sample files from the master package, I get Segmentation fault 11 error. I start with ./runeems_sats --params params-chain1.ini --seed 123, but the error shows up pretty much immediately. Here is the output:

calvisitor-10-105-166-192:src sasha$ ./runeems_sats --params params-chain1.ini --seed 123
Using Boost 1_57 (EEMS was tested with version 1_57)
Eigen 3.3.7 (EEMS was tested with version 3.2.2)

Segmentation fault: 11

Do you know why this might be?

Thanks a lot!

No, I don't have an idea. I can build and run EEMS on macOS after installing Eigen and Boost with Homebrew.

I can also build and run EEMS on a Linux server. Here are instructions how I did it on a Ubuntu server on AWS E2.

Choose the following Ubuntu AMI

Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-06358f49b5839867c (64-bit x86)

launch a t2.small instance and follow these steps to download Eigen and Boost, to compile and install Boost, to build and run EEMS:

git clone https://github.com/dipetkov/eems.git
sudo apt-get install gcc libxml2-dev g++ make

wget -c http://bitbucket.org/eigen/eigen/get/3.3.7.tar.bz2
wget -c https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.bz2

tar jxf 3.3.7.tar.bz2
sudo mkdir -p /usr/local/opt/eigen/include
sudo mv eigen-eigen-323c052e1731/ /usr/local/opt/eigen/include/eigen3

tar jxf boost_1_62_0.tar.bz2
cd boost_1_62_0/
sudo ./bootstrap.sh --prefix=/usr/local/
sudo ./b2 --with-program_options --with-filesystem --with-system install

cd ../eems/runeems_sats/src/
make linux

./runeems_sats --params params-chain1.ini --seed 123

Installation is easy with sudo rights. Also EEMS needs only three Boost libraries. So instead of

sudo ./b2 install

it is sufficient to do

sudo ./b2 --with-program_options --with-filesystem --with-system install

That’s it!

With sudo it's much easier to install on ubuntu. Follow these steps:

  1. Install boost with sudo apt-get install libboost-all-dev.
  2. Install eigen3 with sudo apt-get install libeigen3-dev.
  3. Update EIGEN_INC in the Makefile.
    EIGEN_INC = /usr/include/eigen3