[Trilinos-Users] BLAS/LAPACK automatically linked by compiler

Nico Schlömer nico.schloemer at gmail.com
Mon Sep 10 12:50:04 MDT 2012


Wait, what exactly do you have to specify?
Just this

> -D TPL_ENABLE_BLAS:BOOL=ON
> -D TPL_BLAS_LIBRARY_NAMES:STRING=""

won't work since CMake will complain about not being able to find BLAS.

--Nico



On Mon, Sep 10, 2012 at 8:29 PM, Eric Bavier <bavier at cray.com> wrote:
> Setting the TPL_BLAS_LIBRARIES variable does not short-circuit the logic
> in the TPL library declaration code (TribitsTplDeclareLibraries.cmake),
> so it continues to search for the libraries named in FindBLAS.cmake.
>
> What is possible however is to define TPL_BLAS_LIBRARY_NAMES:STRING="",
> an override that is "documented" in a comment in
> TribitsTplDeclareLibraries.cmake.  So, doing the following should work:
>
> -D TPL_ENABLE_BLAS:BOOL=ON
> -D TPL_BLAS_LIBRARY_NAMES:STRING=""
>
> `~Eric
>
>
> On 09/10/2012 01:06 PM, Antonio Cervone wrote:
>> from Trilinos10CMakeQuickstart.txt:
>>
>> NOTE: The variables TPL_<TPLNAME>_INCLUDE_DIRS and TPL_<TPLNAME>_LIBRARIES
>>    are what are directly used by the CMake build infrastructure.  These
>>    variables are normally set by the variables <TPLNAME>_INCLUDE_DIRS,
>>    <TPLNAME>_LIBRARY_NAMES, and <TPLNAME>_LIBRARY_DIRS using find commands but
>>    you can always override these by setting the (type FILEPATH) cache
>>    variables TPL_<TPLNAME>_INCLUDE_DIRS and TPL_<TPLNAME>_LIBRARIES.  This gives
>>    the user complete and direct control in specifying exactly what is used in
>>    the build process.  The other variables that start with <TPLNAME>_ are just a
>>    convenience to make it easier to specify the location of the libraries.
>>
>> it seems that the user has not the desired "complete and direct control" :D
>>
>> try adding FILEPATH, it can be important
>>
>> -D TPL_BLAS_LIBRARIES:FILEPATH=""
>>
>> this way cmake has no other choice then to set that variable as you asked.
>>
>> antonio
>>
>> On Mon, Sep 10, 2012 at 7:45 PM, Nico Schlömer <nico.schloemer at gmail.com> wrote:
>>> Hm. Doing this
>>>
>>>    -D TPL_ENABLE_BLAS:BOOL=ON \
>>>        -D TPL_BLAS_LIBRARIES="" \
>>>
>>> yields this
>>>
>>> -- Processing enabled TPL: BLAS
>>> --   Searching for library 'blas' ...
>>> --   Searching for library 'blas_win32' ...
>>> --   Warning: Could not find a library in the set "blas blas_win32"
>>> for the TPL BLAS!  Please manually set BLAS_LIBRARY_DIRS and/or
>>> BLAS_LIBRARY_NAMES or just TPL_BLAS_LIBRARIES to point to the BLAS
>>> libraries!
>>>
>>> --Nico
>>>
>>> On Mon, Sep 10, 2012 at 6:02 PM, Antonio Cervone <ant.cervone at gmail.com> wrote:
>>>> hi Nico,
>>>> one way to go around this problem is to explicitly set the internal
>>>> variable that tribits uses to link the library, i.e.
>>>>
>>>> TPL_BLAS_LIBRARIES
>>>> TPL_BLAS_INCLUDE_DIRS
>>>>
>>>> if you set them to empty you should avoid the double linking.
>>>> bye
>>>>
>>>> antonio
>>>>
>>>>
>>>>
>>>> On Mon, Sep 10, 2012 at 5:54 PM, Nico Schlömer <nico.schloemer at gmail.com> wrote:
>>>>> Hi all,
>>>>>
>>>>> here's a funny compiler issue.
>>>>> On NERSC, the BLAS and LAPACK libraries are automatically included on
>>>>> the link line by their compiler wrappers, much like libmpi.a is
>>>>> automatically linked on many other platforms.
>>>>> We've got outselves a little bit of a conflict of responsibilities
>>>>> here since also CMake tries to care of BLAS and LAPACK, e.g.,
>>>>>
>>>>> -D TPL_ENABLE_BLAS:BOOL=ON \
>>>>>        -D BLAS_LIBRARY_DIRS:FILEPATH="$CRAY_LIBSCI_PREFIX_DIR/lib" \
>>>>>        -D BLAS_LIBRARY_NAMES="sci_gnu" \
>>>>>
>>>>> The exact library locations aren't officially disclosed, so at best
>>>>> I'm getting BLAS and LAPACK implicitly twice on the link line. Should
>>>>> they decide to change their BLAS/LAPACK directories in the wrappers
>>>>> one day, however, this'll lead to two different BLAS/LAPACK libraries
>>>>> on the link line which is less than ideal.
>>>>>
>>>>> What's the situation on other HPCs, and how do you deal with this?
>>>>>
>>>>> --Nico
>>>>>
>>>>> _______________________________________________
>>>>> Trilinos-Users mailing list
>>>>> Trilinos-Users at software.sandia.gov
>>>>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>>>>
>>
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>
>
>
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
>




More information about the Trilinos-Users mailing list