Package Details: r-mkl 4.1.0-1

Git Clone URL: https://aur.archlinux.org/r-mkl.git (read-only, click to copy)
Package Base: r-mkl
Description: Language and environment for statistical computing and graphics, linked to the Intel(R) MKL.
Upstream URL: http://www.r-project.org/
Keywords: hpc mathematics modelling r statistics
Licenses: GPL
Conflicts: microsoft-r-open, r
Provides: r=4.1.0
Submitter: giniu
Maintainer: alexanderp
Last Packager: alexanderp
Votes: 21
Popularity: 0.029027
First Submitted: 2010-05-06 00:10
Last Updated: 2021-05-20 08:55

Dependencies (25)

Required by (414)

Sources (5)

Latest Comments

1 2 3 4 5 6 ... Next › Last »

alexanderp commented on 2021-07-14 18:37

@burgerga , I'm a bit wary of hardcoding this in the PKGBUILD since it will be introducing a dependency on the specific file from intel-mkl existing in that path.

I've checked other packages which depend on intel-mkl and they are not sourcing the script manually either.

burgerga commented on 2021-07-12 10:38

@alexanderp I contacted the intel-mkl maintainer, and he suggested that if MKLROOT is not yet set, to source /etc/profile.d/intel-mkl.sh in the r-mkl PKGBUILD

burgerga commented on 2021-07-12 07:21

@alexanderp Figured it out! intel-mkl installs /etc/profile.d/intel-mkl.sh which sets MKLROOT, but doesn't source it, so MKLROOT is only set after the next reboot.

EDIT: I see that are messages crossed. I'll ask the maintainer of intel-mkl to pick this up.

alexanderp commented on 2021-07-12 07:15

@burgerga

$ cat /etc/profile.d/intel-mkl.sh 
export MKLROOT=/opt/intel/mkl

owned by:

$ pacman -Qo /etc/profile.d/intel-mkl.sh 
/etc/profile.d/intel-mkl.sh is owned by intel-mkl 2020.4.304-1

burgerga commented on 2021-07-12 07:09

@alexanderp Ah, yes you're right, however the contents of that file are:

#!/bin/sh
#
# This little script pretends to be mklvars.sh but actually just exports some variables
# to directories precisely where Arch installs them. No point shipping the original
# mklvars.sh which wrongly guesses all the paths.

export "LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64_lin:${LD_LIBRARY_PATH}"
export "LIBRARY_PATH=/opt/intel/mkl/lib/intel64_lin:${LIBRARY_PATH}"
export "NLSPATH=/opt/intel/mkl/lib/intel64_lin/locale/%l_%t/%N:${NLSPATH}"
export "CPATH=/opt/intel/mkl/include:${CPATH}"
export "PKG_CONFIG_PATH=/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"

So it doesn't set MKLROOT (I don't know if the original did?), so how is MKLROOT set on your system?

EDIT: Maybe intel-mkl should set MKLROOT though, that would be more logical than setting it in r-mkl

alexanderp commented on 2021-07-11 10:50

@burgerga

Cannot reproduce this in my build system. In fact, mklvars.sh is still here:

pacman -Qo mklvars.sh
/usr/bin/mklvars.sh is owned by intel-mkl 2020.4.304-1

burgerga commented on 2021-07-06 23:01

@alexanderp I'm getting the same issue as @jalapeno

/usr/bin/ld: cannot find -lmkl_gf_lp64
/usr/bin/ld: cannot find -lmkl_gnu_thread
/usr/bin/ld: cannot find -lmkl_core
collect2: error: ld returned 1 exit status

The problem in my case is that MKLROOT was not set during installation so ${MKLROOT}/lib/intel64 becomes /lib/intel64 which is used as -L flag in the BLAS_LIBS makevar in /usr/lib/R/etc/Makeconf, and then of course when we try to compile packages, the linker can't find the shared libraries.

I think the issue might be that intel-mkl does not come with mklvars.sh anymore. There is only mkl_link_tool in /opt/intel/mkl/bin and if you run it with either the -env or the -interactive option you can see that it assumes MKLROOT is already set...

sgrubsmyon commented on 2021-05-05 14:40

@Humble_Panda Yes, indeed. Removing and reinstalling (recompiling) the r-mkl package helped in my case.

Humble_Panda commented on 2021-02-08 08:27

Anyone else getting a broken R installation after one of the last updates? libicuuc.so.67 isn't on the system anymore...

alexanderp commented on 2021-01-20 14:22

@LuisDamiano, in my opinion, distributing a binary of this package defeats the purpose of the additional CPU performance optimizations obtained by compiling on a target system.