如何从MATLAB级别正确使用MUMPS软件包?

时间:2019-02-04 02:36:00

标签: matlab blas

我想从MATLAB级别使用MUMPS软件包。 MUMPS使用LAPACK和BLAS软件包。我的主要问题是我获得了细分违规错误。 MUMPS软件包主要使用32位整数。为了避免出现违反细分的错误,我必须使用外部BLAS软件包。在MATLAB中实现的BLAS使用64位整数。

要检查MATLAB正在加载哪些软件包,我正在使用:

export BLAS_VERBOSITY=1
export LAPACK_VERBOSITY=1

我试图通过从控制台级别应用环境变量BLAS_VERSION来强制MATLAB使用外部BLAS:

export BLAS_VERSION="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so"
export LAPACK_VERSION="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/liblapack.so"

或在MATLAB级别:

setenv('BLAS_VERSION','/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so')
setenv('LAPACK_VERSION','/net/people/plgzgoryk/luke/packages/lapack-3.8.0/liblapack.so')

但是当我尝试通过两种方式加载BLAS时,会出现错误“无效的ELF标头”:

cpu_id: x86 Family 6 Model 63 Stepping 2, GenuineIntel
BLAS: trying environment...
BLAS: loading /net/people/plgzgoryk/luke/packages/alapack/lapack-3.8.0/librefblas.so
BLAS: unloading libraries
BLAS loading error:
/net/people/plgzgoryk/luke/packages/alapack/lapack-3.8.0/librefblas.so: invalid ELF header

此外,我试图使用环境变量LD_PRELOAD,但失败了。我们可以在这里找到有关此问题的信息:

https://listes.ens-lyon.fr/sympa/arc/mumps-users/2014-10/msg00005.html

在这里

Use external BLAS and LAPACK libraries in a MATLAB mex file

当我尝试使用LD_PRELOAD时:

export LD_PRELOAD=/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so

我在MATLAB中遇到错误:

ERROR: ld.so: object '/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so' from LD_PRELOAD cannot be preloaded: ignored.

另一个环境变量LD_LIBRARY_PATH也无效:

export LD_LIBRARY_PATH="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so"

使用此变量后,没有任何反应。我的意思是MATLAB使用了自己的BLAS:

cpu_id: x86 Family 6 Model 63 Stepping 2, GenuineIntel
BLAS: trying spec file...
BLAS: loading mkl.so
BLAS: loaded mkl.so@0x2b213b28c160
BLAS: mkl.so is not a compatibility layer.
BLAS: loading mklcompat.so
BLAS: loaded mklcompat.so@0x2b213b28ed70
BLAS: initializing compatibility layer mklcompat.so

你能帮我吗?我究竟做错了什么?感谢您的帮助。我正在使用具有64位Centos 7,Matlab 2018b和GCC版本4.8.5-28的计算机。

0 个答案:

没有答案