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

James Elliott jjellio3 at ncsu.edu
Sat Jan 28 22:03:53 EST 2017


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