[Trilinos-Users] linking error installing trilinos with amesos with mumps

Lailai Zhu julyzll06 at gmail.com
Sat Jan 28 23:57:18 EST 2017


hi, James,

thanks very much. you are right, that amesos_cxx_flags and 
trilinos_extra_link_flags
are initially not added. I did so when I get the compiling error from 
amesos test cases.

I have followed your suggestions exactly, adding semicolons when necessary.
specifying cxx,c and fortran compiler, removing amesos_cxx_flags and 
trilinos_extra_link_flags.
here is the error i get, could you please check if this makes sense to 
you? Thanks in advance
very much.

[ 61%] Linking CXX executable amesos_test.exe
../../src/libamesos.so.12.10.1: undefined reference to `mpi_pack_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_cancel_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_iprobe_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_initialized_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_op_free_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_alltoall_'
../../src/libamesos.so.12.10.1: undefined reference to `mpi_allgatherv_'
....................................................................................................................

Then using VERBOSE=1, the errors are
[ 61%] Linking CXX executable amesos_test.exe
cd 
/home/user/Downloads/trilinos-12.10.1-Build/packages/amesos/test/Test_Basic 
&& /usr/bin/cmake -E cmake_link_script 
CMakeFiles/amesos_test.dir/link.txt --verbose=1
/home/user/nonroot/mpi/openmpi/2.0.1-gnu/bin/mpicxx    -std=c++11 -O3 
-DNDEBUG CMakeFiles/amesos_test.dir/SparseDirectTimingVars.cpp.o 
CMakeFiles/amesos_test.dir/SparseSolverResult.cpp.o 
CMakeFiles/amesos_test.dir/Amesos_TestDriver.cpp.o 
CMakeFiles/amesos_test.dir/Amesos_TestSolver.cpp.o 
CMakeFiles/amesos_test.dir/Amesos_TestMultiSolver.cpp.o 
CMakeFiles/amesos_test.dir/Amesos_TestMrhsSolver.cpp.o  -o 
amesos_test.exe -rdynamic ../../src/libamesos.so.12.10.1 
../../../galeri/src-xpetra/libgaleri-xpetra.so.12.10.1 
../../../galeri/src-epetra/libgaleri-epetra.so.12.10.1 
/home/user/nonroot/mumps/MUMPS_4.9-gnu-openmpi/lib/libdmumps.a 
/home/user/nonroot/mumps/MUMPS_4.9-gnu-openmpi/lib/libmumps_common.a 
/home/user/nonroot/mumps/MUMPS_4.9-gnu-openmpi/lib/libpord.a 
/home/user/nonroot/ScaLAPACK/1.8.0-gnu-openmpi/libscalapack.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacs_MPI-LINUX-0.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacsCinit_MPI-LINUX-0.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacsF77init_MPI-LINUX-0.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacs_MPI-LINUX-0.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacsCinit_MPI-LINUX-0.a 
/home/user/nonroot/BLACS-GNU4/LIB/blacsF77init_MPI-LINUX-0.a 
/home/user/nonroot/parmetis/3.1-gnu-openmpi/libparmetis.a 
/home/user/nonroot/parmetis/3.1-gnu-openmpi/libmetis.a 
../../../xpetra/sup/libxpetra-sup.so.12.10.1 
../../../xpetra/src/libxpetra.so.12.10.1 
../../../thyra/adapters/tpetra/src/libthyratpetra.so.12.10.1 
../../../thyra/adapters/epetraext/src/libthyraepetraext.so.12.10.1 
../../../epetraext/src/libepetraext.so.12.10.1 
../../../triutils/src/libtriutils.so.12.10.1 
../../../thyra/adapters/epetra/src/libthyraepetra.so.12.10.1 
../../../thyra/core/src/libthyracore.so.12.10.1 
../../../rtop/src/librtop.so.12.10.1 
../../../tpetra/core/ext/libtpetraext.so.12.10.1 
../../../tpetra/core/inout/libtpetrainout.so.12.10.1 
../../../tpetra/core/src/libtpetra.so.12.10.1 
../../../epetra/src/libepetra.so.12.10.1 
../../../tpetra/tsqr/src/libkokkostsqr.so.12.10.1 
../../../tpetra/kernels/src/libtpetrakernels.so.12.10.1 
../../../kokkos/containers/src/libkokkoscontainers.so.12.10.1 
../../../kokkos/algorithms/src/libkokkosalgorithms.so.12.10.1 
../../../tpetra/classic/LinAlg/libtpetraclassiclinalg.so.12.10.1 
../../../tpetra/classic/NodeAPI/libtpetraclassicnodeapi.so.12.10.1 
../../../tpetra/classic/src/libtpetraclassic.so.12.10.1 
../../../teuchos/kokkoscomm/src/libteuchoskokkoscomm.so.12.10.1 
../../../teuchos/kokkoscompat/src/libteuchoskokkoscompat.so.12.10.1 
../../../teuchos/remainder/src/libteuchosremainder.so.12.10.1 
../../../teuchos/numerics/src/libteuchosnumerics.so.12.10.1 
/home/user/nonroot/OpenBlas/0.2.19-gnu/lib/libopenblas.so 
../../../teuchos/comm/src/libteuchoscomm.so.12.10.1 
../../../teuchos/parameterlist/src/libteuchosparameterlist.so.12.10.1 
../../../teuchos/core/src/libteuchoscore.so.12.10.1 
../../../kokkos/core/src/libkokkoscore.so.12.10.1 
/usr/lib/x86_64-linux-gnu/libdl.so 
-Wl,-rpath,/home/user/Downloads/trilinos-12.10.1-Build/packages/amesos/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/galeri/src-xpetra:/home/user/Downloads/trilinos-12.10.1-Build/packages/galeri/src-epetra:/home/user/Downloads/trilinos-12.10.1-Build/packages/xpetra/sup:/home/user/Downloads/trilinos-12.10.1-Build/packages/xpetra/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/thyra/adapters/tpetra/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/thyra/adapters/epetraext/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/epetraext/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/triutils/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/thyra/adapters/epetra/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/thyra/core/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/rtop/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/core/ext:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/core/inout:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/core/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/epetra/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/tsqr/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/kernels/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/kokkos/containers/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/kokkos/algorithms/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/classic/LinAlg:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/classic/NodeAPI:/home/user/Downloads/trilinos-12.10.1-Build/packages/tpetra/classic/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/kokkoscomm/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/kokkoscompat/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/remainder/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/numerics/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/comm/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/parameterlist/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/teuchos/core/src:/home/user/Downloads/trilinos-12.10.1-Build/packages/kokkos/core/src 


indeed, as you can see, the libmpi.so is not linked, how shall we do 
with this? Thanks


kind regards,
lailai


On 2017/1/28 22:03, James Elliott wrote:
>
> Hi,
>
> You are not specifying the library names to CMake correctly.
> Also, if you are compiling with the mpi wrappers (mpicc, mpicxx) which 
> are standard in openmpi, you should never need to specify the MPI 
> libraries and paths in linker/cxx flags.
> CMAKE_CXX_COMPILER=mpicxx
> CMAKE_C_COMPILER=mpicc
> CMAKE_Fortran_COMPILER=mpifort
>
> Watch the output, and make sure it picks up the correct compiler.
>
> See additional comments in line.
>
> James
>
> On 1/28/2017 7:50 PM, Lailai Zhu wrote:
>> hi, dear all,
>>
>> i have tried to install a trilinos version with amesos with mumps,
>> i tried several versions of trilinos. the errors seem to be intriguing,
>> mumps is installed and tested. amesos installation also passed its 
>> own the
>> tests. the errors come from the other packages MueLu that depends on 
>> amesos,
>> here is the error, do you guys have any ideas, thanks in advance.
>>
>> [ 99%] Linking CXX executable MueLu_CreateOperator.exe
>>
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_WPartGraphKway2'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_pack_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_iprobe_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_op_free_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_initialized_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_alltoall_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_WPartGraphKway'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_reduce_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_unpack_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_gatherv_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_wtime_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_allreduce_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `metis_nodewnd_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_get_count_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_pack_size_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_irecv_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_NodeND'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_comm_split_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_abort_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_mCPartGraphRecursive2'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_gather_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_comm_rank_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `blacs_pinfo_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_probe_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_cancel_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_allgatherv_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `Cblacs_pinfo'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_NodeComputeSeparator'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_ssend_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_wait_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_comm_size_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_send_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_barrier_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_comm_dup_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_test_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_comm_free_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `metis_nodend_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_request_free_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `METIS_EdgeComputeSeparator'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_isend_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_recv_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_bcast_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_waitany_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_reduce_scatter_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_get_processor_name_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_op_create_'
>> ../../../amesos/src/libamesos.so.12.0.1: undefined reference to 
>> `mpi_waitall_'
>> collect2: error: ld returned 1 exit status
>>
>> here is part of the config file,
>>
>>    cmake                                            \
>>     -DTrilinos_ENABLE_MueLu=ON                       \
>> -DParMETIS_INCLUDE_DIRS:FILEPATH=/home/user/nonroot/parmetis/3.1-gnu-openmpi 
>> \
>> -DParMETIS_LIBRARY_DIRS:FILEPATH=/home/user/nonroot/parmetis/3.1-gnu-openmpi 
>> \
>>     -DParMETIS_LIBRARY_NAMES:STRING="libparmetis.a libmetis.a" \
>>     -DTPL_ENABLE_BLACS:BOOL=ON \
>> -DBLACS_INCLUDE_DIRS:FILEPATH=/home/user/nonroot/BLACS-GNU4/SRC/MPI/INTERNAL\ 
>>
>> -DBLACS_LIBRARY_DIRS:FILEPATH=/home/user/nonroot/BLACS-GNU4/LIB \
>>     -DBLACS_LIBRARY_NAMES:STRING="blacs_MPI-LINUX-0.a 
>> blacsCinit_MPI-LINUX-0.a blacsF77init_MPI-LINUX-0.a 
>> blacs_MPI-LINUX-0.a blacsCinit_MPI-LINUX-0.a" \
> Semicolons not spaces here:
> BLACS_LIBRARY_NAMES:STRING="blacs_MPI-LINUX-0.a;blacsCinit_MPI-LINUX-0.a;blacsF77init_MPI-LINUX-0.a;blacs_MPI-LINUX-0.a;blacsCinit_MPI-LINUX-0.a" 
>
>
> You should see CMake output "searching for "foo.a", and it will search 
> the directories specified in LIBRARY_NAMES (again semicolon delimited)
>>     -DTPL_ENABLE_SCALAPACK:BOOL=ON \
>> -DSCALAPACK_INCLUDE_DIRS:FILEPATH=/home/user/nonroot/ScaLAPACK/1.8.0-gnu-openmpi/SRC 
>> \
>> -DTPL_SCALAPACK_LIBRARIES=/home/user/nonroot/ScaLAPACK/1.8.0-gnu-openmpi/libscalapack.a 
>> ${BLACS_LIB}/blacs_MPI-LINUX-0.a 
>> ${BLACS_LIB}/blacsCinit_MPI-LINUX-0.a 
>> ${BLACS_LIB}/blacsF77init_MPI-LINUX-0.a 
>> ${BLACS_LIB}/blacs_MPI-LINUX-0.a ${BLACS_LIB}/blacsCinit_MPI-LINUX-0.a \
>>     -DTrilinos_ENABLE_Amesos=ON          \
>>     -DAmesos_ENABLE_ParMETIS:BOOL=ON \
>>     -DAmesos_ENABLE_BLACS:BOOL=ON \
>>     -DAmesos_ENABLE_SCALAPACK:BOOL=ON \
>>     -DAmesos_ENABLE_MUMPS:BOOL=ON \
>> -DAmesos_CXX_FLAGS="-L/home/user/nonroot/mpi/openmpi/2.0.1-gnu/lib 
>> -lmpi -lmpi_mpifh -L/home/user/nonroot/parmetis/3.1-gnu-openmpi 
>> -lparmetis -lmetis -L/home/user/nonroot/BLACS-GNU4/LIB -lblacs 
>> -lblacsCinit -lblacsF77init -lblacs -lblacsCinit"\
> You should not need to set any package's CXX flags. (Amesos_CXX_FLAGS).
>> -DTrilinos_EXTRA_LINK_FLAGS="-L/home/user/nonroot/mpi/openmpi/2.0.1-gnu/lib 
>> -lmpi -lmpi_mpifh -L/home/user/nonroot/parmetis/3.1-gnu-openmpi 
>> -lparmetis -lmetis -L/home/user/nonroot/BLACS-GNU4/LIB -lblacs 
>> -lblacsCinit -lblacsF77init -lblacs -lblacsCinit" \
> You should not need to set Trilinos_EXTRA_LINK_FLAGS
>> -DMUMPS_INCLUDE_DIRS:FILEPATH="/home/user/nonroot/mumps/MUMPS_4.9-gnu-openmpi/include" 
>> \
>> -DMUMPS_LIBRARY_DIRS:FILEPATH="/home/user/nonroot/mumps/MUMPS_4.9-gnu-openmpi/lib" 
>> \
>>     -DMUMPS_LIBRARY_NAMES:STRING="dmumps;mumps_common;pord" \
>>     -DTrilinos_ENABLE_Epetra=ON                      \
>>     -DTrilinos_ENABLE_Ifpack=ON                      \
>>     -DIfpack_ENABLE_Amesos=OFF                       \
>>     -DTrilinos_ENABLE_AztecOO=ON                     \
>>     -DTrilinos_ENABLE_Sacado=ON                      \
>>     -DTrilinos_ENABLE_Teuchos=ON                     \
>>     -DTrilinos_ENABLE_ML=ON                          \
>>     -DML_ENABLE_Amesos=OFF                       \
>>     -DTrilinos_ENABLE_TESTS=ON                       \
>>     -DTrilinos_VERBOSE_CONFIGURE=ON                 \
>>     -DTPL_ENABLE_MPI=ON                              \
>>     -DMPI_BASE_DIR=/home/user/nonroot/mpi/openmpi/2.0.1-gnu \
>>     -DBUILD_SHARED_LIBS=ON                           \
>>     -DCMAKE_VERBOSE_MAKEFILE=OFF                     \
>>     -DCMAKE_BUILD_TYPE=RELEASE                       \
>>     -DTrilinos_ENABLE_EXPLICIT_INSTANTIATION=ON      \
>> -DTPL_BLAS_LIBRARIES=/home/user/nonroot/OpenBlas/0.2.19-gnu/lib/libopenblas.so 
>> \
>> -DTPL_LAPACK_LIBRARIES=/home/user/nonroot/OpenBlas/0.2.19-gnu/lib/libopenblas.so 
>> \
>> -DCMAKE_INSTALL_PREFIX=/home/user/nonroot/trilinos/12.0.1-openmpi-gnu \
>>     /home/user/Downloads/trilinos-12.0.1-Source
>>
>>
>>
>> best,
>> lailai
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at trilinos.org
>> https://trilinos.org/mailman/listinfo/trilinos-users
>




More information about the Trilinos-Users mailing list