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

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


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
> 



More information about the Trilinos-Users mailing list