Я хочу использовать пакет MUMPS с уровня MATLAB.MUMPS использует пакеты LAPACK и BLAS.Моя главная проблема в том, что я получил ошибку нарушения сегментации.Пакет MUMPS работает в основном с 32-битными целыми числами.Чтобы не получить ошибку нарушения сегментации, я должен использовать внешний пакет BLAS.BLAS, реализованный в MATLAB, работает с 64-битными целыми числами.
Чтобы проверить, какие пакеты загружает MATLAB, я использую:
export BLAS_VERBOSITY=1
export LAPACK_VERBOSITY=1
Я пытаюсь заставить MATLAB использовать внешний BLAS, применяяпеременная окружения BLAS_VERSION с уровня консоли:
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
а здесь
Использование внешних библиотек BLAS и LAPACK в мекс-файле MATLAB
Когда я пытаюсь использовать 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.