[Trilinos-Users] [EXTERNAL] Epetra configuration problem detecting dggsvd3 in LAPACK

Widener, Patrick pwidene at sandia.gov
Thu Mar 2 16:25:25 EST 2017


Thanks to James for making me take a closer look at my setup, this turned out to be PEBCAK after all. I wasn’t providing a correct path to libgfortran. My MPICH installed compiler wrapper links a few more libraries on its own, one of which I’m assuming picks up gfortran along the way, which I am assuming explains why this is not needed in the MPICH case.

patrick

> On Mar 2, 2017, at 2:13 PM, Widener, Patrick <pwidene at sandia.gov> wrote:
> 
> Hey James - 
> 
> Make appears to find the TPLs OK. 
> 
> =-=-=-=-=
> 
> Processing enabled TPL: BLAS (enabled explicitly, disable with -DTPL_ENABLE_BLAS=OFF)
> -- Searching for libs in BLAS_LIBRARY_DIRS='/opt/local/lib'
> -- Searching for a lib in the set "openblas":
> --   Searching for lib 'openblas' ...
> --     Found lib '/opt/local/lib/libopenblas.dylib'
> -- Searching for a lib in the set "atlas":
> --   Searching for lib 'atlas' ...
> --     Found lib '/opt/local/lib/libatlas.a'
> -- TPL_BLAS_LIBRARIES='/opt/local/lib/libopenblas.dylib;/opt/local/lib/libatlas.a'
> Processing enabled TPL: LAPACK (enabled explicitly, disable with -DTPL_ENABLE_LAPACK=OFF)
> -- Searching for libs in LAPACK_LIBRARY_DIRS='/opt/local/lib'
> -- Searching for a lib in the set "lapack lapack_win32":
> --   Searching for lib 'lapack' ...
> --     Found lib '/opt/local/lib/liblapack.a'
> -- TPL_LAPACK_LIBRARIES='/opt/local/lib/liblapack.a’
> 
> =-=-=-=-=-=-
> 
> The issue is happening, as you point out, during the execution of CheckHaveEpetraLapackGSSVD3. Here’s what I get when 
> using Open MPI:
> 
> -=-=-=-=-
> Processing enabled package: Epetra (Libs)
> -- Looking for dggsvd3
> -- Looking for dggsvd3 - not found
> -- Looking for dggsvd3_
> -- Looking for dggsvd3_ - not found
> -- Looking for DGGSVD3
> -- Looking for DGGSVD3 - not found
> -- Looking for DGGSVD3_
> -- Looking for DGGSVD3_ - not found
> Did not find new version of lapack. dggsvd3 is not available.
> -=-==-=
> 
> In CMakeError.log, the reason for the failure of the second check (dggsvd3_) is due to an undefined symbol (gfortran_concat_string) from LAPACK. The other checks fail because the searched-for symbol doesn’t exist.
> 
> And so later Epetra thinks it needs to use dggsvd, which is not present in my installed LAPACK (deprecated a couple of versions ago).
> 
> When using MPICH, the second of those checks (Looking for dggsvd3_) succeeds.
> 
> patrick
> 
>> On Mar 2, 2017, at 2:05 PM, Elliott, James John <jjellio at sandia.gov> wrote:
>> 
>> Hey Patrick,
>> 
>> Is CMake finding the BLAS/LAPACK TPLs?
>> 
>> e.g., what is the output related to:
>> Processing enabled TPL: LAPACK (enabled explicitly, disable with -DTPL_ENABLE_LAPACK=OFF)
>> 
>> The check for the function is here, and it should be adding those libs when it links.
>> [jjellio at mutrino:~/src/Trilinos-jjellio] less packages/epetra/cmake/CheckHaveEpetraLapackGSSVD3.cmake
>> ...
>> SET(CMAKE_REQUIRED_LIBRARIES ${TPL_LAPACK_LIBRARIES} ${TPL_BLAS_LIBRARIES})
>> 
>> 
>> 
>> 
>> ________________________________________
>> From: Widener, Patrick
>> Sent: Thursday, March 2, 2017 1:51 PM
>> To: Elliott, James John
>> Cc: trilinos-users at trilinos.org
>> Subject: Re: [EXTERNAL] [Trilinos-Users] Epetra configuration problem detecting dggsvd3 in      LAPACK
>> 
>> Hi James - I should have mentioned a couple of things that I’d already tried, one of which is this.
>> 
>> Also, it’s not the link of a Trilinos executable that’s failing. It’s the link of the stub program generated in the configuration-time check in Epetra for dggsvd3. This is failing for me whether I have gfortran added to a LIBRARIES variable or not; the generated compiler command to link the stub program which checks for dggsvd3 doesn’t link against libgfortran in either case.
>> 
>> thanks
>> patrick
>> 
>>> On Mar 2, 2017, at 12:44 PM, Elliott, James John <jjellio at sandia.gov> wrote:
>>> 
>>> Hi Patrick,
>>> 
>>> You need to add -lgfortran to your link line, or add "gfortran" to your list of required lapack libraries.
>>> 
>>> For example (my local OpenBLAS build)
>>> export BLAS_LIBRARIES="/home/jjellio3/install/openblas-threaded/lib/libopenblas.a;gfortran"
>>> 
>>> Then my CMake script has:
>>> 
>>> -D TPL_ENABLE_BLAS=ON \
>>> -D TPL_BLAS_LIBRARIES:PATH="${BLAS_LIBRARIES}" \
>>> -D TPL_ENABLE_LAPACK=ON \
>>> -D TPL_LAPACK_LIBRARIES:PATH="${BLAS_LIBRARIES}" \
>>> 
>>> 
>>> James
>>> 
>>> ________________________________________
>>> From: Trilinos-Users <trilinos-users-bounces at trilinos.org> on behalf of Widener, Patrick <pwidene at sandia.gov>
>>> Sent: Thursday, March 2, 2017 12:38 PM
>>> To: trilinos-users at trilinos.org
>>> Subject: [EXTERNAL] [Trilinos-Users] Epetra configuration problem detecting dggsvd3 in  LAPACK
>>> 
>>> Hello -
>>> 
>>> In my Trilinos CMake step, Epetra’s check for dggsvd3 in my installed LAPACK (3.6.1) is failing due to a missing symbol from libgfortran. This is causing Epetra to believe I have an older version of LAPACK and consequently a later link error trying to reference dggsvd from Epetra_LAPACK::GGSVD.
>>> 
>>> The curious thing is that this occurs for me when using mpicc from OpenMPI, but the dggsvd3 check passes and so no link error with mpicc from MPICH.
>>> 
>>> Has anyone else experienced this? I’m on Mac (El Capitan), gcc 4.9 for both Open MPI and MPICH, Open MPI 1.10 and MPICH 3.3. I pulled from the Trilinos repo last week.
>>> 
>>> thanks!
>>> patrick
>>> 
>>> _______________________________________________
>>> Trilinos-Users mailing list
>>> Trilinos-Users at trilinos.org
>>> https://trilinos.org/mailman/listinfo/trilinos-users
>> 
> 
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at trilinos.org
> https://trilinos.org/mailman/listinfo/trilinos-users



More information about the Trilinos-Users mailing list