Error when compiling on a supercomputer; ld: cannot find -lboost_mpi-1_57

Dear all,

I am trying to compile psi4 on a supercomputer, which i don’t have a root access to. It is based on Xeons and has the following software avaliable:

gcc/5.2.0, pgi/12.9

intel/13.1.0, intel/15.0.090

mkl/4.0.2.146, mkl/11.2.0

impi/4.0.3, impi/4.1.0-32bit, impi/4.1.0, impi/4.1.0-ofa, impi/5.0.1, impi/5.0.1-ofa

openmpi/1.5.5-gcc, openmpi/1.5.5-icc, openmpi/1.8.4-gcc, openmpi/1.8.4-icc, openmpi/1.6.5-gcc, openmpi/1.6.5-icc

I choosed impi/5.0.1 and mkl/11.2.0.
I have tried to use both intel compiler versions to compile “master” and “0.3 release from 5 Aug 2015” versions. All times I have failed. With the intel/15.0.090 compilers it even fails on the ./setup script as follows:

CMake Error: Unable to find the executable at any of:
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11 _regex/CMakeFiles/CMakeTmp/cmTC_e39a7
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11 _regex/CMakeFiles/CMakeTmp/Debug/cmTC_e39a7
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11 _regex/CMakeFiles/CMakeTmp/Development/cmTC_e39a7

And with the intel/13.1.0 compilers ./setup runs successfully. To avoid crushes I have changed -std=g++98 to -std=c++11 in the CMAKE_CXX_FLAGS:STRING in the CMakeCache.txt and followed the post Undefined GIT_VERSION in case of “0.3 release”. Thus in case of both versions of psi4 using the intel/13.1.0 compilers I have ended with:


[ 99%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/export_efp.cc.o
[ 99%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/export_cubeprop.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/clean.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/create_new_plugin.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/script.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/set_memory.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/read_options.cc.o
[100%] Building CXX object src/bin/psi4/CMakeFiles/psi4.dir/export_libparallel.cc.o
[100%] Linking CXX executable …/…/…/bin/psi4
ld: cannot find -lboost_mpi-1_57
[100%] Built target psi4

And there is no binary in the --prefix I have chosen. The libboost_mpi-1_57.a is really absent in the /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4public-master/objdir/boost/lib. Nor it is listed in “Required Compiled Boost Modules” on the page https://github.com/psi4/psi4public/wiki/9_Boost.

The comand I used for .setup is as following:

./setup --cc mpicc --cxx mpicxx --fc mpif77 --prefix /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4 --omp --mpi --mkl parallel --cmake ~/bin/cmake/bin/cmake

The “master” verson also had a problem with the pcmsolver so I used an option “–pcmsolver off”.

After successfull ./setup I went to the objdir and ran “make”.

Does anyone know, what can I do in this case? As far as I unserstand, I can only use mkl with intel compiler. Generally, I need psi4 to compute electronic density grids for fullCI and Coupled Cluster calculations of small molecules with huge basis sets.

Thank you in advance.
Best regards,
Michael Medvedev

The full out from the ./setup for the 0.3 release with the intel/13.1.0 compiler is:

./setup --cc mpicc --cxx mpicxx --fc mpif77 --prefix /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4 --omp --mpi --mkl parallel --cmake ~/bin/cmake/bin/cmake
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/cmake/bin/cmake -DCMAKE_Fortran_COMPILER=mpif77 -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DENABLE_MPI=ON -DENABLE_SGI_MPT=OFF -DENABLE_OMP=ON -DENABLE_VECTORIZATION=OFF -DENABLE_CSR=OFF -DENABLE_SCALAPACK=OFF -DENABLE_SCALASCA=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_STATIC_LINKING=OFF -DENABLE_PLUGINS=OFF -DENABLE_LIBERD=OFF -DENABLE_JKFACTORY=OFF -DENABLE_GPU_DFCC=OFF -DENABLE_DUMMY_PLUGIN=OFF -DENABLE_PCMSOLVER=OFF -DENABLE_CHEMPS2=OFF -DENABLE_CXX11_SUPPORT=ON -DLIBINT_OPT_AM=5 -DEXECUTABLE_SUFFIX= -DENABLE_AUTO_BLAS=ON -DENABLE_AUTO_LAPACK=ON -DMKL_FLAG="-mkl=parallel" -DMKL_FLAG_SET=ON -DENABLE_AUTO_BLAS=OFF -DENABLE_AUTO_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4 -DCMAKE_BUILD_TYPE=release /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3

– User set explicit MKL flag which is passed to the compiler and linker: -mkl=parallel
– This disables math detection and builtin math libraries
– Setting -DHAVE_MKL_BLAS and -DHAVE_MKL_LAPACK
– System : Linux
– Processor type : x86_64
– C++ compiler flags : -DRESTRICT=restrict -Xlinker -export-dynamic -fPIC -std=gnu++98 -mkl=parallel -openmp -O3 -no-prec-div -DNDEBUG -xHost
– C compiler flags : -restrict -DRESTRICT=restrict -std=c99 -fPIC -mkl=parallel -openmp -O3 -ip -DNDEBUG -xHost
– Fortran compiler flags: -w -fpp -assume byterecl -DVAR_IFORT -fPIC -nosave -mkl=parallel -openmp -O3 -ip -xHost
– Libraries : -mkl=parallel
– Definitions : USE_FCMANGLE_H;SYS_LINUX;HAVE_MKL_BLAS;HAVE_MKL_LAPACK;HAVE_MPI;HAVE_DKH
– The CXX compiler identification is Intel 13.1.0.20130121
– The C compiler identification is Intel 13.1.0.20130121
– Check for working CXX compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicxx
– Check for working CXX compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicxx – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working C compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicc
– Check for working C compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– The Fortran compiler identification is Intel 13.1.0.20130121
– Check for working Fortran compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpif77
– Check for working Fortran compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 – works
– Detecting Fortran compiler ABI info
– Detecting Fortran compiler ABI info - done
– Checking whether /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 supports Fortran 90
– Checking whether /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 supports Fortran 90 – yes
– Fortran ENABLED
– Buggy compiler support for C++11. Using older standard.
– Checking for restrict keyword
– keyword found : restrict
– Performing Test has_xHost
– Performing Test has_xHost - Success
– Try OpenMP C flag = [-openmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Try OpenMP CXX flag = [-openmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Try OpenMP Fortran flag = [-openmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Found OpenMP: -openmp
– Found MPI_C: /opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– Found MPI_CXX: /opt/intel/impi/5.0.1.035/intel64/lib/libmpicxx.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– Found MPI_Fortran: /opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– No Sphinx, no docs. Pre-built documentation at http://sirius.chem.vt.edu/psi4manual/latest/index.html
– Found libutil: /usr/lib64/libutil.so
– Found libm: /usr/lib64/libm.so
– Found librt: /usr/lib64/librt.so
– Found libdl: /usr/lib64/libdl.so
– Looking for pthread.h
– Looking for pthread.h - found
– Looking for pthread_create
– Looking for pthread_create - found
– Found Threads: TRUE
– Found PythonInterp: /usr/bin/python2.6 (found version “2.6.6”)
– Found PythonLibs: /usr/lib64/libpython2.6.so (found suitable exact version “2.6.6”)
– Could NOT find Boost
– Boost 1.55.0 not found. The pre-packaged version will be built.
– Libraries to be built: filesystem, python, regex, serialization, system, timer, chrono, thread, mpi
– Toolset to be used: intel-linux
– Looking for MKL_Free_Buffers
– Looking for MKL_Free_Buffers - found
– Looking for __builtin_expect
– Looking for __builtin_expect - found
– Looking for __builtin_prefetch
– Looking for __builtin_prefetch - found
– Looking for __builtin_constant_p
– Looking for __builtin_constant_p - found
– Looking for erf
– Looking for erf - found
– DKH in LibMints ENABLED
– Detecting Fortran/C Interface
– Detecting Fortran/C Interface - Found GLOBAL and MODULE mangling
– Verifying Fortran/CXX Compiler Compatibility
– Verifying Fortran/CXX Compiler Compatibility - Success
– Use the commands in setup_command to reproduce this build
– Configuring done
– Generating done
– Build files have been written to: /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir

configure step is done
now you need to compile the sources:

cd objdir
make
The full out from the ./setup for the 0.3 release with the intel/13.1.0 compiler is:

./setup --cc mpicc --cxx mpicxx --fc mpif77 --prefix /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4 --omp --mpi --mkl parallel --cmake ~/bin/cmake/bin/cmake
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/cmake/bin/cmake -DCMAKE_Fortran_COMPILER=mpif77 -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DENABLE_MPI=ON -DENABLE_SGI_MPT=OFF -DENABLE_OMP=ON -DENABLE_VECTORIZATION=OFF -DENABLE_CSR=OFF -DENABLE_SCALAPACK=OFF -DENABLE_SCALASCA=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_STATIC_LINKING=OFF -DENABLE_PLUGINS=OFF -DENABLE_LIBERD=OFF -DENABLE_JKFACTORY=OFF -DENABLE_GPU_DFCC=OFF -DENABLE_DUMMY_PLUGIN=OFF -DENABLE_PCMSOLVER=OFF -DENABLE_CHEMPS2=OFF -DENABLE_CXX11_SUPPORT=ON -DLIBINT_OPT_AM=5 -DEXECUTABLE_SUFFIX= -DENABLE_AUTO_BLAS=ON -DENABLE_AUTO_LAPACK=ON -DMKL_FLAG="-mkl=parallel" -DMKL_FLAG_SET=ON -DENABLE_AUTO_BLAS=OFF -DENABLE_AUTO_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/psi4 -DCMAKE_BUILD_TYPE=release /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3

CMake Error: Unable to find the executable at any of:
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11_regex/CMakeFiles/CMakeTmp/cmTC_a8cfe
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11_regex/CMakeFiles/CMakeTmp/Debug/cmTC_a8cfe
/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/check_cxx11/cxx11_regex/CMakeFiles/CMakeTmp/Development/cmTC_a8cfe

– User set explicit MKL flag which is passed to the compiler and linker: -mkl=parallel
– This disables math detection and builtin math libraries
– Setting -DHAVE_MKL_BLAS and -DHAVE_MKL_LAPACK
– System : Linux
– Processor type : x86_64
– C++ compiler flags : -DRESTRICT=restrict -Xlinker -export-dynamic -fPIC -std=c++11 -mkl=parallel -qopenmp -O3 -no-prec-div -DNDEBUG -xHost
– C compiler flags : -restrict -DRESTRICT=restrict -std=c99 -fPIC -mkl=parallel -qopenmp -O3 -ip -DNDEBUG -xHost
– Fortran compiler flags: -w -fpp -assume byterecl -DVAR_IFORT -fPIC -nosave -mkl=parallel -qopenmp -O3 -ip -xHost
– Libraries : -mkl=parallel
– Definitions : USE_FCMANGLE_H;SYS_LINUX;HAS_CXX11;HAS_CXX11_FUNC;HAS_CXX11_AUTO;HAS_CXX11_AUTO_RET_TYPE;HAS_CXX11_CONSTEXPR;HAS_CXX11_CSTDINT_H;HAS_CXX11_DECLTYPE;HAS_CXX11_INITIALIZER_LIST;HAS_CXX11_LAMBDA;HAS_CXX11_LONG_LONG;HAS_CXX11_NULLPTR;HAS_CXX11_LIB_REGEX;HAS_CXX11_RVALUE_REFERENCES;HAS_CXX11_SIZEOF_MEMBER;HAS_CXX11_STATIC_ASSERT;HAS_CXX11_VARIADIC_TEMPLATES;HAVE_MKL_BLAS;HAVE_MKL_LAPACK;HAVE_MPI;HAVE_DKH
– The CXX compiler identification is Intel 15.0.0.20140723
– The C compiler identification is Intel 15.0.0.20140723
– Check for working CXX compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicxx
– Check for working CXX compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicxx – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working C compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicc
– Check for working C compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpicc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– The Fortran compiler identification is Intel 15.0.0.20140723
– Check for working Fortran compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpif77
– Check for working Fortran compiler: /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 – works
– Detecting Fortran compiler ABI info
– Detecting Fortran compiler ABI info - done
– Checking whether /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 supports Fortran 90
– Checking whether /opt/intel/impi/5.0.1.035/intel64/bin/mpif77 supports Fortran 90 – yes
– Fortran ENABLED
– Performing Test HAS_CXX11_FLAG
– Performing Test HAS_CXX11_FLAG - Success
– Found following supported C++11 features:
– __func
– auto
– auto_ret_type
– constexpr
– cstdint
– decltype
– initializer_list
– lambda
– long_long
– nullptr
– regex
– rvalue-references
– sizeof_member
– static_assert
– variadic_templates
– Checking for restrict keyword
– keyword found : restrict
– Performing Test has_xHost
– Performing Test has_xHost - Success
– Try OpenMP C flag = [-qopenmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Try OpenMP CXX flag = [-qopenmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Try OpenMP Fortran flag = [-qopenmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Found OpenMP: -qopenmp
– Found MPI_C: /opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– Found MPI_CXX: /opt/intel/impi/5.0.1.035/intel64/lib/libmpicxx.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– Found MPI_Fortran: /opt/intel/impi/5.0.1.035/intel64/lib/libmpifort.so;/opt/intel/impi/5.0.1.035/intel64/lib/release/libmpi.so;/opt/intel/impi/5.0.1.035/intel64/lib/libmpigi.a;/usr/lib64/libdl.so;/usr/lib64/librt.so;/usr/lib64/libpthread.so
– No Sphinx, no docs. Pre-built documentation at http://sirius.chem.vt.edu/psi4manual/latest/index.html
– Found libutil: /usr/lib64/libutil.so
– Found libm: /usr/lib64/libm.so
– Found librt: /usr/lib64/librt.so
– Found libdl: /usr/lib64/libdl.so
– Looking for pthread.h
– Looking for pthread.h - found
– Looking for pthread_create
– Looking for pthread_create - found
– Found Threads: TRUE
– Found PythonInterp: /usr/bin/python2.6 (found version “2.6.6”)
– Found PythonLibs: /usr/lib64/libpython2.6.so (found suitable exact version “2.6.6”)
– Could NOT find Boost
– Boost 1.55.0 not found. The pre-packaged version will be built.
– Libraries to be built: filesystem, python, regex, serialization, system, timer, chrono, thread, mpi
– Toolset to be used: intel-linux
– Looking for MKL_Free_Buffers
– Looking for MKL_Free_Buffers - found
– Looking for __builtin_expect
– Looking for __builtin_expect - found
– Looking for __builtin_prefetch
– Looking for __builtin_prefetch - found
– Looking for __builtin_constant_p
– Looking for __builtin_constant_p - found
– Looking for erf
– Looking for erf - found
– DKH in LibMints ENABLED
– Detecting Fortran/C Interface
– Detecting Fortran/C Interface - Found GLOBAL and MODULE mangling
– Verifying Fortran/CXX Compiler Compatibility
– Verifying Fortran/CXX Compiler Compatibility - Success
– Use the commands in setup_command to reproduce this build
– Configuring incomplete, errors occurred!
See also “/mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/CMakeFiles/CMakeOutput.log”.

Howevewer, there is no file /mnt/data/users/dm4/vol12/medvedevmg_1708/bin/tmp/psi4public-0.3/objdir/CMakeFiles/CMakeOutput.log and no directory objdir at all.

This issue has been resolved here.