Spark netlib-java BLAS

c2e8gylq  于 2023-11-22  发布在  Apache
关注(0)|答案(1)|浏览(174)

我试图解决我的非工作Apache Spark和Netlib设置,我不知道下一步该怎么办。
这里有一些信息:

  • Spark 1.3.1(但也尝试了1.5.1)
  • Mesos集群,3个节点
  • 每个节点上都有Ubuntu Trusty,并安装了以下BLAS软件包
$ dpkg -l | grep 'blas\|atlas\|lapack'
ii  libopenblas-base                    0.2.8-6ubuntu1                   amd64        Optimized BLAS (linear algebra) library based on GotoBLAS2

$ update-alternatives --get-selections | grep 'blas\|lapack'
libblas.so.3                   auto     /usr/lib/openblas-base/libblas.so.3

字符串
我已经构建了一个示例jar来测试netlib-java是否可以检测到这个库,代码如下:

object Main extends App {
  println(com.github.fommil.netlib.BLAS.getInstance().getClass().getName())
  println(com.github.fommil.netlib.LAPACK.getInstance().getClass().getName())
}


当我执行这段代码时,我得到以下响应:

$ java -jar artifacts/BLAStest-assembly-1.0.jar
Mar 29, 2016 3:43:33 PM com.github.fommil.netlib.BLAS <clinit>
WARNING: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
Mar 29, 2016 3:43:33 PM com.github.fommil.jni.JniLoader liberalLoad
INFO: successfully loaded /tmp/jniloader6790966128222263615netlib-native_ref-linux-x86_64.so
com.github.fommil.netlib.NativeRefBLAS
Mar 29, 2016 3:43:33 PM com.github.fommil.netlib.LAPACK <clinit>
WARNING: Failed to load implementation from: com.github.fommil.netlib.NativeSystemLAPACK
Mar 29, 2016 3:43:33 PM com.github.fommil.jni.JniLoader load
INFO: already loaded netlib-native_ref-linux-x86_64.so
com.github.fommil.netlib.NativeRefLAPACK


所以它在这里似乎工作得很好。但是spark不能检测到库。我已经将这个java依赖项添加到我的汇编jar中

com.github.fommil.netlib:all:1.1.2


此外,如果我尝试启动一个Spark壳与此包它不工作。

spark-shell --packages com.github.fommil.netlib:all:1.1.2

oaxa6hgo

oaxa6hgo1#

看起来你的netlib-java实现正在加载NativeRefBLAS,而不是NativeSystemBLAS。这意味着你包含“com.github.fommil.netlib:all”工作正常,因为如果没有它,你将使用非原生的F2 J实现。问题是你想使用系统提供的BLAS(OpenBLAS),而不是netlib-java附带的引用实现。这可能只是在spark执行程序可见的位置获得正确的共享库的问题。
您说您链接了libblas.so.3,但如netlib-java自述文件中所述,您还需要配置libblas.so、liblapack.so和liblapack.so.3:

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

字符串

相关问题