[Trilinos-Users] [EXTERNAL] Fwd: Nelson Lafontaine

Phipps, Eric T etphipp at sandia.gov
Wed Nov 26 11:19:15 MST 2014


To make a proper shared library for superlu, you have to do more than add
-fPIC and -shared your compile flags.  The reason is it creates the
library using ³ar², instead of the linker.  Try changing ARCH in the
superlu make.inc to your compiler/linker and replace ARCHFLAGS with
-shared.  Also make sure you have -fPIC in NOPTS which is used to compile
a few files instead of the regular CFLAGS.

-Eric

On 11/25/14, 6:44 PM, "maireni at cimne.upc.edu" <maireni at cimne.upc.edu>
wrote:

>Hi Amesos Team,
>
>My name is Nelson Lafontaine, PhD student from UPC,
>Barcelona. I am really interested in use Amesos package
>for solving linear problems. Right now i can compile Trilinos
>with aAmesos with the lapack and klu solver, in both intel
>and gnu compiler. However i want to enable the Pardiso solver
>and Superlu solver, first for running in serial for testing
>benchmark examples and then move to MPI.
>
>However when  try to enable Pardiso solver, even using the mkl blas
>and lapack library i can not make it works. After compilation, Amesos
>always  tell me
>no available solver (for Pardiso).
>
>Another problem is when i use SupeLU (Serial) in time
>compilation i get the following error:
>
>/usr/bin/ld: 
>/home/nelson/Nel/packages/SuperLU_4.1/lib/libsuperlu_4.1.a(slamch.o):
>relocation R_X86_64_32S against `.bss' can not be used when making a
>shared object; recompile with -fPIC
>/home/nelson/Nel/packages/SuperLU_4.1/lib/libsuperlu_4.1.a: error adding
>symbols: Bad value
>collect2: error: ld returned 1 exit status
>make[2]: *** [packages/amesos/src/libamesos.so.11.12.1] Error 1
>make[1]: *** [packages/amesos/src/CMakeFiles/amesos.dir/all] Error 2
>
>I compiled the SuperLU packages ( intel or GNU) usng -fPIC and -shared.
>NO idea what this error means.
>
>Here add my configure file for superLU
>
>TRILINOS_HOME="/home/nelson/Nel/packages/trilinos-11.12.1-Source"
>EXTRA_LINK_FLAGS=""
>EXTRA_ARGS=$@
>cmake \
>  -D CMAKE_INSTALL_PREFIX:PATH=/usr/local/trilinos-11.12.1 \
>  -D CMAKE_BUILD_TYPE:STRING=RELEASE \
>  -D TPL_ENABLE_MPI:BOOL=OFF \
>  -D MPI_BASE_DIR:PATH=/usr/bin \
>  -D MPI_INCLUDE_DIRS:PATH=/usr/lib/openmpi/include \
>  -D BUILD_SHARED_LIBS:BOOL=ON \
>  -D Trilinos_ENABLE_OpenMP:BOOL=ON \
>  -D TPL_ENABLE_METIS:BOOL=ON \
>  -D TPL_METIS_INCLUDE_DIRS:PATH=/usr/include/metis \
>  -D TPL_ENABLE_ParMETIS:BOOL=ON \
>  -D Trilinos_EXTRA_LINK_FLAGS:STRING="$EXTRA_LINK_FLAGS" \
>  -D Trilinos_ENABLE_Amesos:BOOL=ON \
>  -D Amesos_ENABLE_SuperLU:BOOL=ON\
>  -D 
>SuperLU_INCLUDE_DIRS:FILEPATH=/home/nelson/Nel/packages/SuperLU_4.1/SRC
>\
>  -D 
>SuperLU_LIBRARY_DIRS:FILEPATH=/home/nelson/Nel/packages/SuperLU_4.1/lib
>\
>  -D SuperLU_LIBRARY_NAMES:STRING="libsuperlu_4.1.a"\
>  -D Trilinos_ENABLE_Anasazi:BOOL=ON \
>  -D Trilinos_ENABLE_AztecOO:BOOL=ON \
>  -D AztecOO_ENABLE_Teuchos:BOOL=ON \
>  -D Trilinos_ENABLE_Didasko:BOOL=ON \
>  -D Trilinos_ENABLE_Epetra:BOOL=ON \
>  -D Trilinos_ENABLE_EpetraExt:BOOL=ON \
>  -D Trilinos_ENABLE_Galeri:BOOL=ON \
>  -D Trilinos_ENABLE_Ifpack:BOOL=ON \
>  -D Trilinos_ENABLE_ML:BOOL=ON \
>  -D Trilinos_ENABLE_PyTrilinos:BOOL=ON \
>  -D Trilinos_ENABLE_Teuchos:BOOL=ON \
>  -D Trilinos_ENABLE_Triutils:BOOL=ON \
>  -D Trilinos_ENABLE_ForTrilinos:BOOL=ON \
>  -D Trilinos_EXTRA_LINK_FLAGS:STRING="$FORTRAN_LIBRARIES" \
>  -D DART_TESTING_TIMEOUT:STRING=600 \
>  -D CMAKE_Fortran_FLAGS:STRING="-O3 -funroll-all-loops -shared -fPIC
>-fopenmp" \
>  -D CMAKE_C_FLAGS:STRING="-O3 -fPIC -funroll-loops -shared -fPIC
>-fopenmp "\
>  -D CMAKE_CXX_FLAGS:STRING="-O3 -fPIC -funroll-loops -shared -fPIC
>-fopenmp" \
>  $EXTRA_ARGS \
>  ${TRILINOS_HOME}
>
>
>and for pardiso intel compiler
>
>Intel Compiler
>TRILINOS_HOME="/home/nelson/Nel/packages/trilinos-11.12.1-Source"
>EXTRA_LINK_FLAGS=""
>EXTRA_ARGS=$@
>cmake \
>  -D CMAKE_INSTALL_PREFIX:PATH=/usr/local/trilinos-11.12.1 \
>  -D CMAKE_BUILD_TYPE:STRING=RELEASE \
>  -D TPL_ENABLE_MPI:BOOL=OFF \
>  -D 
>CMAKE_C_COMPILER:FILEPATH=/opt/intel/composer_xe_2013_sp1.3.174/bin/intel6
>4/icc 
>\
>  -D 
>CMAKE_CXX_COMPILER:FILEPATH=/opt/intel/composer_xe_2013_sp1.3.174/bin/inte
>l64/icpc 
>\
>  -D 
>CMAKE_Fortran_COMPILER:FILEPATH=/opt/intel/composer_xe_2013_sp1.1.106/bin/
>intel64/ifort 
>\
>  -D MPI_BASE_DIR:PATH=/usr/bin \
>  -D MPI_INCLUDE_DIRS:PATH=/usr/lib/openmpi/include \
>  -D BLAS_INCLUDE_DIRS:PATH=/opt/intel/mkl/include \
>  -D LAPACK_INCLUDE_DIRS:PATH=/opt/intel/mkl/include \
>  -D BLAS_LIBRARY_DIRS:PATH=/opt/intel/mkl/include/intel64/lp64 \
>  -D LAPACK_LIBRARY_DIRS:PATH=/opt/intel/mkl/include/intel64/lp64 \
>  -D BLAS_LIBRARY_NAMES:STRING="mkl_intel_lp64" \
>  -D LAPACK_LIBRARY_NAMES:STRING="mkl_intel_lp64" \
>  -D BUILD_SHARED_LIBS:BOOL=ON \
>  -D Trilinos_ENABLE_OpenMP:BOOL=ON \
>  -D TPL_ENABLE_METIS:BOOL=ON \
>  -D TPL_METIS_INCLUDE_DIRS:PATH=/usr/include/metis \
>  -D TPL_ENABLE_ParMETIS:BOOL=ON \
>  -D Trilinos_EXTRA_LINK_FLAGS:STRING="$EXTRA_LINK_FLAGS" \
>  -D Trilinos_ENABLE_Amesos:BOOL=ON \
>  -D Amesos_ENABLE_SuperLU:BOOL=OFF\
>  -D 
>SuperLU_INCLUDE_DIRS:FILEPATH=/home/nelson/Nel/packages/SuperLU_4.1/SRC
>\
>  -D 
>SuperLU_LIBRARY_DIRS:FILEPATH=/home/nelson/Nel/packages/SuperLU_4.1/lib
>\
>  -D SuperLU_LIBRARY_NAMES:STRING="libsuperlu_4.1.a"\
>  -D Amesos_ENABLE_PARDISO:BOOL=ON \
>  -D PARDISO_LIBRARY_DIRS:PATH=/opt/intel/mkl/lib/intel64\
>  -D PARDISO_INCLUDE_DIRS:PATH=/opt/intel/mkl/include/intel64/lp64\
>  -D PARDISO_LIBRARY_NAMES:STRING="mkl_intel_lp64; mkl_intel_thread"\
>  -D Trilinos_ENABLE_Anasazi:BOOL=ON \
>  -D Trilinos_ENABLE_AztecOO:BOOL=ON \
>  -D AztecOO_ENABLE_Teuchos:BOOL=ON \
>  -D Trilinos_ENABLE_Didasko:BOOL=ON \
>  -D Trilinos_ENABLE_Epetra:BOOL=ON \
>  -D Trilinos_ENABLE_EpetraExt:BOOL=ON \
>  -D Trilinos_ENABLE_Galeri:BOOL=ON \
>  -D Trilinos_ENABLE_Ifpack:BOOL=ON \
>  -D Trilinos_ENABLE_ML:BOOL=ON \
>  -D Trilinos_ENABLE_PyTrilinos:BOOL=ON \
>  -D Trilinos_ENABLE_Teuchos:BOOL=ON \
>  -D Trilinos_ENABLE_Triutils:BOOL=ON \
>  -D Trilinos_ENABLE_ForTrilinos:BOOL=ON \
>  -D Trilinos_EXTRA_LINK_FLAGS:STRING="$FORTRAN_LIBRARIES" \
>  -D DART_TESTING_TIMEOUT:STRING=600 \
>  -D CMAKE_Fortran_FLAGS:STRING="-O3 -funroll-all-loops -fPIC -parallel
>-openmp -mkl" \
>  -D CMAKE_C_FLAGS:STRING="-O3 -fPIC -funroll-loops -openmp -mkl"\
>  -D CMAKE_CXX_FLAGS:STRING="-O3 -fPIC -funroll-loops -parallel -openmp
>-mkl" \
>  $EXTRA_ARGS \
>  ${TRILINOS_HOME}
>
>I really appreciate any ideas to solve the problem. I want to enable
>both SuperLU and
>Pardiso Solver.
>
>
>Regards
>
>Nelson
>_______________________________________________
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov
>https://software.sandia.gov/mailman/listinfo/trilinos-users



More information about the Trilinos-Users mailing list