[R-pkg-devel] Linking with OpenBLAS complains lapacke not found

Tomas Kalibera tom@@@k@||ber@ @end|ng |rom gm@||@com
Mon Sep 9 09:56:32 CEST 2019


Please refer to BLAS_LIBS, LAPACK_LIBS in Writing R Extensions. For an 
example package that uses BLAS/LAPACK, see e.g. "stats" or "Matrix". The 
package will then use the BLAS/LAPACK implementation as chosen by the 
user/system administrator at dynamic linking time (see R Installation 
and Administration Manual for the defailts) - be it say reference BLAS, 
OpenBLAS, MKL or other; as a package author, one does not have to care 
which one it is.

Best
Tomas

On 9/8/19 2:22 PM, Sameh M. Abdulah wrote:
> Brian,
>
> This is the code I am using to linking with BLAS using MKL or OpenBLAS
>
> #MKL
> if [ -n "$MKLROOT" ] && [ -d "$MKLROOT" ]; then
>      echo "mkl_dir directory exists!"
>      echo "Great... continue set-up"
>      source ${MKLROOT}/bin/mklvars.sh intel64
>      DEFINE_BLAS_LIBS_CMAKE="-DBLAS_LIBRARIES='-L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl'"
>      #DEFINE_BLAS_LIBS_CMAKE="-DBLAS_LIBRARIES='-L${MKLROOT}/lib\ -Wl,-rpath,${MKLROOT}/lib\ -lmkl_intel_lp64\ -lmkl_sequential\ -lmkl_core\ -lpthread\ -lm\ -ldl'"
>      XFLAG="-DBLA_VENDOR=Intel"
> else
>      echo "MKL not found, trying to compile and use OpenBLAS"
>      XFLAG="-DBLA_VENDOR=Open"
>      USE_OPENBLAS='true'
> fi
>
> # openblas
> if [ "true" == "$USE_OPENBLAS" ]
> then
>      if pkg-config --exists openblas
>      then
>          _LOCATION=`pkg-config --variable=libdir openblas`
>          echo "OpenBLAS FOUND in [$_LOCATION]"
>      else
>          if [ "$BUILD_DEPENDENCIES" == "true" ]
>          then
>              echo "Building OpenBLAS..."
>              cd $TMPDIR
>              wget https://github.com/xianyi/OpenBLAS/archive/v0.3.3.tar.gz -O - | tar -zx
>              cd OpenBLAS-0.3.3
>              $MAKE -j  >/dev/null|| $MAKE || { echo 'OpenBLAS installation failed' ; exit 1; }
>              $MAKE install PREFIX=$PREFIX
>              export CPATH=$CPATH:$PREFIX/include
>          else
>              echo "####################"
>              echo "OpenBLAS NOT FOUND"
>              echo "Please download it from: https://github.com/xianyi/OpenBLAS/releases"
>              echo "After installing it, set the proper PKG_CONFIG_PATH variable"
>              echo ""
>              err=1
>          fi
>      fi
> fi
>
>
> It works great but when OpenBLAS is using, my application cannot find lapacke library.
>
>
>
> On 9/8/19, 2:28 PM, "Brian G. Peterson" <brian using braverock.com> wrote:
>
>      On Sun, 2019-09-08 at 10:04 +0000, Sameh M. Abdulah wrote:
>      > I am linking my package against openblas but it complains that
>      > lapacke is not found which I need for the installation.
>      >
>      > I have another alternative to linking against MKL but I cannot find
>      > it using MKLROOT variable on CRAN servers.
>      
>      It isn't entirely clear what your question is, but shouldn't you just
>      be linking to the BLAS and leave the choice of BLAS to the individual
>      installation?  In most cases you should probably not be statically
>      linking to the BLAS.
>      
>      Here is an old paper by Dirk with more information that might help you
>      sort it out.
>      
>      https://cran.r-project.org/web/packages/gcbd/vignettes/gcbd.pdf
>      
>      Regards,
>      
>      Brian
>      
>      --
>      Brian G. Peterson
>      ph: +1.773.459.4973
>      im: bgpbraverock
>      
>      
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list