Installing SOLMA with OpenSuse
dungqly opened this issue · comments
Everything is going well until...
I am trying to install SOLMA with the command line:
mvn install
(The step #4) as instructed in https://github.com/proteus-h2020/TestSolma)
I get the error as shown below. It is something about "undefined symbol: cblas_dgemm". I have already both blas and atlas installed in my computer.
If you know how to fix it please could you let me know.
I am using Suse version Leap42.1
Thanks,
Dung
[INFO] --- scalatest-maven-plugin:1.0:test (integration-test) @ proteus-solma_2.10 ---
Discovery starting.
Discovery completed in 124 milliseconds.
Run starting. Expected test count is: 4
FrequentDirectionsITSuite:
Flink's Frequent Directions
15:09:06.509 [ScalaTest-main-running-FrequentDirectionsITSuite] [ - ] WARN org.apache.flink.runtime.net.SSLUtils - Not a SSL socket, will skip setting tls version and cipher suites.
May 02, 2017 3:09:08 PM com.github.fommil.jni.JniLoader liberalLoad
INFO: successfully loaded /tmp/jniloader442498144106495151netlib-native_system-linux-x86_64.so
May 02, 2017 3:09:08 PM com.github.fommil.jni.JniLoader load
INFO: already loaded netlib-native_system-linux-x86_64.so
java: symbol lookup error: /tmp/jniloader442498144106495151netlib-native_system-linux-x86_64.so: undefined symbol: cblas_dgemm
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.014 s
Hi, it looks there is some problem with netlib (the underlying linear algebra library we use). I would suggest you to install all the dependencies listed in the Linux config section [1]
Hi Ventura,
sudo apt-get install libatlas3-base libopenblas-base
sudo update-alternatives --config libblas.so
sudo update-alternatives --config libblas.so.3
sudo update-alternatives --config liblapack.so
sudo update-alternatives --config liblapack.so.3
Do you know how to use those above command lines in Opensuse?
I use:
sudo zypper install libatlas3 libopenblas
But it shows something like
Loading repository data...
Reading installed packages...
'libatlas3' is already installed.
No update candidate for 'libatlas3-3.10.2-4.6.x86_64'. The highest available version is already installed.
'libopenblas' not found in package names. Trying capabilities.
No provider of 'libopenblas' found.
Resolving package dependencies...
Nothing to do
I have used YaST instead and installed all atlas and blas libs but I do not know why it shows errro
"undefined symbol: cblas_dgemm" when I use
mvn install to install SOLMA.
Hi @dungqly
Could you try the following command?
sudo zypper install libatlas-base-dev
I think you are missing the libatlas-base-dev package, which should contain such missing symbol (cblas_dgemm)
Hi Nacho,
Here is the error when I run the command as you suggested.
dungly@suse:~> sudo zypper install libatlas-base-dev
Loading repository data...
Reading installed packages...
'libatlas-base-dev' not found in package names. Trying capabilities.
No provider of 'libatlas-base-dev' found.
In OpenSuse it seems to have a difference between "libatlas3" and "libatlas3-base"
When I use:
sudo zypper install libatlas3
Then I have this
dungly@suse:~> sudo zypper install libatlas3
Loading repository data...
Reading installed packages...
'libatlas3' is already installed.
No update candidate for 'libatlas3-3.10.2-4.6.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do
BUT if I use:
sudo zypper install libatlas3-base
then I have this
dungly@suse:~> sudo zypper install libatlas3-base
Loading repository data...
Reading installed packages...
Package 'libatlas3-base' not found.
Resolving package dependencies...
Nothing to do.
A similar issue was reported some time ago by a OpenSuse user:
fommil/netlib-java#66
Could you try with the proposed solution? (last comment)
It seems that my new version of Atlas in Suse Leap41.1 does not have libcblas.so.3 but the older version has.
After downgrading atlas to older version I have a new error "undefined symbol: slamch_" when trying to install SOLMA:
mvn install
[INFO] --- scalatest-maven-plugin:1.0:test (integration-test) @ proteus-solma_2.10 ---
Discovery starting.
Discovery completed in 156 milliseconds.
Run starting. Expected test count is: 4
FrequentDirectionsITSuite:
Flink's Frequent Directions
13:50:01.857 [ScalaTest-main-running-FrequentDirectionsITSuite] [ - ] WARN org.apache.flink.runtime.net.SSLUtils - Not a SSL socket, will skip setting tls version and cipher suites.
May 03, 2017 1:50:03 PM com.github.fommil.jni.JniLoader liberalLoad
INFO: successfully loaded /tmp/jniloader6540861316573616181netlib-native_system-linux-x86_64.so
java: symbol lookup error: /tmp/jniloader6540861316573616181netlib-native_system-linux-x86_64.so: undefined symbol: slamch_
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
This is what I have with ldd:
dungly@suse:> ldd /tmp/jniloader4513052076299525864netlib-native_system-linux-x86_64.so> ldd /tmp/jniloader5216132806779094329netlib-native_system-linux-x86_64.so:
ldd: warning: you do not have execution permission for `/tmp/jniloader4513052076299525864netlib-native_system-linux-x86_64.so'
linux-vdso.so.1 (0x00007ffc0d966000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007eff77000000)
libblas.so.3 => /usr/lib64/libblas.so.3 (0x00007eff76da7000)
liblapack.so.3 => /usr/lib64/atlas/liblapack.so.3 (0x00007eff76b83000)
libc.so.6 => /lib64/libc.so.6 (0x00007eff767db000)
libquadmath.so.0 => /usr/lib64/libquadmath.so.0 (0x00007eff7659c000)
libm.so.6 => /lib64/libm.so.6 (0x00007eff7629a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007eff76083000)
libf77blas.so.3 => /usr/lib64/atlas/libf77blas.so.3 (0x00007eff75e62000)
libcblas.so.3 => /usr/lib64/atlas/libcblas.so.3 (0x00007eff75c3f000)
/lib64/ld-linux-x86-64.so.2 (0x000055a4a1a3d000)
libatlas.so.3 => /usr/lib64/atlas/libatlas.so.3 (0x00007eff74f5e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007eff74d41000)
dungly@suse:
ldd: /tmp/jniloader5216132806779094329netlib-native_system-linux-x86_64.so:: No such file or directory
What a mess!
What about trying to reinstall the whole netlib library?
Yes, just done it. So the error is expected as:
java: symbol lookup error: /tmp/jniloader9069070264778543719netlib-native_system-linux-x86_64.so: undefined symbol: cblas_dgemm
Any ideas, please.
[INFO] --- scalatest-maven-plugin:1.0:test (integration-test) @ proteus-solma_2.10 ---
Discovery starting.
Discovery completed in 129 milliseconds.
Run starting. Expected test count is: 4
FrequentDirectionsITSuite:
Flink's Frequent Directions
14:38:05.950 [ScalaTest-main-running-FrequentDirectionsITSuite] [ - ] WARN org.apache.flink.runtime.net.SSLUtils - Not a SSL socket, will skip setting tls version and cipher suites.
May 03, 2017 2:38:07 PM com.github.fommil.jni.JniLoader liberalLoad
INFO: successfully loaded /tmp/jniloader9069070264778543719netlib-native_system-linux-x86_64.so
May 03, 2017 2:38:07 PM com.github.fommil.jni.JniLoader load
INFO: already loaded netlib-native_system-linux-x86_64.so
java: symbol lookup error: /tmp/jniloader9069070264778543719netlib-native_system-linux-x86_64.so: undefined symbol: cblas_dgemm
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.766 s
[INFO] Finished at: 2017-05-03T14:38:07+01:00
[INFO] Final Memory: 104M/1518M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.scalatest:scalatest-maven-plugin:1.0:test (integration-test) on project proteus-solma_2.10: There are t
The problem is that your system does not have ATLAS and OpenBLAS libraries installed. I am not an opensuse user, therefore, I can only suggest to either build ATLAS and OpenBLAS from their source and add the libraries path to LD_LIBRARY_PATH (check their documentation), or change OS (choosing a more mainstream one, e.g., ubuntu), or use a virtual machine.
For future reference, I was able to solve this by installing OpenBLAS.
sudo zypper install libopenblas_openmp0
sudo update-alternatives --config libblas.so.3
Then selecting the newly installed library.