autocmake icon indicating copy to clipboard operation
autocmake copied to clipboard

[question] LAPACK and BLAS linking using `modules/math_libs.cmake`

Open breengles opened this issue 2 years ago • 2 comments

Hi! I am trying to use the math_libs.cmake module to autodetect and link against LAPACK and BLAS. It seems like it found the correct paths to .so

-- Searching for BLAS using search order MKL;ESSL;OPENBLAS;ATLAS;ACML;SYSTEM_NATIVE
-- Setting -DHAVE_SYSTEM_NATIVE_BLAS
-- Found BLAS: SYSTEM_NATIVE (/usr/lib/x86_64-linux-gnu/libblas.so)
-- Searching for LAPACK using search order MKL;ESSL;OPENBLAS;ATLAS;ACML;SYSTEM_NATIVE
-- Setting -DHAVE_SYSTEM_NATIVE_LAPACK
-- Found LAPACK: SYSTEM_NATIVE (/usr/lib/x86_64-linux-gnu/liblapack.so)

and the same for ones installed via conda (mamba):

-- Searching for BLAS using search order MKL;ESSL;OPENBLAS;ATLAS;ACML;SYSTEM_NATIVE
-- Setting -DHAVE_SYSTEM_NATIVE_BLAS
-- Found BLAS: SYSTEM_NATIVE (/home/breengles/mambaforge/envs/adkb/lib/libblas.so)
-- Searching for LAPACK using search order MKL;ESSL;OPENBLAS;ATLAS;ACML;SYSTEM_NATIVE
-- Setting -DHAVE_SYSTEM_NATIVE_LAPACK
-- Found LAPACK: SYSTEM_NATIVE (/home/breengles/mambaforge/envs/adkb/lib/liblapack.so)

Unfortunately, I do not quite understand why this is not working as I get the following: src/core.f90:228: undefined reference to 'dgemm_' and a couple of places more with other subroutines such as DSYGV, DSTEV, etc. Also, everything works just fine if I setup with ifort and mkl. Can you point me, please, out to what I am missing here?

breengles avatar Jul 08 '23 19:07 breengles

well, adding the following to src/CMakeLists.txt

find_package(LAPACK)
target_link_libraries(${EXE} ${LAPACK_LIBRARIES})

solved the issue. Seems like I do not understand if autocmake should carry this on its own... perhaps, not.

breengles avatar Jul 08 '23 19:07 breengles

Thanks for the question and sorry for the troubles. This summer I am going through refurbishing this code (while updating CMake code in a larger project) and I will answer as soon as I get again overview.

bast avatar Jul 14 '23 10:07 bast