lhhunghimself / fastBMA

Fast, scalable, parallel and distributed inference of very large networks by Bayesian Model Averaging
MIT License
4 stars 3 forks source link

Compilation errors #4

Closed situpf closed 6 years ago

situpf commented 6 years ago

Hello,

We are trying to compile fastBMA with MPI in a Centos machine, but we are getting some errors like: main.o:main.cpp:function void boost::mpi::detail::broadcastimpl(boost::mpi::communicator const&, int*, int, int, mpl::bool_) [clone .isra.234] [clone .constprop.758]: error: undefined reference to 'boost::mpi::communicator::operator int() const'

We are using Boost-1.66, MPICH2-1.1, OpenBLAS/0.2.18 and GCC/5.4.0-2.26. Do you have any idea?

Many thanks, Marc

lhhunghimself commented 6 years ago

Can you tell me what version of Centos you are running?

situpf commented 6 years ago

centos-release-7-2.1511.el7.centos.2.10.x86_64

lhhunghimself commented 6 years ago

It sounds like some conflict with boost and older mpich2 libraries.

However, fastBMA does work on centos 7 with mpich3 if you compile OpenBLAS and boost i.e.

  1. Install mpich3 using yum
  2. Compile OpenBLAS
  3. Compile boost
  4. Compile fastBMA, with a modified Makefile pointing to the mpich/OpenBLAS headers,
  5. Set environment variables to point to OpenBLAS libs and mpich3 binaries.

All the details are in Dockerfile-centos and src/Makefile-centos that I have pushed up to the repo